備忘録
前提
- mac OS Big Sur 11.2.3
- Blender2.93.0
あるディレクトリ内の全ての.objファイルをインポートしたい
import os
import bpy
# 該当ディレクトリの絶対パス
search_dir = bpy.path.abspath('/Path/to/the/Dir')
ext_list = ["obj"] # ⇦ 他の拡張子をインポートしたい場合,ここを変更
# 該当ファイルをリストアップ
obj_list = []
for root, dirs, files in os.walk(search_dir):
for ext in ext_list:
obj_list.extend([os.path.join(root, file) for file in files if ext in file])
# ひとつずつインポート.OBJファイルの場合
for item in obj_list:
bpy.ops.import_scene.obj(filepath = item)
インポートのオプションを変更したい
GUIでモデルをインポートする場合と同様に,オプションを指定してインポートすることも可能です.下はOBJファイルをインポートする場合に指定可能な引数です.
インポートしたいモデルの拡張子によって関数及び引数は異なるため,[Import Scene Operators - Blender Python API] (https://docs.blender.org/api/current/bpy.ops.import_scene.html)等を参考に調べましょう.
OBJファイルの場合のデフォルトの引数
bpy.ops.import_scene.obj(filepath='', filter_glob='*.obj;*.mtl', use_edges=True, use_smooth_groups=True, use_split_objects=True, use_split_groups=False, use_groups_as_vgroups=False, use_image_search=True, split_mode='ON', global_clamp_size=0.0, axis_forward='-Z', axis_up='Y')
↓はY軸を前方向に,Z軸を上にするべく引数を変更した場合です.
bpy.ops.import_scene.obj(filepath = item, axis_forward='Y', axis_up='Z')
エラーが出たとき
Pythonスクリプトが失敗。システムコンソールのメッセージをチェックしてください
というエラーが出ることがあります.
Mac PCでLaunchpad等のボタン操作でBlenderを起動した場合,エラーメッセージを確認することができません.
ターミナル上から下のようにBlenderを起動するとコンソールが別ウィンドウで立ち上がり,エラーメッセージを見ることができます.
# 一例
open /Applications/Blender.app/Contents/MacOS/Blender
この記事は以下を参考に作成しました.