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

Larsson Thomas

Шрифт:

mat.use_shadeless = True

mtex = mat.texture_slots.add

mtex.texture = tex

mtex.texture_coords = 'UV'

mtex.use_map_color_diffuse = True

return mat

def run(origin):

ob = createMesh(origin)

mat = createMaterial

ob.data.materials.append(mat)

return

if __name__ == "__main__":

run((0,0,0))

Действия (Actions) и управляющие элементы (drivers)

Действие объекта

Прыгающий мяч.

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

# File ob_action.py

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

import bpy import math

def run(origin):

# Установка начала и конца анимации

scn = bpy.context.scene

scn.frame_start = 11

scn.frame_end = 200

# Создание ico-сферы

bpy.ops.mesh.primitive_ico_sphere_add(location=origin)

ob = bpy.context.object

# Вставка ключевых кадров с operator code (кодом оператора ???)

# Объект должен быть выбранным автоматически

z = 10

t = 1

for n in range(5):

t += 10

bpy.ops.anim.change_frame(frame = t)

bpy.ops.transform.translate(value=(2, 0, z))

bpy.ops.anim.keyframe_insert_menu(type='Location')

t += 10

bpy.ops.anim.change_frame(frame = t)

bpy.ops.transform.translate(value=(2, 0, -z))

bpy.ops.anim.keyframe_insert_menu(type='Location')

z *= 0.67

action = ob.animation_data.action

# Создание словаря с графиком FCurves типа location (позиция)

fcus = {}

for fcu in action.fcurves:

if fcu.data_path == 'location':

fcus[fcu.array_index] = fcu

print(fcus.items)

# Добавление новых ключевых точек к x и z

kpts_x = fcus[0].keyframe_points

kpts_z = fcus[2].keyframe_points

(x0,y0,z0) = origin

omega = 2*math.pi/20

z *= 0.67

for t in range(101, 201):

xt = 20 + 0.2*(t-101)

zt = z*(1-math.cos(omega*(t - 101)))

z *= 0.98

kpts_z.insert(t, zt+z0, options={'FAST'})

kpts_x.insert(t, xt+x0)

# Изменение типа экстраполяции и интерполяции

# для кривой X на линейный

fcus[0].extrapolation = 'LINEAR'

for kp in kpts_x:

kp.interpolation = 'LINEAR'

# Позиция Y - константа и может быть удалена

action.fcurves.remove(fcus[1])

bpy.ops.object.paths_calculate

return

if __name__ == "__main__":

run((0,0,10))

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

Действие позирования костей

Эта программа создает арматуру с двумя костями, которые вращаются по некоторым сложным кривым.

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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