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

на главную

Жанры

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

Larsson Thomas

Шрифт:

me = ob.data

# Создание групп вершин

upper = ob.vertex_groups.new('Upper')

lower = ob.vertex_groups.new('Lower')

for v in me.vertices:

if v.co[2] > 0.001:

upper.add([v.index], 1.0, 'REPLACE')

elif v.co[2] < -0.001:

lower.add([v.index], 1.0, 'REPLACE')

else: upper.add([v.index], 0.5, 'REPLACE')

lower.add([v.index], 0.5, 'REPLACE')

return ob

def createLattice(origin):

#
Создание решётки и объекта

lat = bpy.data.lattices.new('MyLattice')

ob = bpy.data.objects.new('LatticeObject', lat)

ob.location = origin ob.show_x_ray = True

# Привязка объекта к сцене

scn = bpy.context.scene

scn.objects.link(ob)

scn.objects.active = ob

scn.update

# Установка атрибутов решётки

lat.interpolation_type_u = 'KEY_LINEAR'

lat.interpolation_type_v = 'KEY_CARDINAL'

lat.interpolation_type_w = 'KEY_BSPLINE'

lat.use_outside = False

lat.points_u = 2

lat.points_v = 2 lat.points_w = 2

# Расстановка точек решётки

s = 1.0

points = [

(-s,-s,-s), (s,-s,-s), (-s,s,-s), (s,s,-s),

(-s,-s,s), (s,-s,s), (-s,s,s), (s,s,s)

]

for n,pt in enumerate(lat.points):

for k in range(3):

pt.co_deform[k] = points[n][k]

pass

return ob

def run(origin):

sphere = createIcoSphere(origin)

lat = createLattice(origin)

# Создание модификатора решётки

mod = sphere.modifiers.new('Lat', 'LATTICE')

mod.object = lat

mod.vertex_group = 'Upper'

# Решётка в режиме редактирования для лёгкого деформирования

bpy.context.scene.update

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

return

if __name__ == "__main__":

run((0,0,0))

Кривая

Эта

программа добавляет кривую Безье. Она также добавляет круг Nurbs, который используется как bevel-объект.

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

# File curve.py

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

import bpy

def createBevelObject:

# Создание Bevel-кривой и объекта

cu = bpy.data.curves.new('BevelCurve', 'CURVE')

ob = bpy.data.objects.new('BevelObject', cu)

bpy.context.scene.objects.link(ob)

# Настройка некоторых атрибутов cu.dimensions = '2D'

cu.resolution_u = 6

cu.twist_mode = 'MINIMUM'

ob.show_name = True

# Координаты управляющих точек

coords = [

(0.00,0.08,0.00,1.00),

(-0.20,0.08,0.00,0.35),

(-0.20,0.19,0.00,1.00),

(-0.20,0.39,0.00,0.35),

(0.00,0.26,0.00,1.00),

(0.20,0.39,0.00,0.35),

(0.20,0.19,0.00,1.00),

(0.20,0.08,0.00,0.35)

]

# Создание сплайна и установка управляющих точек

spline = cu.splines.new('NURBS')

nPointsU = len(coords)

spline.points.add(nPointsU)

for n in range(nPointsU):

spline.points[n].co = coords[n]

# Настройка атрибутов сплайна. Точки, вероятно, должны существовать к этому моменту.

spline.use_cyclic_u = True

spline.resolution_u = 6

spline.order_u = 3

return ob

def createCurveObject(bevob):

# Создание кривой и объекта

cu = bpy.data.curves.new('MyCurve', 'CURVE')

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

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Законы Рода. Том 9

Flow Ascold
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

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

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор