Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Шрифт:
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))
Кривая
Эта
#----------------------------------------------------------
# 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')
Поделиться:
Популярные книги
Live-rpg. эволюция-3
3. Эволюция. Live-RPG
Фантастика:
боевая фантастика
6.59
рейтинг книги
Пушкарь. Пенталогия
Фантастика:
альтернативная история
8.11
рейтинг книги
Хроники разрушителя миров. Книга 8
8. Хроники разрушителя миров
Фантастика:
фэнтези
5.00
рейтинг книги
Адъютант
2. Мания крафта
Фантастика:
фэнтези
6.43
рейтинг книги
Эфир. Терра 13. #2
2. Совет Видящих
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VI
6. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Измена
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Я – Орк. Том 2
2. Я — Орк
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Законы Рода. Том 2
2. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Тринадцатый
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Темный Патриарх Светлого Рода
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Раб и солдат
1. Штык и кинжал
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 5: Лихие 90-е
5. Волков
Фантастика:
попаданцы
альтернативная история
5.00