Чтение онлайн

на главную

Жанры

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

Larsson Thomas

Шрифт:

elif word == 'Yposition':

return (2, Location, +1)

elif word == 'Zposition':

return (1, Location, -1)

#

# addFrame(words, frame, nodes, pbones, scale):

#

def addFrame(words, frame, nodes, pbones, scale):

m = 0

for node in nodes:

name = node.name

try:

pb = pbones[name]

except:

pb = None

if pb:

for (mode, indices) in node.channels:

if mode == Location:

vec = Vector((0,0,0))

for (index, sign) in indices:

vec[index] = sign*float(words[m])

m += 1

pb.location = (scale * vec - node.head) * node.inverse

for n in range(3):

pb.keyframe_insert('location', index=n, frame=frame, group=name)

elif mode == Rotation:

mats = []

for (axis, sign) in indices:

angle = sign*float(words[m])*Deg2Rad

mats.append(Matrix.Rotation(angle, 3, axis))

m += 1

mat = node.inverse * mats[0] * mats[1] * mats[2] * node.matrix

pb.rotation_quaternion = mat.to_quaternion

for n in range(4):

pb.keyframe_insert('rotation_quaternion',

index=n, frame=frame, group=name)

return 

#

# initSceneProperties(scn):

#

def initSceneProperties(scn):

bpy.types.Scene.MyBvhRot90 = bpy.props.BoolProperty(

name="Rotate 90 degrees",

description="Rotate the armature to make Z point up")

scn['MyBvhRot90'] = True

bpy.types.Scene.MyBvhScale = bpy.props.FloatProperty(

name="Scale",

default = 1.0,

min = 0.01,

max = 100)

scn['MyBvhScale'] = 1.0

initSceneProperties(bpy.context.scene)

#

# class BvhImportPanel(bpy.types.Panel):

#

class BvhImportPanel(bpy.types.Panel):

bl_label = "BVH import"

bl_space_type = "VIEW_3D"

bl_region_type = "UI"

def draw(self, context):

self.layout.prop(context.scene, "MyBvhRot90")

self.layout.prop(context.scene, "MyBvhScale")

self.layout.operator("simple_bvh.load") 

#

# class OBJECT_OT_LoadBvhButt
on(bpy.types.Operator, ImportHelper):

#

class OBJECT_OT_LoadBvhButton(bpy.types.Operator, ImportHelper):

bl_idname = "simple_bvh.load"

bl_label = "Load BVH file (.bvh)"

# From ImportHelper. Filter filenames.

filename_ext = ".bvh"

filter_glob = bpy.props.StringProperty(default="*.bvh", options={'HIDDEN'})

filepath = bpy.props.StringProperty(name="File Path",

maxlen=1024, default="")

def execute(self, context):

import bpy, os

readBvhFile(context, self.properties.filepath,

context.scene.MyBvhRot90, context.scene.MyBvhScale)

return{'FINISHED'}

def invoke(self, context, event):

context.window_manager.fileselect_add(self)

return {'RUNNING_MODAL'}

#

# Registration

#

def menu_func(self, context):

self.layout.operator("simple_bvh.load", text="Simple BVH (.bvh)...")

def register:

bpy.utils.register_module(__name__)

bpy.types.INFO_MT_file_import.append(menu_func)

def unregister:

Поделиться:
Популярные книги

Возвращение Безумного Бога 5

Тесленок Кирилл Геннадьевич
5. Возвращение Безумного Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 5

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Кровь, золото и помидоры

Распопов Дмитрий Викторович
4. Венецианский купец
Фантастика:
альтернативная история
5.40
рейтинг книги
Кровь, золото и помидоры

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Книга 5. Империя на марше

Тамбовский Сергей
5. Империя у края
Фантастика:
альтернативная история
5.00
рейтинг книги
Книга 5. Империя на марше

Генерал Скала и сиротка

Суббота Светлана
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Генерал Скала и сиротка

Мимик нового Мира 14

Северный Лис
13. Мимик!
Фантастика:
юмористическое фэнтези
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 14

Стрелок

Астахов Евгений Евгеньевич
5. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Стрелок

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Сержант. Назад в СССР. Книга 4

Гаусс Максим
4. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сержант. Назад в СССР. Книга 4

Третий. Том 2

INDIGO
2. Отпуск
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 2

Боксер 2: назад в СССР

Гуров Валерий Александрович
2. Боксер
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боксер 2: назад в СССР

Вопреки судьбе, или В другой мир за счастьем

Цвик Катерина Александровна
Любовные романы:
любовно-фантастические романы
6.46
рейтинг книги
Вопреки судьбе, или В другой мир за счастьем

Кротовский, сколько можно?

Парсиев Дмитрий
5. РОС: Изнанка Империи
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кротовский, сколько можно?