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

на главную - закладки

Жанры

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

Larsson Thomas

Шрифт:

return len(context.object.data.materials)

def draw(self, context):

layout = self.layout

scn = context.scene

layout.operator("random.button")

layout.operator("darken_random.button")

layout.operator("invert.button")

#

# Три кнопки

#

class RandomButton(bpy.types.Operator):

bl_idname = "random.button"

bl_label = "Randomize"

def execute(self, context):

mat = context.object.data.materials[0]

for i in range(3):

mat.diffuse_color[i] = random.random

return{'FINISHED'}

class DarkenRandomButton(bpy.types.Operator):

bl_idname = "darken_random.button"

bl_label = "Darken Randomly"

def execute(self, context):

mat = context.object.data.materials[0]

for i in range(3):

mat.diffuse_color[i] *= random.random

return{'FINISHED'}

class InvertButton(bpy.types.Operator):

bl_idname = "invert.button"

bl_label = "Invert"

def execute(self, context):

mat = context.object.data.materials[0]

for i in range(3):

mat.diffuse_color[i] = 1 - mat.diffuse_color[i]

return{'FINISHED'}

#
Регистрация

bpy.utils.register_module(__name__)

Динамическое выпадающее меню

Эта программа добавляет панель с выпадающим меню на панели интерфейса пользователя. В начале меню содержит три пункта: красный, зеленый и синий. Есть две кнопки, помеченные Set color (Задать цвет). Верхняя изменяет цвет активного объекта на цвет, выбранный в выпадающем меню, а нижняя устанавливает цвет, определенный тремя движками. Цвета можно добавлять в выпадающее меню и удалять их из него.

Также заметьте, что с тем же успехом работает опрос для кнопок; кнопка Set color становится серой, если активный объект не является мешем с по крайней мере одним материалом.

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

# File swatches.py

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

import bpy

from bpy.props import *

theSwatches = [

("1 0 0" , "Red" , "1 0 0"),

("0 1 0" , "Green" , "0 1 0"),

("0 0 1" , "Blue" , "0 0 1")]

def setSwatches:

global theSwatches

bpy.types.Object.my_swatch = EnumProperty(

items = theSwatches,

name = "Swatch")

setSwatches

bpy.types.Object.my_red = FloatProperty(

name = "Red", default = 0.5,

min = 0, max = 1)

bpy.types.Object.my_green = FloatProperty(

name = "Green", default = 0.5,

min = 0, max = 1)

bpy.types.Object.my_blue = FloatProperty(

name = "Blue", default = 0.5,

min = 0, max = 1)

def findSwatch(key):

for n,swatch in enumerate(theSwatches):

(key1, name, colors) = swatch

if key == key1:

return n

raise NameError("Unrecognized key %s" % key)

#
Панель образцов

class SwatchPanel(bpy.types.Panel):

bl_label = "Swatches"

#bl_idname = "myPanelID"

bl_space_type = "PROPERTIES"

bl_region_type = "WINDOW"

bl_context = "material"

def draw(self , context):

layout = self.layout

ob = context.active_object

layout.prop_menu_enum(ob, "my_swatch")

layout.operator("swatches.set").swatch=True

layout.separator

layout.prop(ob, "my_red")

layout.prop(ob, "my_green")

layout.prop(ob, "my_blue")

layout.operator("swatches.set").swatch=False

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

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Совок 2

Агарев Вадим
2. Совок
Фантастика:
альтернативная история
7.61
рейтинг книги
Совок 2

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Ты предал нашу семью

Рей Полина
2. Предатели
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты предал нашу семью

Уязвимость

Рам Янка
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Уязвимость

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Попаданка для Дракона, или Жена любой ценой

Герр Ольга
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Попаданка для Дракона, или Жена любой ценой

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Деспот

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

Мастер...

Чащин Валерий
1. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
6.50
рейтинг книги
Мастер...

Не кровный Брат

Безрукова Елена
Любовные романы:
эро литература
6.83
рейтинг книги
Не кровный Брат

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III