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

Здесь есть возможность читать онлайн «Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

# Список координат вершин.

verts = [

(0.5, 0.5,0), (0.5,-0.5,0), (-0.5,-0.5,0), (-0.5,0.5,0),

(0.5,0.5,1), (0.5,-0.5,1), (-0.5,-0.5,1), (-0.5,0.5,1),

(-0.5,0.5,2), (-0.5,-0.5,2), (0.5,-0.5,2), (0.5,0.5,2),

(0.5,0.5,3), (0.5,-0.5,3), (-0.5,-0.5,3), (-0.5, 0.5,3)

]

# Список граней.

faces = [

(0, 1, 2, 3),

(0, 4, 5, 1),

(1, 5, 6, 2),

(2, 6, 7, 3),

(4, 0, 3, 7),

(4, 7, 8, 11),

(7, 6, 9, 8),

(6, 5, 10, 9),

(5, 4, 11, 10),

(10, 11, 12, 13),

(9, 10, 13, 14),

(8, 9, 14, 15),

(11, 8, 15, 12),

(12, 15, 14, 13)

]

# Создание меша из передаваемых списков вершин, рёбер, граней.

# Или рёбра или грани должны быть [], иначе Вам нужны проблемы

me.from_pydata(verts, [], faces)

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

me.update(calc_edges=True)

return ob

def skinMesh(ob, rig):

# Списки вершин в группах, в форме (вершина, вес)

vgroups = {}

vgroups['Base'] = [

(0, 1.0), (1, 1.0), (2, 1.0), (3, 1.0),

(4, 0.5), (5, 0.5), (6, 0.5), (7, 0.5)]

vgroups['Mid'] = [

(4, 0.5), (5, 0.5), (6, 0.5), (7, 0.5),

(8, 1.0), (9, 1.0), (10, 1.0), (11, 1.0)]

vgroups['Tip'] = [ (12, 1.0), (13, 1.0), (14, 1.0), (15, 1.0)]

# Создание групп вершин и добавление вершин и весов

# Первый аргумент в назначении — список, чтобы можно

# было назначать несколько вершин сразу

for name in vgroups.keys():

grp = ob.vertex_groups.new(name)

for (v, w) in vgroups[name]:

grp.add([v], w, 'REPLACE')

# Добавление меш-объекту модификатора арматуры, с использованием

# групп вершин, а не envelopes

mod = ob.modifiers.new('MyRigModif', 'ARMATURE')

mod.object = rig mod.use_bone_envelopes = False

mod.use_vertex_groups = True

return

def run(origin):

rig = createArmature(origin)

ob = createMesh(origin)

skinMesh(ob, rig)

# Перемещение и вращение кости Tip в режиме позы

bpy.context.scene.objects.active = rig

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

ptip = rig.pose.bones['Tip']

ptip.location = (0.2,-0.5,0)

rotMatrix = mathutils.Matrix.Rotation(0.6, 3, 'X')

ptip.rotation_quaternion = rotMatrix.to_quaternion()

return

if __name__ == "__main__":

run((0,0,0))

Режим редактирования против режима позы

Атрибуты костей, которые влияют на изначальную позу арматуры (голова, хвост, поворот, родитель, использование соединения, и т.п.), доступны только в режиме редактирования (использование кости в ob.data.edit bones), тогда как атрибуты, которые применяются при позировании, требуют, чтобы арматура была в режиме позы (использование кости в ob.pose.bones). Насколько я знаю, единственный способ переключаться между режимами редактирования и позы — с помощью вызова операторов

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

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

Поскольку операторы воздействуют на активный объект, мы должны удостовериться, что активен правильный объект, устанавливая bpy.context.scene.objects.active.

Этот скрипт копирует углы поворота roll из исходной оснастки (имя объекта 'SrcRig') в целевую оснастку (имя объектна 'TrgRig'). Обе арматуры должны иметь одинаковое число костей с идентичными именами.

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

# File copy_roll.py

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

import bpy

def copyRolls(src, trg):

rolls = {} bpy.context.scene.objects.active = src

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

for eb in src.data.edit_bones:

rolls[eb.name] = eb.roll

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

bpy.context.scene.objects.active = trg

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

for eb in trg.data.edit_bones:

oldRoll = eb.roll

eb.roll = rolls[eb.name]

print(eb.name, oldRoll, eb.roll)

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

return

objects = bpy.context.scene.objects

copyRolls(objects['SrcRig'], objects['TrgRig'])

Три способа создания объектов

Примеры, которые мы изучали до сих пор, показывают, что объект можно создавать в Питоне с использованием различных парадигм.

Метод данных

• Метод данных тщательно подражает тому, как данные сохраняются непосредственно в Блендере.

Добавляются данные, и затем объект. Для меша:

me = bpy.data.meshes.new(meshName)

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

и для арматуры:

amt = bpy.data.armatures.new(amtname)

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

• Объект привязывается к текущей сцене и делается активным. Дополнительно, мы можем сделать вновь созданный объект активным или выбранным. Этот код одинаков для всех типов объектов.

scn = bpy.context.scene

scn.objects.link(ob)

scn.objects.active = ob

ob.select = True

• Заполняются данные. В случае меша, мы добавляем списки вершин и граней.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x