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

на главную - закладки

Жанры

Введение в написание скриптов на Питоне для Блендера 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)

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

Как я строил магическую империю 4

Зубов Константин
4. Как я строил магическую империю
Фантастика:
боевая фантастика
постапокалипсис
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 4

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

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

Попаданка 3

Ахминеева Нина
3. Двойная звезда
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попаданка 3

Муж на сдачу

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Муж на сдачу

Призыватель нулевого ранга. Том 3

Дубов Дмитрий
3. Эпоха Гардара
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга. Том 3

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Чужбина

Седой Василий
2. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужбина

Бестужев. Служба Государевой Безопасности. Книга четвертая

Измайлов Сергей
4. Граф Бестужев
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга четвертая

Локки 5. Потомок бога

Решетов Евгений Валерьевич
5. Локки
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Локки 5. Потомок бога

На границе империй. Том 10. Часть 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 4