Вход/Регистрация
Введение в написание скриптов на Питоне для Блендера 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

  • Читать дальше
  • 1
  • ...
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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