Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Шрифт:
# Добавление управляющего элемента для вращения по Z кости Tip
# Tip.rotz = 1.0 - 1.0*x, где x = Driver.locx
fcurve = rig.pose.bones["Tip"].driver_add('rotation_quaternion', 3)
drv = fcurve.driver
drv.type = 'AVERAGE'
drv.show_debug_info = True
var = drv.variables.new
var.name = 'x'
var.type = 'TRANSFORMS'
targ = var.targets[0]
targ.id = rig
targ.transform_type = 'LOC_X'
targ.bone_target = 'Driver'
targ.use_local_space_transform = True
fmod = fcurve.modifiers[0]
fmod.mode = 'POLYNOMIAL'
fmod.poly_order = 1
fmod.coefficients = (1.0, -1.0)
#
Добавление управляющего элемента для вращения по Z кости Base
# Base.rotz = z*z - 3*y, где y = Driver.locy и z = Driver.rotz
fcurve = rig.pose.bones["Base"].driver_add('rotation_quaternion', 3)
drv = fcurve.driver
drv.type = 'SCRIPTED'
drv.expression = 'z*z - 3*y'
drv.show_debug_info = True
var1 = drv.variables.new
var1.name = 'y'
var1.type = 'TRANSFORMS'
targ1 = var1.targets[0]
targ1.id = rig
targ1.transform_type = 'LOC_Y'
targ1.bone_target = 'Driver'
targ1.use_local_space_transform = True
var2 = drv.variables.new
var2.name = 'z'
var2.type = 'TRANSFORMS'
targ2 = var2.targets[0]
targ2.id = rig
targ2.transform_type = 'ROT_Z'
targ2.bone_target = 'Driver'
targ2.use_local_space_transform = True
return
if __name__ == "__main__":
run((0,0,0))
Другие типы данных
Текст
Эта программа добавляет текстовый объект в 3D-пространство и устанавливает некоторые атрибуты. Заметьте, что тип данных здесь используется TextCurve;
#----------------------------------------------------------
# File text.py
#----------------------------------------------------------
import bpy
import math from math
import pi
def run(origin):
# Создание и именование объекта TextCurve
bpy.ops.object.text_add(
location=origin,
rotation=(pi/2,0,pi))
ob = bpy.context.object
ob.name = 'HelloWorldText'
tcu = ob.data
tcu.name = 'HelloWorldData'
# Атрибуты TextCurve
tcu.body = "Hello, world"
tcu.font = bpy.data.fonts[0]
tcu.offset_x = -9
tcu.offset_y = -0.25
tcu.shear = 0.5
tcu.size = 3
tcu.space_character = 2
tcu.space_word = 4
# Унаследованные атрибуты Curve (Кривая)
tcu.extrude = 0.2
tcu.use_fill_back = True
tcu.use_fill_deform = True
tcu.use_fill_front = True
if __name__ == "__main__":
run((0,0,0))
Слои
Эта программа иллюстрирует три метода установки объекта на новом слое:
1. Создать его на правильном слое.
2. Создать его в слое 1, и изменить Object.layer.
3. Создать его в слое 1, и использовать оператор для его перемещения.
Также показано, как изменять видимость слоёв.
#----------------------------------------------------------
# File layers.py
#----------------------------------------------------------
import bpy
def createOnLayer(mat):
for n in range(3, 8):
Поделиться:
Популярные книги
Усадьба леди Анны
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Светлая тьма. Советник
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Двойник Короля
1. Двойник Короля
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Его нежеланная истинная
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Последний Паладин. Том 2
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Измена. Наследник для дракона
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Идеальный мир для Лекаря 9
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Мастер темных Арканов
1. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Адвокат империи
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Кодекс Охотника. Книга XXI
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Вечный. Книга II
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Законы Рода. Том 3
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Наследник
1. Старицкий
Приключения:
исторические приключения
5.00