使用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的对象体系进行探索。
来源:oschina
链接:https://my.oschina.net/u/2306127/blog/372020