本日は Blender の技術調査枠です。
Blenderで利用可能なpythonスクリプトを作ります。
bluebirdofoz.hatenablog.com
全オブジェクトのトランスフォームを適用する
シーン中の全オブジェクトのトランスフォーム(位置/回転/拡大縮小)を適用します。
実行時の状態で全てのオブジェクトのトランスフォームが以下の通り初期化されます。
位置 X:0.0, Y:0.0, Z:0.0 回転 X:0°, Y:0°, Z:0° 拡大縮小 X:1.0, Y:1.0, Z:1.0
・transform_apply.py
# bpyインポート import bpy # 全オブジェクトのトランスフォームを適用する # 引数 # 戻り値 def transform_apply_all(): # シーン中の全てのオブジェクトを走査する for ob in bpy.context.scene.objects: # 全てのオブジェクトを選択状態に設定する ob.select=True # 全てのトランスフォームを適用する bpy.ops.object.transform_apply(location=True, rotation=True, scale=True) return # 関数の実行例 transform_apply_all()
全オブジェクトの参照を削除する
シーン中の全オブジェクトの参照を削除します。メッシュなどのデータ情報は削除しません。
ただし、全ての参照が切れるため、プロジェクトを再読み込みするとデータは破棄されます。
・unlink_object.py
# bpyインポート import bpy # 全オブジェクトの参照を削除する # (全ての参照が切るため、プロジェクト保存には注意) # 引数 # 戻り値 def unlink_object_all(): # シーン中の全てのオブジェクトを走査する for ob in bpy.context.scene.objects: # オブジェクトの参照を削除する bpy.context.scene.objects.unlink(ob) return # 関数の実行例 unlink_object_all()