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

на главную

Жанры

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

Larsson Thomas

Шрифт:

elif key == 'MOTION':

if level != 0:

raise NameError("Tokenizer out of kilter %d" % level)

amt = bpy.data.armatures.new("BvhAmt")

rig = bpy.data.objects.new("BvhRig", amt)

scn.objects.link(rig)

scn.objects.active = rig

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

root.build(amt, Vector((0,0,0)), None)

#root.display('')

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

status = Motion

elif status == Hierarchy:

if key == 'ROOT':

node = CNode(words, None)

root = node

nodes = [root]

elif key == 'JOINT':

node = CNode(words, node)

nodes.append(node)

elif key == 'OFFSET':

(x,y,z) = (float(words[1]), float(words[2]), float(words[3]))

if rot90:

node.offset = scale*Vector((x,-z,y))

else:

node.offset = scale*Vector((x,y,z))

elif key == 'END':

node = CNode(words, node)

elif key == 'CHANNELS':

oldmode = None

for word in words[2:]:

if rot90:

(index, mode, sign) = channelZup(word)

else:

(index, mode, sign) = channelYup(word)

if mode != oldmode:

indices = []

node.channels.append((mode, indices))

oldmode = mode

indices.append((index, sign))

elif key == '{':

level += 1

elif key == '}':

level -= 1

node = node.parent

else:

raise NameError("Did not expect %s" % words[0])

elif status == Motion:

if key == 'FRAMES:':

nFrames = int(words[1])

elif key == 'FRAME' and words[1].upper == 'TIME:':

frameTime = float(words[2])

frameTime = 1

status = Frames

frame = 0

t = 0

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

pbones = rig.pose.bones

for pb in pbones:

pb.rotation_mode = 'QUATERNION'

elif status == Frames:

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

t += frameTime

frame += 1

fp.close

time2 = time.clock

print("Bvh file loaded in %.3f s" % (time2-time1))

return rig 

#

# channelYup(word):

# channelZup(word):

#

def channelYup(word):

if word == 'Xrotation':

return ('X', Rotation, +1)

elif word == 'Yrotation':

return ('Y', Rotation, +1)

elif word == 'Zrotation':

return ('Z', Rotation, +1)

elif word == 'Xposition':

return (0, Location, +1)

elif word == 'Yposition':

return (1, Location, +1)

elif word == 'Zposition':

return (2, Location, +1)

def channelZup(word):

if word == 'Xrotation':

return ('X', Rotation, +1)

elif word == 'Yrotation':

return ('Z', Rotation, +1)

elif word == 'Zrotation':

return ('Y', Rotation, -1)

elif word == 'Xposition':

return (0, Location, +1)

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

Возвращение Безумного Бога 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
рейтинг книги
Кротовский, сколько можно?