Translate this Website to:

星期三, 7月 10, 2013

My First Blender Python Script 3 : 註冊到 Blender

先前寫的程式碼只能透過 Text Editor 視窗執行,還不是一個 Blender 能夠接受的 addon。如果要讓它能夠自動載入,以在 Blender 3D 視窗中執行,必須將其定義為 operator ,並登錄(registration)到 addon 程式庫中。

import bpy

# 建立一個屬於 Operator 類別(class)的物件,名為 MaterialsUseNodes,
# 注意 class 名稱的第一個字母必須是大寫字母。
# 這個物件的功能為啟用/停用材質節點。
class MaterialsUseNodes(bpy.types.Operator):
    # 物件屬性:識別名稱,供其他的物件、函數呼叫用
    bl_idname = "object.materials_use_nodes"
    # 物件屬性:顯示名稱,顯示在功能表或面板裡的名稱
    bl_label = "Use/Unuse Nodes"

    # 定義一個 execute 函數,隨著呼叫物件時執行;
    # 根據目前使用的著色引擎來使用或停用所有的材質節點
    def execute(self, context):
        currentScene = bpy.context.scene.name
        renderer = bpy.data.scenes[currentScene].render.engine

        if renderer == "CYCLES":
            for material in bpy.data.materials:
                 material.use_nodes = True
        else:
            for material in bpy.data.materials:
                material.use_nodes = False
        return {'FINISHED'}

# 以下是每個 addon 都會有的標準程式碼,好在 Blender 啟動時自動註冊。
def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()

目前的程式還未將 addon 指定快速鍵或加在功能表中,要執行必須在 3D 視窗按空白鍵呼叫功能搜尋面板,搜尋"Use/Unuse Nodes"。

References:
Python

Blender 學習筆記

0 意見 Comments:

張貼留言

Related Posts Plugin for WordPress, Blogger...