blender python api
本阶段blender版本为2.8
本次为记录贴,记录常用的一些blender操作快捷键。将不定时更新。在blender中使用python能够代替鼠标,完成各类操作。代码编写可以在文本编辑器或者python控制台中。文本编辑器可以处理多行代码,在使用bpy时需要import,而在控制台中只能处理一行代码,不需要import。
使用技巧
首先介绍一个常用操作,当想了解一个项目下面的子项时可以点击自动补全按钮。如bpy.(加.)。对应键盘的快捷操作是Ctrl+space,而在笔记本上需要额外加上Fn键。
此外,在视图界面的许多操作,当鼠标在该操作停留一段时间,会在下方显示对应的python语句。
简单操作
首先是选择操作,作者在学习时看的是一本将api三维书,书中版本可能比2.8会老一些,故有些属性显示没有而报错。可以使用第二板块的技巧来查找最新的方式会是什么。
例如在2.78c中就是
bpy.data.objects[objName].select = True
而我的版本2.8中则是
bpy.data.objects[objName].select_set(True)
显示选中物体的名称(context)
bpy.context.selected_objects
此外,还可以根据选中的object,调用其属性来显示
[k.name for k in bpy.context.selected_objects]
此处需要添加 [ ],否则将会报错。
类似的,还可以显示其他属性,如位置属性:
[k.location for k in bpy.context.selected_objects]
取消当前所有选择
bpy.ops.object.select_all(action='DESELECT')
此外,还可以对选定的物体进行操作,一是根据物体名称进行操作。
bpy.data.objects["Cube"].location=(2,2,2)
在blender中存在着选中和激活两种状态。什么叫做激活?在blender中只能使一个物体处于激活状态,界面中被激活的物体上会有一个小蓝点,在显示窗口的右下角也会显示当前被激活物体的名称。
当只选中了一个物体时,该物体既被选中又被激活,而当选中多个物体时,只有第一个选中的物体为激活状态。
例如,使用如下代码只会显示被激活物体的名字
bpy.context.object.name
多行代码的举例
利用在上一节的部分知识可以用python写出一份完整的代码,如下例
import bpy
def mySpecifier(objName):
# Return the datablock
return bpy.data.objects[objName]
# Store a reference to the datablock
myCube = mySpecifier('Cube')
# Output the location of the origin
print(myCube.location)
# Works exactly the same as above
myCube = bpy.data.objects[