Книга: Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Группы вершин и ключи формы
Группы вершин и ключи формы
Эта программа добавляет UV-сферу с двумя группами вершин (Left И Right) и четырьмя ключами формы.
#----------------------------------------------------------
# File shapekey.py
#----------------------------------------------------------
import bpy, random
def run(origin):
# Добавление UV-сферы
bpy.ops.mesh.primitive_uv_sphere_add(
segments=6, ring_count=5, size=1, location=origin)
ob = bpy.context.object
ob.name = 'ShapeKeyObject'
ob.show_name = True
# Создаёт левую (Left) и правую (Right) группы вершин
left = ob.vertex_groups.new('Left')
right = ob.vertex_groups.new('Right')
for v in ob.data.vertices:
if v.co[0] > 0.001:
left.add([v.index], 1.0, 'REPLACE')
elif v.co[0] < -0.001:
right.add([v.index], 1.0, 'REPLACE')
else:
left.add([v.index], 0.5, 'REPLACE')
right.add([v.index], 0.5, 'REPLACE')
# Добавление ключа Basis (базовый)
bpy.ops.object.shape_key_add(None)
basis = ob.active_shape_key
# Добавление ключа FrontForward:
# передние вершины сдвигаются на единицу вперёд
# Пределы изменения (Slider) от -1.0 до +2.0
bpy.ops.object.shape_key_add(None)
frontFwd = ob.active_shape_key
frontFwd.name = 'FrontForward'
frontFwd.slider_min = -1.0 frontFwd.slider_max = 2.0
for v in [19, 20, 23, 24]:
pt = frontFwd.data[v].co
pt[1] = pt[1] - 1
# Добавление ключей TopUp: верхние вершины перемещаются на единицу вверх.
# TopUp_L и TopUp_R влияют только на левые и правые половины, соответственно
keylist = [(None, ''), ('Left', '_L'), ('Right', '_R')]
for (vgrp, suffix) in keylist:
bpy.ops.object.shape_key_add(None)
topUp = ob.active_shape_key
topUp.name = 'TopUp' + suffix
if vgrp:
topUp.vertex_group = vgrp
for v in [0, 1, 9, 10, 17, 18, 25]:
pt = topUp.data[v].co
pt[2] = pt[2] + 1
# Установка позы ключам формы
for shape in ob.data.shape_keys.key_blocks:
shape.value = random.random()
return
if __name__ == "__main__":
# Создание пяти объектов с произвольными ключами формы
for j in range(5):
run((3*j,0,0))
- От исключительной полезности к стратегическому ценообразованию
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Организация пользователей в группы с помощью ролей
- Глава 5 Агрессивные формы кода и борьба с ними
- Создание пользователя и группы на рабочей станции
- Группы
- 2.2.5. Ключи
- 2.5. Активная и пассивная формы интеллектуальной деятельности
- II. Вовлечение группы в работу и создание атмосферы взаимопонимания
- Фокус-группы вместо пудры
- Как подключить ноутбук к сети Интернет
- Формы Web ASP.NET