BlenderPython (二)基本API

基本介绍

在blender的Python Console窗口刚启动时,会提示python脚本使用相关的module,在下面的界面中也可以看出来,这些module都是使用python脚本操作blender比较常用的。
这里写图片描述
从中可以看出最基本的是blender内嵌的一些modules包括bpy(以及下属的一些功能包)、bglblf以及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。同时还提供了像geometryinterpolatekdtreenoise工具模块。在console输入mathutils.自动补全可以看到所有可以使用的子模块,如下图:
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.自动补全可以查看所有的子模块,如下图。在下面一个模块,会详细讲述每个子模块的具体的功能以及相应的使用方法。
bpy

结语

上面的这些模块在blender python脚本的使用中是相辅相成的,尤其是在做大型的项目的时候,这些功能基本上都会用的到(我在做项目就只用了个bpy模块,感觉好些功能都实现不了,最后发现其他模块很简单使用某个方法。。。。。。)。所以即使大家要学习首先还是要对所有模块的架构和功能有一个全面的了解,这样才能游刃有余。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值