KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода". Жанр: Программирование издательство неизвестно, год неизвестен.
Назад 1 ... 23 24 25 26 27 Вперед
Перейти на страницу:

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 


# Путь к коду. Вы должны изменить его, если вы разместили

# папку примеров не в вашем домашнем каталоге

scripts = os.path.expanduser('~/snippets/scripts/')

for folder in ['object', 'simulation', 'interface']:

        sys.path.append(scripts+folder)

print(sys.path)   origin = Vector((0,0,0))  


# Меши и арматуры

origin[2] = 0

import meshes

meshes.run(origin)

origin[0] += 5

import armature

armature.run(origin)

origin[0] += 5

import rigged_mesh

rigged_mesh.run(origin)

origin[0] += 5

import shapekey

shapekey.run(origin)

origin[0] += 5  


# Три способа конструирования объектов

import objects

objects.run(origin)

origin[0] += 5  


# Материалы и текстуры

origin[2] = 5

origin[0] = 0

import material

material.run(origin)

origin[0] += 5

import texture

texture.run(origin)

origin[0] += 5

import multi_material

multi_material.run(origin)

origin[0] += 5

import uvs uvs.run(origin)

origin[0] += 5

import chain

chain.run(origin)  


# Действия и управляющие элементы

origin[2] = 25

origin[0] = 0

import ob_action

ob_action.run(origin)

origin[0] += 5

import pose_action

pose_action.run(origin)

origin[0] += 5

import epicycle

epicycle.run(origin)

origin[0] += 5

import driver

driver.run(origin)  


# Симуляции

origin[2] = 15

origin[0] = 0

import hair

hair.run(origin)

origin[0] += 5

import edit_hair

edit_hair.run(origin)

origin[0] += 5

import particle

particle.run(origin)

origin[0] += 5

import cloth

cloth.run(origin)

origin[0] += 5

import softbody

softbody.run(origin)  


origin[2] = 10

origin[0] = 0

import fire

fire.run(origin)

origin[0] += 5

import flags

flags.run(origin)

origin[0] += 5

import smoke

smoke.run(origin)

origin[0] += 5

import crystal

crystal.run(origin)

origin[0] += 5  

origin[2] = -4.02

origin[0] = -10

import pile

pile.run(origin)

# Восстановление движка рендера

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


# Другие типы данных

origin[2] = 20

origin[0] = 0

import text

text.run(origin)

origin[0] += 5

import lattice

lattice.run(origin)

origin[0] += 5

import curve

curve.run(origin)

origin[0] += 5

import path

path.run(origin)

import camera

camera.run(Vector((0,0,0)))  


# Слои и группы

import layers

layers.run()

import groups

groups.run()

# Восстановление слоёв после "Слоёв и групп"

scn.layers[0] = True

for n in range(1,20):

        scn.layers[n] = False  


# Вид

import world

world.run()

import view

view.run()


В кадре 71 ваш экран должен выглядеть как на картинке внизу. Отрендеренная версия представлена на главной странице.



Назад 1 ... 23 24 25 26 27 Вперед
Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*