2022年1月14日金曜日

blender でオブジェクトを Python スクリプトにエクスポートする方法

blender でオブジェクトを Python スクリプトにエクスポートする方法

概要

blender で作成したオブジェクトを Python スクリプト化する方法とスクリプトからオブジェクトにインポートする方法を紹介します

環境

  • macOS 11.6.2
  • blender 2.93.1
  • Python 3.9.9

Python スクリプトにエクスポート

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 件のコメント:

コメントを投稿