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

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

Жанры

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

Larsson Thomas

Шрифт:

(2.75942,1.5089,-0.709962)],

[(-0.892345,-0.0182112,0.438324),

(-1.5723,0.484807,0.971839),

(-2.2393,0.116525,0.324168),

(-2.18426,-0.00867975,-0.666435),

(-1.99681,-0.0600535,-1.64737)],

[(-0.0154996,0.0387489,0.995887),

(-0.205679,-0.528201,1.79738),

(-0.191354,0.36126,2.25417),

(0.0876127,1.1781,1.74925),

(0.300626,1.48545,0.821801)] ]

def run(origin):

ob = createHead

createHair(ob, hairGuides)

ob.location = origin

return

if __name__ == "__main__":

run((0,0,0))

Ткань

Эта

программа добавляет плоскость с модификатором ткани. У плоскости есть родитель — обруч, который движется вниз, где она встречается с препятствием-сферой. Влияние модификатора ткани находится под контролем группы вершин, а это значит, что углы движутся с обручем, в то время как середина деформируется препятствием. Плоскости присваивается материал со стресс-отображением прозрачности.

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

# File cloth.py

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

import bpy, mathutils, math from mathutils import Vector

def run(origin):

side = 4

diagonal = side/math.sqrt(2)

hoopRad = 0.1

eps = 0.75

nDivs = 40

scn = bpy.context.scene

# Добавление сферы, выступающей в качестве объекта столкновения

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

sphere = bpy.context.object

bpy.ops.object.shade_smooth

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

bpy.ops.object.modifier_add(type='COLLISION')

cset = sphere.modifiers[0].settings

cset.thickness_outer = 0.2

cset.thickness_inner = 0.5

cset.permeability = 0.2

cset.stickness = 0.2

bpy.ops.object.modifier_add(type='SUBSURF')

# Добавление кольца

center = origin+Vector((0,0,2))

bpy.ops.mesh.primitive_torus_add(

major_radius= diagonal + hoopRad,

minor_radius= hoopRad,

location=center,

rotation=(0, 0, 0))

bpy.ops.object.shade_smooth

ring = bpy.context.object

#
Добавление плоскости над сферой и привязка её к кольцу

bpy.ops.mesh.primitive_plane_add(location=(0,0,0))

bpy.ops.transform.resize(value=(side/2,side/2,1))

bpy.ops.object.mode_set(mode='EDIT')

bpy.ops.mesh.subdivide(number_cuts=nDivs)

bpy.ops.object.mode_set(mode='OBJECT')

plane = bpy.context.object

plane.parent = ring

me = plane.data

# Создание группы вершин. Объект не должен быть активным?

scn.objects.active = None

grp = plane.vertex_groups.new('Group')

for v in plane.data.vertices:

r = v.co - center

x = r.length/diagonal

w = 3*(x-eps)/(1-eps)

if w > 1:

w = 1

if w > 0:

grp.add([v.index], w, 'REPLACE')

# Активация плоскости снова

scn.objects.active = plane

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

cloth = plane.modifiers.new(name='Cloth', type='CLOTH')

cset = cloth.settings

cset.use_pin_cloth = True

cset.vertex_group_mass = 'Group'

# Настройки шёлка, скопировано из "scripts/presets/cloth/silk.py"

cset.quality = 5

cset.mass = 0.150

cset.structural_stiffness = 5

cset.bending_stiffness = 0.05

cset.spring_damping = 0

cset.air_damping = 1

# Сглаженное затенение

plane.select = True

bpy.ops.object.shade_smooth

bpy.ops.object.modifier_add(type='SUBSURF')

# Текстура Blend

tex = bpy.data.textures.new('Blend', type = 'BLEND')

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

Сердце Дракона. Том 19. Часть 1

Клеванский Кирилл Сергеевич
19. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.52
рейтинг книги
Сердце Дракона. Том 19. Часть 1

Последняя Арена 10

Греков Сергей
10. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 10

Идеальный мир для Лекаря 21

Сапфир Олег
21. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 21

Звезда сомнительного счастья

Шах Ольга
Фантастика:
фэнтези
6.00
рейтинг книги
Звезда сомнительного счастья

Live-rpg. эволюция-4

Кронос Александр
4. Эволюция. Live-RPG
Фантастика:
боевая фантастика
7.92
рейтинг книги
Live-rpg. эволюция-4

Девятое правило дворянина

Герда Александр
9. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Девятое правило дворянина

Муж на сдачу

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Муж на сдачу

Para bellum

Ланцов Михаил Алексеевич
4. Фрунзе
Фантастика:
попаданцы
альтернативная история
6.60
рейтинг книги
Para bellum

Егерь

Астахов Евгений Евгеньевич
1. Сопряжение
Фантастика:
боевая фантастика
попаданцы
рпг
7.00
рейтинг книги
Егерь

Вечная Война. Книга VII

Винокуров Юрий
7. Вечная Война
Фантастика:
юмористическая фантастика
космическая фантастика
5.75
рейтинг книги
Вечная Война. Книга VII

Я снова не князь! Книга XVII

Дрейк Сириус
17. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я снова не князь! Книга XVII

Ваантан

Кораблев Родион
10. Другая сторона
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Ваантан

Идущий в тени 4

Амврелий Марк
4. Идущий в тени
Фантастика:
боевая фантастика
6.58
рейтинг книги
Идущий в тени 4

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник