当前位置:   article > 正文

Blender3.5使用python脚本命令的三种方式, 以及后台渲染调用源码示例及说明_blender 如何使用代码

blender 如何使用代码

本文环境系统OS(Win10)

方式一,在Script(脚本)功能里面的Console(控制台输入python代码)。

如下图:

对应的三句代码是:

  1. print("Hi, blender.")
  2. import bpy
  3. bpy.ops.mesh.primitive_cube_add(enter_editmode=False, align='WORLD', location=(0,0, 0), scale=(1, 1, 1))

 按下回车键,代码立刻执行,如果有打印信息则直接显示在这个控制台(Console)中。

方式二,在Script(脚本)功能里面的代码文本写代码,然后执行。

        第一步, 打开代码执行的控制台窗口,方便查看代码执行过程中的输出信息:

         下图就是输出窗口

注意,有时候由于debug或者出错导致脚本代码指定卡主,只需要在这个窗口执行Ctrl + C快捷键就能解决问题,以免整个Blender软件卡死。

        第二步        

        第三步:

         第四步,写入代码:

对应的代码:

  1. import bpy
  2. import mathutils
  3. # 创建一个cube
  4. bpy.ops.mesh.primitive_cube_add(enter_editmode=False, align='WORLD', location=(0,0, 0), scale=(1, 1, 1))
  5. # 获取这个cube
  6. cube = bpy.data.objects["Cube"]
  7. print("a cube: ", cube)
  8. v0 = mathutils.Vector((2.0, 0.0, 0.0))
  9. # 设置这个cube的坐标(X轴坐标为2.0,Y轴和轴为0.0), 移动这个cube
  10. cube.location = v0

        第五步,运行代码:

也可以按下 Ctrl + P 快捷键执行脚本代码

执行结束,可以看到创建了一个cube,并且移动了。

控制台中,也可以看到输出信息:

可以接着再用下面的这段代码让blender渲染出一张图(关于这个cube的),保存在指定路径下:

  1. import bpy
  2. renderer = bpy.context.scene.render
  3. renderer.image_settings.file_format='JPEG'
  4. renderer.filepath = "D:/dev/blender/renderingImg/cube.jpg"
  5. renderer.resolution_x = 512 #perhaps set resolution in code
  6. renderer.resolution_y = 512
  7. bpy.ops.render.render(write_still=True)

加载一个obj格式的模型:

  1. import bpy
  2. obj_filePath = "D:/dev/blender/modules/box01.obj"
  3. imported_object = bpy.ops.import_scene.obj(filepath=obj_filePath)
  4. obj_object = bpy.context.selected_objects[0]
  5. print('Imported obj name: ', obj_object.name)

开启Scripting脚本的即时运行(编辑后立刻自动运行)

方式三,直接在CMD或者其他程序中调用blender.exe,并将python脚本文件当做参数传入。

        1. 将上述python代码写到一个.py类型的文本文件里面,这里明明为createCube.py

        2. 打开 window cmd命令行控制台窗口

         3. 然后再window cmd命令行控制台窗口里面执行,如下图:

注意blender.exe的路径和createCube.py的路径要写成自己的。 

blender通过的python script示例源码:your path \blender\3.2\scripts\templates_py

以下是后台调用blender.exe加载obj格式的模型文件并渲染以及保存渲染PNG图片的代码示例:

  1. import sys
  2. import bpy
  3. import time
  4. def renderAObj() :
  5. obj_file = "D:/dev/webProj/xblender/models/box02.obj"
  6. output_file = "D:/dev/webProj/xblender/renderingImg/rendering01.png"
  7. print("bpy.data.objects: ", bpy.data.objects)
  8. print("lsit(bpy.data.objects): ", list(bpy.data.objects))
  9. cube01 = bpy.data.objects["Cube"]
  10. if cube01:
  11. bpy.data.objects.remove(cube01)
  12. else:
  13. print("has not the default Cube.")
  14. print("### ### ### ### ###")
  15. # 加载OBJ模型
  16. imported_object = bpy.ops.import_scene.obj(filepath=obj_file)
  17. print("list(bpy.context.selected_objects): ", list(bpy.context.selected_objects))
  18. obj_object = bpy.context.selected_objects[0]
  19. print("obj_object: ", obj_object)
  20. # 设置渲染引擎
  21. bpy.context.scene.render.engine = 'BLENDER_EEVEE'
  22. # 设置输出路径和文件格式
  23. bpy.context.scene.render.filepath = output_file
  24. bpy.context.scene.render.image_settings.file_format = 'PNG'
  25. bpy.context.scene.render.resolution_x = 512
  26. bpy.context.scene.render.resolution_y = 512
  27. # 等待1秒钟, 这一句代码是故意操作,不是必须的
  28. time.sleep(0.5)
  29. # 渲染并保存图片
  30. bpy.ops.render.render(write_still=True)
  31. print("rendering task end ...")
  32. # 命令调用方式: D:\programs\blender\blender.exe -b -P .\loadAndRendering.py
  33. if __name__ == "__main__":
  34. # 获取命令行参数
  35. argv = sys.argv
  36. print("argv: \n", argv)
  37. # argv = argv[argv.index("--") + 1:]
  38. print("rendering task init ...")
  39. renderAObj()

通过命令行(Shell)blender.exe调用python代码的一些其他方式

        1. blender.exe -b your_blend_file.blend -P rep.py

        2.  PATH_TO_/blender.exe BLENDER_FILE.blend --python-expr "import bpy ; bpy.data.scenes[\"Scene\"].cycles.samples = VALUE"

Blender 执行程序的命令行参数:

        1. 可以通过 blender.exe -h获得详细信息

        2. 命令行参数文档: 命令行参数 — Blender Manual

关于blender的API:

        1. Quickstart — Blender Python API

        https://docs.blender.org/api/blender_python_api_current/info_quickstart.html

        2. Blender 3.5 Python API Documentation — Blender Python API

        3. https://docs.blender.org/api/current/bpy.ops.wm.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/332477
推荐阅读
相关标签
  

闽ICP备14008679号