温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

BlenderPython中bpy模块有哪些

发布时间:2021-11-25 13:46:41 来源:亿速云 阅读:292 作者:小新 栏目:大数据

小编给大家分享一下BlenderPython中bpy模块有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

简介

bpy全称Blender Python API,是blender使用python与系统执行数据交换和功能调用的接口模块。通过调用这个模块的函数,一般来说可以实现以下功能(下面的功能说明摘自《Blender权威指南》11.2.1部分):

  • 代替界面操作去完成对物体的修改,例如修改网格属性或添加修改器。

  • 自定义系统的相关配置,例如重设快捷键或修改主题的色彩。

  • 自定义工具的参数配置,例如自定义雕刻笔刷的参数。

  • 自定义用户界面,例如修改面板的外观和按钮的排列效果。

  • 创建新的工具,例如Surface Sketching(表面绘制)工具。

  • 创建交互式工具,例如游戏的逻辑脚本。

  • 创建与外置渲染器的接口调用,例如配置Vray等外置渲染器。

  • 从定义Blender的数据结构。

同时在Blender的界面中,为python脚本书写提供了非常人性的功能,把鼠标放在某个控件(按钮、输入框)上一段时间,系统就会提示相应的python接口代码,如把鼠标放在Render按钮上,提示如下图:
BlenderPython中bpy模块有哪些
当然上面的提示比较简单,仅仅是函数的提示,如果想获得详细的提示,再该控件上右键,显示如下图,然后点击Online Manual或者Online Python Reference即可进入该控件相应官方的API文档界面。(Edit Source还提供了修改该控件系统代码的功能,不过一般应该用不到。)
BlenderPython中bpy模块有哪些

data

blender界面上所有可使用调节的对象内容(包括mesh模型、lamp灯光、camera摄像机,material材质等)都在python中以特定的类型存储起来,在控制台输入bpy.types.class_name就可以查看相应的类别(bpy.types里面存了特别多的类型),同时对这些对象的在界面上的修改操作也对应这些类型属性的修改,这样就把界面操作和python脚本操作对应起来了。

BlenderPython中bpy模块有哪些

当然使用bpy.data子模型可以访问在界面出现的对象(对个对象是以collection方式存储)
访问对象列表

bpy.data.objects  #访问场景内普通对象列表,包括lamp、camera以及mesh模型的bpy.data.scenes  #访问场景列表bpy.data.materials  #访问材质对象列表

BlenderPython中bpy模块有哪些

访问具体的对象,可以通过bpy.data.objects[name/id],很明显通过使用对象的名称(使用自动补全会提示对象名称)或者在列表中的id来获取这个对象(对scenes和materials列表访问同理),如下

bpy.data.objects['Camera']  #访问名为`Camera`的摄像机对象bpy.data.objects[1]  #访问列表中的第一个对象

BlenderPython中bpy模块有哪些
访问对象的属性,可以通过点方法进行调用,一般使用自动补全会提示可以使用的属性。

bpy.data.objects['Camera'].name #访问对象名称bpy.data.objects['Camera'].location #访问对象的位置

BlenderPython中bpy模块有哪些

ops

bpy.ops子模块提供了很多内置的Operator(操作符),这些操作符既可以在控制台中使用,也可以被集成到界面中由按钮操作来完成(这里只关注python脚本的使用)。在我看来这些操作符就是类似其他语言中声明的工具函数,可以通过bpy.ops.ops_name(parameters)传入相应的参数来直接进行调用(一般的程序员同学都应该会吧)。当然和工具函数一样,也可以定义自己的操作符,注册到系统中,就可以像内置的操作符一样使用了。
具体的操作这里面就不讲究了(方法太多),如果要使用其中对应的请查看相应的api。

context

context(正文)是blender数据管理中的一个全局变量集合,它包含了目前被选择的和激活的(物体的两种属性状态)的物体的信息,还记录了当前物体的编辑模式(data中没有这方面的信息)。当然使用context对物体对象的访问以及属性的操作和data子模块中相似。

bpy.context.selected_objects #访问选择上的对象列表,明显看出可以同时选择多个对象bpy.context.active_object #访问目前激活的对象,激活的对象在某一时刻只有一个,或者没有(激活对象这个功能主要是因为很多的属性操作和变换都是对激活对象进行操作的)

BlenderPython中bpy模块有哪些

以上是“BlenderPython中bpy模块有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI