BlenderPython (二)基本API
2015-06-20 00:02
681 查看
基本介绍
在blender的Python Console窗口刚启动时,会提示python脚本使用相关的module,在下面的界面中也可以看出来,这些module都是使用python脚本操作blender比较常用的。
从中可以看出最基本的是blender内嵌的一些modules包括
bpy(以及下属的一些功能包)、
bgl和
blf以及
mathutils数学工具库。
在下面,只是对这些module进行一些简单的介绍,会在以后的使用过程中慢慢解释具体怎么使用。
API
api地址:http://www.blender.org/api/在这里提供了各个版本的api访问入口,可以进入在线的api页面,进行搜索查看,当然可以把api文档下载下来离线查阅。
推荐大家有能力的话还是尽量看这个英文原版的文档,解释的还是比较详细准确的。
mathutils
mathutils这个module是blender特有的一个module,官方介绍是“This module provides access to the math classes: Color, Euler, Matrix, Quaternion, Vector.”mathutils提供了进行数学计算相关的5个类,在blender中数据结构一般都是以这五中类型存储的(例如所有物体的
location都是以
Vector((0.0,0.2,0.3))的形式存储的),每类都有其自己的属性和方法,使用也很简单,在官网的api提供对其提供了相当详细的解释以及examples。同时还提供了像
geometry、
interpolate、
kdtree和
noise工具模块。在console输入
mathutils.自动补全可以看到所有可以使用的子模块,如下图:
在使用时对class需要新建一个实例来使用,对工具方法直接传入参数调用即可。下面给出了使用的简单的例子,具体使用请查阅blender python的api(官方给了很详细的示例,这里就不讲了)。
import mathutils blue_color = mathutils.Color((0.0, 0.0, 1.0)) #新建一个颜色实例(蓝色) mathutils.geometry.box_fit_2d(points) #工具方法直接调用,求多个点的边界矩形框
blf
blf官方介绍是“This module provides access to blenders text drawing functions.”。也就是blf这么module提供了在blender文本绘制的功能,这个可能有点抽象,具体主要是为模型或者动画添加文字,加载更换不同自动,文字位置角度设置,已经一些文字的动画等等。使用前也要import,这里不做具体介绍了,后面我们会讲到怎么使用。
bgl
bgl官方介绍是“This module wraps OpenGL constants and functions, making them available from within Blender Python.”也就是bgl这个module提供了一个封装的接口,让blender python脚本可以使用opengl的常量和函数,这对熟悉opengl的小伙伴是个福音了,而且常量和函数名和opengl的都是一样的,所以可以像opengl一样使用(官网api中每个方法也都链接到opengl的docs上了)。import之后就可以直接使用了,所有可以使用的常量和函数可以直接通过
bgl.***直接调用(在console输入
bgl.自动补全也会有提示)。下面给了两个调用常量和函数的例子,具体使用请查阅blender python的api文档或者opengl的文档(https://www.opengl.org/sdk/docs/)。
import bgl #需要手动import dir(bgl) #列出可以使用的常量(GL_开头)和函数(gl开头) bgl.GL_POINTS #bgl.constant_name 调用常量,GL_POINTS就是调用的常量名,其他常量一样 bgl.glVertex2d(1,1) #bgl.function_name 调用函数,glVertex2d就是调用的函数名,其他函数一样
bpy
bpy应该是里面最重要的一个模块了,对blender的所以的界面操作都可以映射到bpy模块中的某个相关的函数来实现。包含了实现各个功能的子模块,数据模块、操作模块、内容模块、类型模块、场景模块等等,这些模块为实现blender python脚本强大的功能提供了遍历,在console下输入bpy.自动补全可以查看所有的子模块,如下图。在下面一个模块,会详细讲述每个子模块的具体的功能以及相应的使用方法。
结语
上面的这些模块在blender python脚本的使用中是相辅相成的,尤其是在做大型的项目的时候,这些功能基本上都会用的到(我在做项目就只用了个bpy模块,感觉好些功能都实现不了,最后发现其他模块很简单使用某个方法。。。。。。)。所以即使大家要学习首先还是要对所有模块的架构和功能有一个全面的了解,这样才能游刃有余。
相关文章推荐
- python压缩文件夹内所有文件为zip文件的方法
- python在控制台输出进度条的方法
- Python命令行解析库argparse - 再见紫罗兰
- bottle框架学习(一)之安装以及路由的使用
- Python学习笔记(5)---ESETful
- Python sorted函数
- 【译】使用 Python 编写虚拟机解释器
- 【译】使用 Python 编写虚拟机解释器
- Python字典操作
- python学习错误总结
- python开发中常用的框架
- python模块学习:os模块
- Numpy的tile函数
- Python学习入门手册以及CFFI
- python多线程与线程同步
- python函数式编程――偏函数
- python orm框架sqlalchemy执行更新、删除时遇到的一个bug
- python orm框架sqlalchemy执行更新、删除时遇到的一个bug
- Python学习笔记(4)--- Flask开发入门
- python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。