Blender的插件开发-快速入门

ぐ巨炮叔叔 提交于 2019-12-09 14:54:04

    使用Blender创建精彩非凡的作品,你可以是三维图形、创意设计的专家,但不必要成为软件开发的专家。

    Blender具有强大的插件扩展功能,不仅可以加载大量的各种功能、效率增强插件,而且稍微懂点python的也可以开发插件。先说说怎么用插件吧。

进入文件-用户偏好设置,在对话框中选择"Addon",然后可以设置自己需要的插件。
或者,ctrl+alt+u,快速进入设置对话框。

    Blender的插件机制全部采用Python实现,最新的2.73a版本集成了Python3.4.2的引擎。

    注意:Blender的脚本print("hello")函数是输出信息到启动的控制台的,直接运行的时候看不到输出的信息。

    但是,为了保持相对独立的运行环境,这个版本与操作系统的python是不同的,是在Blender的上下文环境运行的。因此,在操作系统安装的库,在这里是用不了的,有的库可以在Blender安装运行,但有的库是不行的。但这并没有太大的妨碍,因为Blender里面的库已经足够强大了。

    Blender运行、编辑Python的脚本有几种方式:

启动时运行:
    blender --python /home/me/my_script.py

命令行运行:
    拖动3D视图的右上角,向左下,扩展出一个窗口。
    选择左下角的立方体,选择Python控制台,然后就可以输入Python脚本了。

编辑器运行:
    跟命令行类似,先扩展出一个窗口。
    选择左下角的立方体,选择文本编辑器,然后选择新建,就可以输入Python脚本了。
    再选择运行脚本即可,也可以将输入的内容保存起来。

外部编辑器:
    使用任何的编辑器,如Sublime、记事本等编辑脚本,编辑脚本。
    然后复制到文本编辑器、或打开文件、或直接复制到命令行窗口即可。
    可以把Blender挂到一个调试器上,然后从python的IDE中就可以直接Debug进去,这个以后再说。

    下面我们再看一下Blender的脚本结构。

进入目录,看一下scripts目录下的东西,一切全明白了。
Blender不仅使用Python来扩展插件,连自己的很多参数设置也都是用的同样的机制实现的。
如果搞明白了这个参数,就可以容易地定制自己的工作台了。
比如,scripts/starup下存放了Blender的启动执行过程和参数。

    闲话少说了,马上开发一个自己的插件。

import bpy

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        obj = context.object
        row = layout.row()
        row.label(text="Hello world!", icon='WORLD_DATA')
        row = layout.row()
        row.label(text="Active object is: " + obj.name)
        row = layout.row()
        row.prop(obj, "name")
        row = layout.row()
        row.operator("mesh.primitive_cube_add")

def register():
    bpy.utils.register_class(HelloWorldPanel)

def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)

if __name__ == "__main__":
    register()


    把上面的代码复制到Blender的文本编辑器中,点击“运行脚本”即可。

    怎么?没有反应?不会吧?

    鼠标右键选中缺省窗口的立方体对象(物体模式),到对象的属性面板,该面板的标题栏的第五个图标“立方体”选中,然后滚动显示到最下方,应该就可以看见了。

    终于体会到Blender的任性了吧?不要拍我啊!这是用的Blender的官方例子,以后我再弄个简单的。

    要想用Blender开发个插件,知道点这些皮毛是不够的。

    后续,我们首先要对Blender的对象体系进行探索。





易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!