Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
вернуться

Larsson Thomas

Шрифт:

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

# File epicycle.py

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

import bpy

import math from math

import pi

def createEpiCycle(origin):

periods = [1, 5, 8, 17]

radii = [1.0, 0.3, 0.5, 0.1]

axes = [0, 2, 1, 0]

phases = [0, pi/4, pi/2, 0]

# Добавление пустышек

scn = bpy.context.scene

empties = []

nEmpties = len(periods)

for n in range(nEmpties):

empty = bpy.data.objects.new('Empty_%d' % n, None)

scn.objects.link(empty)

empties.append(empty)

# Назначение каждой пустышке родителя последовательно

for n in range(1, nEmpties):

empties[n].parent = empties[n-1]

empties[n].location = (0, radii[n-1], 0)

# Вставка двух ключевых кадров для каждой пустышки

for n in range(nEmpties):

empty = empties[n]

empty.keyframe_insert(

'rotation_euler',

index=axes[n],

frame=0,

group=empty.name)

empty.keyframe_insert(

'rotation_euler',

index=axes[n],

frame=periods[n],

group=empty.name)

fcu = empty.animation_data.action.fcurves[0]

print(empty, fcu.data_path, fcu.array_index)

kp0 = fcu.keyframe_points[0]

kp0.co = (0, phases[n])

kp0.interpolation = 'LINEAR'

kp1 = fcu.keyframe_points[1]

kp1.co = (250.0/periods[n], 2*pi + phases[n])

kp1.interpolation = 'LINEAR'

fcu.extrapolation = 'LINEAR'

last = empties[nEmpties-1]

bpy.ops.mesh.primitive_ico_sphere_add(

size = 0.2,

location=last.location)

ob = bpy.context.object

ob.parent = last

empties[0].location = origin

return

def run(origin):

createEpiCycle(origin)

bpy.ops.object.paths_calculate

return

if __name__ == "__main__":

run((0,0,0))

bpy.ops.screen.animation_play(reverse=False, sync=False)

Управляющие элементы (Drivers)

Эта программа добавляет арматуру с одной управляющей костью и двумя управляемыми костями. Вращение Конца (tip) по Z управляется позицией по X управляющей кости. Вращение Базы (base) по Z управляется как позицией по Y, так и вращением по Z управляющей кости.

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

# File driver.py

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

import bpy

def run(origin):

# Создание арматуры и объекта

amt = bpy.data.armatures.new('MyRigData')

rig = bpy.data.objects.new('MyRig', amt)

  • Читать дальше
  • 1
  • ...
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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