Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
вернуться

Larsson Thomas

Шрифт:

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

scn.frame_end = 200 return

if __name__ == "__main__":

bpy.ops.object.select_by_type(type='MESH')

bpy.ops.object.delete

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

bpy.ops.view3d.game_start

Жидкости

Эта программа настраивает симуляцию жидкости с доменом, жидкостью, движущимся препятствием, притоком, оттоком, и тремя видами капель. Обратите внимание, что мы должны запечь симуляцию сначала, я не думаю, что это было необходимо.

Изображение кадра 57, после добавления нескольких материалов. Капли в основном отрендерены полностью, если они имеют низкую прозрачность, около alpha = 0,2.

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

# File fluid.py

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

import bpy, math

from mathutils import Vector

from math import pi

def createDomain(origin):

# Домен

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

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

domain = bpy.context.object

domain.name = 'Domain'

bpy.ops.object.shade_smooth

# Добавление модификатора домену

mod = domain.modifiers.new(name='FluidDomain', type='FLUID_SIMULATION')

# mod.settings is FluidSettings

mod.settings.type = 'DOMAIN'

# mod.settings now changed to DomainFluidSettings

settings = mod.settings

settings.use_speed_vectors = False

settings.simulation_scale = 3.0

settings.slip_type = 'FREESLIP'

  • Читать дальше
  • 1
  • ...
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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