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

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

Жанры

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

Larsson Thomas

Шрифт:

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))

Применение модификатора массива (array)

Эта программа создает цепь из десяти звеньев. Звено является простым тором, масштабированным вдоль оси x. Мы добавляем звену модификатор массива, где смещение управляется пустышкой (empty). Наконец, модификатор массива применяется (apply), создавая из цепи единственный меш.

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

# File chain.py

# Creates an array modifier and applies it# Update to API rev. 36523

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

import bpy

import math

from math import pi

def run(origin):

#
Добавление единственного звена цепи к сцене

bpy.ops.mesh.primitive_torus_add(

#major_radius=1,

#minor_radius=0.25,

major_segments=12,

minor_segments=8,

use_abso=True,

abso_major_rad=1,

abso_minor_rad=0.6,

location=(0,0,0),

rotation=(0,0,0))

# Масштабирование тора вдоль оси x

ob = bpy.context.object

ob.scale = (0.7, 1, 1)

bpy.ops.object.transform_apply(scale=True)

# Создание пустышки

bpy.ops.object.add(

type='EMPTY',

location=(0,1.2,0.2),

rotation=(pi/2, pi/4, pi/2))

empty = bpy.context.object

# Звено цепи снова делается активным

scn = bpy.context.scene

scn.objects.active = ob

# Добавление модификатора

mod = ob.modifiers.new('Chain', 'ARRAY')

mod.fit_type = 'FIXED_COUNT'

mod.count = 10

mod.use_relative_offset = 0

mod.use_object_offset = True

mod.offset_object = empty

# Применение модификатора

bpy.ops.object.visual_transform_apply

bpy.ops.object.modifier_apply(apply_as='DATA', modifier='Chain')

# Перемещение цепи на место

bpy.ops.transform.translate(value=origin)

# Пустышка больше не нужна

scn.objects.unlink(empty)

del(empty)

return

if __name__ == "__main__":

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

Противостояние

Демидов Джон
3. Система компиляции
Фантастика:
героическая фантастика
рпг
5.00
рейтинг книги
Противостояние

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Зимние ходоки

Сухов Лео
7. Антикризисный Актив
Фантастика:
героическая фантастика
попаданцы
5.00
рейтинг книги
Зимние ходоки

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Казачий князь

Трофимов Ерофей
5. Шатун
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Казачий князь

Хозяйка забытой усадьбы

Воронцова Александра
5. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка забытой усадьбы

Барон не признает правила

Ренгач Евгений
12. Закон сильного
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Барон не признает правила

Кровь на клинке

Трофимов Ерофей
3. Шатун
Фантастика:
боевая фантастика
попаданцы
альтернативная история
6.40
рейтинг книги
Кровь на клинке

Отмороженный 6.0

Гарцевич Евгений Александрович
6. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Отмороженный 6.0

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

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

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Отверженный III: Вызов

Опсокополос Алексис
3. Отверженный
Фантастика:
фэнтези
альтернативная история
7.73
рейтинг книги
Отверженный III: Вызов

Волков. Гимназия №6

Пылаев Валерий
1. Волков
Фантастика:
попаданцы
альтернативная история
аниме
7.00
рейтинг книги
Волков. Гимназия №6

Красное на красном

Камша Вера Викторовна
1. Отблески Этерны
Фантастика:
фэнтези
8.69
рейтинг книги
Красное на красном