概要
blender で作成したオブジェクトを Python スクリプト化する方法とスクリプトからオブジェクトにインポートする方法を紹介します
環境
- macOS 11.6.2
- blender 2.93.1
- Python 3.9.9
Python スクリプトにエクスポート
- vim export.py
import bpy
ob = bpy.context.object
if ob and ob.type == "MESH":
mesh = ob.data
me = ob.data
faces = ",\n ".join(f'{p.vertices[:]}' for p in me.polygons)
verts = ",\n ".join(f"{v.co[:]}" for v in me.vertices)
with open('import.py', 'w') as f:
f.write(f"""import bpy
verts = ({verts})
faces = ({faces})
scene = bpy.context.scene
me = bpy.data.meshes.new("{me.name}")
me.from_pydata(verts, [], faces)
ob = bpy.data.objects.new("{ob.name}", me)
scene.collection.objects.link(ob)""")
-
blender -b /path/to/sample.blend -P export.py
blender にインポート
- Text Editor を開く
- Open
-
import.py を選択
- 実行
最後に
オブジェクトが複雑だとスクリプト化した際に完全に再現できないかもしれません
おそらくスクリプトを修正すれば対応はできるはずです
0 件のコメント:
コメントを投稿