blender学习笔记:python脚本的使用

Posted Sakurazzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了blender学习笔记:python脚本的使用相关的知识,希望对你有一定的参考价值。

blender版本是3.0,下载链接:https://www.blender.org/download/


常用API

官方API文档: https://docs.blender.org/api/current/index.html
BlenderPython API中文版:BlenderPython API

STL模型导入

官方API说明:
https://docs.blender.org/api/current/bpy.ops.import_mesh.html

# 导入teethup.stl模型
bpy.ops.import_mesh.stl(filepath="/home/zzy/blender-3.0.0-linux-x64/scripts/teethup.stl")

图片导入

物体选择

官方API说明:
https://docs.blender.org/api/current/bpy.ops.object.html

#为了选定某个物体操作,所以先不要选择所有物体
bpy.ops.object.select_all(action='DESELECT')
#通过select_pattern命令来按照物体命名查找选定物体,支持通配符*模糊匹配
bpy.ops.object.select_pattern(pattern="Cube", case_sensitive=False, extend=True)

参考博客:blender 2.8 python bpy 编写脚本操作物体

物体位置变换

官方API说明:
https://docs.blender.org/api/current/bpy.ops.transform.html

# set location
bpy.data.objects["teethup"].location = (0,0,0)
# set scale
bpy.data.objects["teethup"].scale = (1,1,1)
# set rotation
bpy.data.objects["teethup"].rotation_euler = (-1.57, 0, 3.14)
# or
bpy.ops.object.select_all(action='DESELECT')
bpy.data.objects["teethup"].select_set(True)
bpy.ops.transform.rotate(value=0, orient_axis='X', orient_type='GLOBAL')
bpy.ops.transform.rotate(value=1.57, orient_axis='Y', orient_type='GLOBAL')
bpy.ops.transform.rotate(value=3.14, orient_axis='Z', orient_type='GLOBAL')

一步到位(使用旋转矩阵设置rotation):

bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_pattern(pattern="teethup", case_sensitive=False, extend=True)
bpy.ops.transform.translate(value=(0, 0, 0), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), 
                                                           orient_matrix_type='GLOBAL', constraint_axis=(False, True, False), mirror=True,
                                                            use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1,     
                                                            use_proportional_connected=False, use_proportional_projected=False, release_confirm=True)

摄像头设置

选中摄像头,设置location

bpy.ops.object.select_all(action='DESELECT')
bpy.data.objects["Camera"].select_set(True)
bpy.data.objects["Camera"].location = (0,0,30)

渲染并保存为图片

官方API说明:
https://docs.blender.org/api/current/bpy.ops.render.html

bpy.data.scenes["Scene"].render.image_settings.file_format = 'PNG'
bpy.data.scenes["Scene"].render.filepath = "/home/zzy/blender-3.0.0-linux-x64/scripts/output/output1.png"
bpy.data.scenes["Scene"].render.film_transparent = True
bpy.ops.render.render( write_still=True )

参考博客

  1. Blender脚本开发
  2. 在Blender 2.8使用Python编程(入门级)
  3. Blender下用Python实现模型文件导入、渲染和动画生成

以上是关于blender学习笔记:python脚本的使用的主要内容,如果未能解决你的问题,请参考以下文章

blender学习笔记:python脚本使用与离线渲染

使用python在blender中注销并删除插件不会从菜单中删除该项目

在 Blender 中运行 python 脚本

Blender自动化建模入门

如何在 Blender 中使用 python 创建无缝背景?

Blender自动化建模入门