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

Здесь есть возможность читать онлайн «Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Третье издание, расширенное и обновлённое для Blender 2.57

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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 latticepy - фото 11

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

# File lattice.py

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

import bpy

def createIcoSphere(origin):

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

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

ob = bpy.context.object

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 curvepy - фото 12

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

# 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'

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x