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

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 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)