Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Шрифт:
return (mod.settings, None)
def run(origin):
domain = createDomain(origin)
fluid = createFluid(origin)
obst = createObstacle(origin)
inflow = createInflow(origin)
outflow = createOutflow(origin)
(settings, pset) = createFluidParticle('Drops',
origin+Vector((-2,7,0)), (True, False, False))
settings.particle_influence = 0.7
settings.alpha_influence = 0.3
(settings, pset) = createFluidParticle('Floats',
origin+Vector((0,7,0)), (False, True, False))
(settings, pset) = createFluidParticle('Tracer',
origin+Vector((2,7,0)), (False, False, True))
settings.particle_influence = 1.5
settings.alpha_influence = 1.2
return
if __name__ == "__main__":
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete run(Vector((0,0,0)))
#bpy.ops.fluid.bake
Ноды
Эта
#---------------------------------------------------
# File nodes.py
#---------------------------------------------------
import bpy, math
# Включение нодов
bpy.context.scene.use_nodes = True
tree = bpy.context.scene.node_tree
links = tree.links
# Удаление нодов по-умолчанию
for n in tree.nodes:
tree.nodes.remove(n)
# Создание входного нода Render layer
rl = tree.nodes.new('R_LAYERS')
rl.location = 0,200
# Создание нода SEP_RGBA
sep = tree.nodes.new('SEPRGBA')
sep.name = "Split"
sep.location = 200,200
links.new(rl.outputs[0],sep.inputs[0])
# image-image
# Создание нода VIEWER
viewer = tree.nodes.new('VIEWER')
viewer.label = "Alpha"
viewer.location = 400,400
links.new(sep.outputs[3],viewer.inputs[0])
# A-image
# Создание нода COMBRGBA
comb = tree.nodes.new('COMBRGBA')
comb.label = "Cyan"
comb.location = 400,200
links.new(sep.outputs[1],comb.inputs[2])
# G - B
links.new(sep.outputs[2],comb.inputs[1])
# B - G
#
Создание нода HUE_SAT
hs = tree.nodes.new('HUE_SAT')
hs.label = "Violet"
hs.location = 600,200
hs.color_hue = 0.75
hs.color_saturation = 1.5
links.new(comb.outputs[0],hs.inputs[1])
# image-image
# Создание нода вывода
comp = tree.nodes.new('COMPOSITE')
comp.location = 600,400
links.new(hs.outputs[0],comp.inputs[0])
# image-image
Так это всё стандартные ноды, их и так добавить можно... А где программируемые, PyNode???
– возмущение переводчика.
Пакетный запуск
Программа запускает все скрипты в каталогах object и simulation. Основной целью является проверить, что все скрипты выполняются правильно, или, по крайней мере, что они могут быть выполнены, не вызывая ошибок.
Большинство скриптов не смогут работать в более ранних версиях Блендера. Чтобы убедиться, что мы не застряли в устаревшем Блендере, мы сначала проверяем текущую версию Блендера, которая доступна как
bpy.app.version
. #----------------------------------------------------------
# File batch.py
#----------------------------------------------------------
import bpy, sys, os, mathutils
from mathutils import Vector
# Проверка версии Блендера
version = [2, 57, 0]
(a,b,c) = bpy.app.version
if b < version[1] or (b == version[1] and c < version[2]):
msg = 'Blender too old: %s < %s' % ((a,b,c), tuple(version))
raise NameError(msg)
# Удаление всех старых объектов, так что мы начинаем с чистого листа.
scn = bpy.context.scene
for ob in scn.objects:
scn.objects.active = ob
print("Delete", ob, bpy.context.object)
bpy.ops.object.mode_set(mode='OBJECT')
scn.objects.unlink(ob)
del ob
# Путь к коду. Вы должны изменить его, если вы разместили
# папку примеров не в вашем домашнем каталоге
Поделиться с друзьями: