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

на главную

Жанры

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

Larsson Thomas

Шрифт:

return

if __name__ == "__main__":

for ob in
 bpy.context.scene.objects:

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

addFloor(Vector((0,0,-4)))

setupWorld

# Освещение и камера

bpy.ops.object.lamp_add( type = 'POINT',
 location=(4,6,1))

bpy.ops.object.lamp_add( type = 'POINT', location=(-7,-5,0))

bpy.ops.object.camera_add(location=Vector((8,-8,3)),

rotation=(pi/3, 0, pi/6))

run(Vector((0,0,0)))

bpy.ops.screen.animation_play

Симуляция
твёрдого тела

Эта программа использует игровой движок Блендера для моделирования падения кучи объектов на землю. Анимации записываются и впоследствии могут быть воспроизведены.

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

# File pile.py

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

import bpy, mathutils, math, random

from mathutils import Vector NObjects = 7Seed = 444

def addSceneGameSettings(scn):

# Данные игровой сцены

sgdata = scn.game_settings

sgdata.fps = 25 sgdata.frequency = True

sgdata.material_mode = 'GLSL'

sgdata.show_debug_properties = True

sgdata.show_framerate_profile = True

sgdata.show_fullscreen = True

sgdata.show_physics_visualization = True

sgdata.use_animation_record = True return

def addMonkeyGameSettings(ob):

# Настройки игрового объекта

goset = ob.game

goset.physics_type = 'RIGID_BODY'

goset.use_actor = True

goset.use_ghost = False

goset.mass = 7.0

goset.damping = 0.0

goset.use_collision_bounds = True

goset.collision_bounds_type = 'BOX'

goset.show_actuators = True goset.show_controllers = True

goset.show_debug_state = True

goset.show_sensors = True goset.show_state_panel = True

return

def run(origin):

#
Смена движка рендера с BLENDER_RENDER на BLENDER_GAME

bpy.context.scene.render.engine = 'BLENDER_GAME'

# Создание пола

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

bpy.ops.transform.resize(value=(20, 20, 20))

floor = bpy.context.object

mat = bpy.data.materials.new(name = 'FloorMaterial')

mat.diffuse_color = (0.5, 0.5, 0.5)

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

objectType = ["cube", "ico_sphere", "monkey"]

objects = []

deg2rad = math.pi/180

random.seed(Seed)

for n in range(NObjects):

x = []

for i in range(3):

x.append( random.randrange(0, 360, 1) )

dx = 0.5*random.random

dy = 0.5*random.random

obType = objectType[ random.randrange(0, 3, 1) ]

fcn = eval("bpy.ops.mesh.primitive_%s_add" % obType)

fcn(location=origin+Vector((dx, dy, 3*n+3)),

rotation=deg2rad*Vector((x[0], x[1], x[2])))

ob = bpy.context.object objects.append( ob )

mat = bpy.data.materials.new(name='Material_%02d' % n) c = []

for j in range(3):

c.append( random.random ) mat.diffuse_color = c

ob.data.materials.append(mat)

# Установка игровых настроек для пола

fset = floor.game

fset.physics_type = 'STATIC'

# Установка игровых настроек для объектов

for n in range(NObjects):

addMonkeyGameSettings(objects[n])

# Установка игровых настроек для сцены

scn = bpy.context.scene

addSceneGameSettings(scn)

scn.frame_start = 1

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

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Предатель. Вернуть любимую

Дали Мила
4. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Предатель. Вернуть любимую

Бывший муж

Рузанова Ольга
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бывший муж

Мама для дракончика или Жена к вылуплению

Максонова Мария
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мама для дракончика или Жена к вылуплению

Жандарм 5

Семин Никита
5. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 5

Менталист. Эмансипация

Еслер Андрей
1. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Менталист. Эмансипация

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

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

Лорд Системы 14

Токсик Саша
14. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 14

Смерть может танцевать 4

Вальтер Макс
4. Безликий
Фантастика:
боевая фантастика
5.85
рейтинг книги
Смерть может танцевать 4

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

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

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Не отпускаю

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
8.44
рейтинг книги
Не отпускаю

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

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

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3