» » » Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода


Авторские права

Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

Здесь можно скачать бесплатно "Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Рейтинг:
Название:
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Автор:
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода"

Описание и краткое содержание "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода" читать бесплатно онлайн.



Третье издание, расширенное и обновлённое для Blender 2.57






bpy.ops.object.mode_set(mode='OBJECT')


Операторный Метод

Операторный метод добавляет объект и блок данных одновременно. Блок данных к при этом будет пустым, и должен быть заполнен позже фактическими данными.


• Добавляется объект с помощью оператора bpy.ops.object.add. Он автоматически заботится о нескольких вещах, которые мы должны были делать вручную в методе данных: он создает данные объекта (то есть меш или арматуру), привязывает объект к сцене, делает его активным и выбирает объект. С другой стороны, теперь мы должны извлечь объект и данные. Это просто, поскольку bpy.context.object всегда указывает на активный объект.

Чтобы добавить меш-объект, мы делаем

bpy.ops.object.add(type='MESH')

ob = bpy.context.object

me = ob.data

и для добавления арматуры:

bpy.ops.object.add(

type='ARMATURE',

enter_editmode=True,

location=origin)

ob = bpy.context.object

amt = ob.data


• Как и в методе данных, объект нужно заполнить фактическими данными и обновить перед использованием. Для меша мы добавляем вершины и грани:

me.from_pydata(verts, [], faces)

me.update()

а для арматуры мы добавляем кость:

bone = amt.edit_bones.new('Bone')

bone.head = (0,0,0)

bone.tail = (0,0,1)

bpy.ops.object.mode_set(mode='OBJECT')

Заметьте, что нам не нужно явно входить в режим редактирования, поскольку арматура вошла в него уже при создании.


Метод примитивов

Если мы хотим сделать объект типа одного из примитивов, может существовать оператор, который создаёт примитив с желаемыми свойствами.


• Конус фактически аппроксимируется пирамидой.

Для создания меша пирамиды с 4 сторонами:

bpy.ops.mesh.primitive_cone_add(

vertices=4,

radius=1,

depth=1,

cap_end=True)

тогда как следующий код добавляет арматуру с единственной костью:

bpy.ops.object.armature_add()

bpy.ops.transform.translate(value=origin)


• Как и в операторном методе, мы затем извлекаем вновь созданный объект из bpy.context.object.

ob = bpy.context.object

me = ob.data


Сравнение

Метод примитивов самый простой, но он работает только в том случае, когда нужный примитив доступен. Даже в программе примера, он создает меш пирамиды, который отличается от созданных другими двумя методами: основание не является единственным четырёхугольником, а состоит из четырех треугольников с общей точкой в середине основания. Другие два метода более-менее эквивалентны.

Примитив не обязан быть особенно простым; есть примитивы для создания меша обезьяны или человеческая оснастка. Но метод примитивов всегда ограничен заготовленными объектами.

Мы используем все три метода в примерах в этой заметке.



#----------------------------------------------------------

# File objects.py

#----------------------------------------------------------

import bpy

import mathutils

from mathutils import Vector 


def createMeshFromData(name, origin, verts, faces):

    # Создание меша и объекта

    me = bpy.data.meshes.new(name+'Mesh')

    ob = bpy.data.objects.new(name, me)

    ob.location = origin ob.show_name = True


    # Привязка объекта к сцене, он становится активным

    scn = bpy.context.scene

    scn.objects.link(ob)

    scn.objects.active = ob

    ob.select = True


    # Создание меша из полученных verts (вершин), faces (граней).

    me.from_pydata(verts, [], faces)

    # Обновление меша с новыми данными

    me.update()

    return ob 


def createMeshFromOperator(name, origin, verts, faces):

    bpy.ops.object.add(

        type='MESH',

        enter_editmode=False,

        location=origin)

    ob = bpy.context.object

    ob.name = name

    ob.show_name = True

    me = ob.data me.name = name+'Mesh'


    # Создание меша из полученных verts (вершин), faces (граней).

    me.from_pydata(verts, [], faces)

    # Обновление меша с новыми данными

    me.update()

    # Установка режима объектов

    bpy.ops.object.mode_set(mode='OBJECT')

    return ob 


def createMeshFromPrimitive(name, origin):

    bpy.ops.mesh.primitive_cone_add(

        vertices=4,

        radius=1,

        depth=1,

        cap_end=True,

        view_align=False,

        enter_editmode=False,

        location=origin,

        rotation=(0, 0, 0))


    ob = bpy.context.object

    ob.name = name

    ob.show_name = True

    me = ob.data

    me.name = name+'Mesh'

    return ob 


def createArmatureFromData(name, origin):

    # Создание меша и объекта

    amt = bpy.data.armatures.new(name+'Amt')

    ob = bpy.data.objects.new(name, amt)

    ob.location = origin

    ob.show_name = True


    # Привязка объекта к сцене, он становится активным

    scn = bpy.context.scene

    scn.objects.link(ob)

    scn.objects.active = ob

    ob.select = True


    # Создание одиночной кости

    bpy.ops.object.mode_set(mode='EDIT')

    bone = amt.edit_bones.new('Bone')

    bone.head = (0,0,0)

    bone.tail = (0,0,1)

    bpy.ops.object.mode_set(mode='OBJECT')

    return ob 


def createArmatureFromOperator(name, origin):

    bpy.ops.object.add(

        type='ARMATURE',

        enter_editmode=True,

        location=origin)

    ob = bpy.context.object

    ob.name = name

    ob.show_name = True

    amt = ob.data

    amt.name = name+'Amt'


    # Создание одиночной кости

    bone = amt.edit_bones.new('Bone')

    bone.head = (0,0,0)

    bone.tail = (0,0,1)

    bpy.ops.object.mode_set(mode='OBJECT')

    return ob 


def createArmatureFromPrimitive(name, origin):

    bpy.ops.object.armature_add()

    bpy.ops.transform.translate(value=origin)

    ob = bpy.context.object

    ob.name = name

    ob.show_name = True

    amt = ob.data

    amt.name = name+'Amt'

    return ob 


def run(origo):

    origin = Vector(origo)

    (x,y,z) = (0.707107, 0.258819, 0.965926)

    verts = ((x,x,-1), (x,-x,-1), (-x,-x,-1), (-x,x,-1), (0,0,1))

    faces = ((1,0,4), (4,2,1), (4,3,2), (4,0,3), (0,1,2,3))


    cone1 = createMeshFromData('DataCone', origin, verts, faces)

    cone2 = createMeshFromOperator('OpsCone', origin+Vector((0,2,0)), verts, faces)

    cone3 = createMeshFromPrimitive('PrimCone', origin+Vector((0,4,0)))


    rig1 = createArmatureFromData('DataRig', origin+Vector((0,6,0)))

    rig2 = createArmatureFromOperator('OpsRig', origin+Vector((0,8,0)))

    rig3 = createArmatureFromPrimitive('PrimRig', origin+Vector((0,10,0)))

    return 


if __name__ == "__main__":

    run((0,0,0))



Материалы и текстуры

Материалы

Эта программа добавляет красный непрозрачный материал, и синий полупрозрачный, и назначает их, соответственно, кубу и сфере.



#----------------------------------------------------------

# File material.py

#----------------------------------------------------------

import bpy 

def makeMaterial(name, diffuse, specular, alpha):

    mat = bpy.data.materials.new(name)

    mat.diffuse_color = diffuse

    mat.diffuse_shader = 'LAMBERT'

    mat.diffuse_intensity = 1.0

    mat.specular_color = specular

    mat.specular_shader = 'COOKTORR'

    mat.specular_intensity = 0.5

    mat.alpha = alpha

    mat.ambient = 1

    return mat 


def setMaterial(ob, mat):

    me = ob.data

    me.materials.append(mat)  


def run(origin):

    # Создание двух материалов

    red = makeMaterial('Red', (1,0,0), (1,1,1), 1)

    blue = makeMaterial('BlueSemi', (0,0,1), (0.5,0.5,0), 0.5)


    # Создание синего куба

    bpy.ops.mesh.primitive_cube_add(location=origin)

    setMaterial(bpy.context.object, red)


    # и красной сферы

    bpy.ops.mesh.primitive_uv_sphere_add(location=origin)

    bpy.ops.transform.translate(value=(1,0,0))

    setMaterial(bpy.context.object, blue)  


if __name__ == "__main__":

   run((0,0,0))


Текстуры

Эта программа создает материал с двумя текстурами: текстура image, отображаемая на цвет и альфу, и процедурная bump-текстура. (Может я чего-то недопонимаю, но их там три вообще-то... - прим. пер.)



Используйте этот рисунок как текстуру и измените имя на color.png:



#----------------------------------------------------------

# File texture.py

#----------------------------------------------------------

import bpy, os 


def run(origin):

 # Загрузка файла с рисунком. Измените здесь, если каталог snippets


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода"

Книги похожие на "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Thomas Larsson

Thomas Larsson - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода"

Отзывы читателей о книге "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.