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

на главную

Жанры

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

Larsson Thomas

Шрифт:

return

# Добавление объекта TextCurve в слое 13

def addText(string, loc):

tcu = bpy.data.curves.new(string+'Data', 'FONT')

text = bpy.data.objects.new(string+'Text', tcu)

tcu.body = string

tcu.align = 'RIGHT'

text.location = loc

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

#
Нужно изменить text.layers после того, как текст будет привязан к сцене,

# в противном случае изменение не сможет сработать. moveToLayer(text, Build)

return text

def run:

# Создание двух материалов

red = bpy.data.materials.new('RedMat')

red.diffuse_color = (1,0,0)

green = bpy.data.materials.new('GreenMat')

green.diffuse_color = (0,1,0)

# Позиции

origin = Vector((0,0,0))

dx = Vector((2,0,0))

dy = Vector((0,2,0))

dz = Vector((0,0,2))

# Размещение объектов на слой построения (Build)

layers = 20*[False]

layers[Build] = True

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

bpy.ops.mesh.primitive_cube_add(location=dz, layers=layers)

redCube = setObject('RedCube', red)

bpy.ops.mesh.primitive_cube_add(location=dx+dz, layers=layers)

greenCube = setObject('GreenCube', green)

bpy.ops.mesh.primitive_uv_sphere_add(location=2*dx+dz, layers=layers)

redSphere = setObject('RedSphere', red)

bpy.ops.mesh.primitive_uv_sphere_add(location=3*dx+dz, layers=layers)

greenSphere = setObject('GreenSphere', green)

# Создание текстов

redText = addText('Red', -dx)

greenText = addText('Green', -dx)

cubeText = addText('Cube', -dx)

sphereText = addText('Sphere', -dx)

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

redGrp = bpy.data.groups.new('RedGroup')

greenGrp = bpy.data.groups.new('GreenGroup')

cubeGrp = bpy.data.groups.new('CubeGroup')

sphereGrp = bpy.data.groups.new('SphereGroup')

# Таблица членов групп

 members = {

 redGrp : [redCube, redSphere, redText],

 greenGrp : [greenCube, greenSphere, greenText],

 cubeGrp : [redCube, greenCube, cubeText],

 sphereGrp : [redSphere, greenSphere, sphereText] }

#
Привязка объектов к группам

for group in members.keys:

for ob in members[group]:

group.objects.link(ob)

# Список пустышек

empties = [

('RedEmpty', origin, redGrp),

('GreenEmpty', dy, greenGrp),

('CubeEmpty', 2*dy, cubeGrp),

('SphereEmpty', 3*dy, sphereGrp) ]

# Создание пустышек и размещение их в слое отображения (Display)

scn = bpy.context.scene

for (name, loc, group) in empties:

empty = bpy.data.objects.new(name, None)

empty.location = loc

empty.name = name

empty.dupli_type = 'GROUP'

empty.dupli_group = group

scn.objects.link(empty)

moveToLayer(empty, Display)

# Слой отображения назначается активным слоем

scn.layers[Display] = True

for n in range(20):

if n != Display:

scn.layers[n] = False

return

if __name__ == "__main__":

run

Решётка (Lattice)

Эта программа добавляет ico-сферу, деформированную решёткой. Модификатор решётки действует только на группу вершин в верхней половине сферы.

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

# File lattice.py

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

import bpy

def createIcoSphere(origin):

# Создание ico-сферы

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

ob = bpy.context.object

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

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

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

Повелитель механического легиона. Том IV

Лисицин Евгений
4. Повелитель механического легиона
Фантастика:
фэнтези
технофэнтези
аниме
5.00
рейтинг книги
Повелитель механического легиона. Том IV

Сиротка

Первухин Андрей Евгеньевич
1. Сиротка
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Сиротка

Обгоняя время

Иванов Дмитрий
13. Девяностые
Фантастика:
попаданцы
5.00
рейтинг книги
Обгоняя время

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

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

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

Винокуров Юрий
3. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Кодекс Охотника. Книга III

Истинная поневоле, или Сирота в Академии Драконов

Найт Алекс
3. Академия Драконов, или Девушки с секретом
Любовные романы:
любовно-фантастические романы
6.37
рейтинг книги
Истинная поневоле, или Сирота в Академии Драконов

Комбинация

Ланцов Михаил Алексеевич
2. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Комбинация

Ветер перемен

Ланцов Михаил Алексеевич
5. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ветер перемен

Внешники такие разные

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Внешники такие разные

В тени большого взрыва 1977

Арх Максим
9. Регрессор в СССР
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
В тени большого взрыва 1977

Лолита

Набоков Владимир Владимирович
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Лолита

Real-Rpg. Еретик

Жгулёв Пётр Николаевич
2. Real-Rpg
Фантастика:
фэнтези
8.19
рейтинг книги
Real-Rpg. Еретик

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия