bpy(Blender Python API)を用いてテキストベースでBlenderを操作する際に他のファイル中に記載した関数を、Blender上で実行するファイルに取り込んで呼び出すのに少し苦戦したので、調査したことの備忘録
bpyを用いて記載したモデリング作業に共通して使用する操作のための関数を読み出す際や、他のプロジェクトで作成したモデルを流用する際に必要となります。
ファイルをimportして使用
ここで例として用いるディレクトリ構造は次です。
ディレクトリ構造 :
root_path
├── Blender_API_Modeling
├── Assets
│ └── mdl
│ └── main.py // 実行ファイル
├── Mylib
│ ├── modeling_common_lib.py // import対象ファイル(関数)
main.py :
Blender上で「Run Script」で実行するファイル
modeling_common_lib.py :
3D モデリング作業に共通して用いるための関数を集めたファイル
main.pyから、他ディレクトリにあるファイルをimportするために次のように記載します。
Python :
# Root_Path
root_path = "../../../"
# スクリプト名
script_text = bpy.context.space_data.text
# スクリプトのディレクトリを取得
script_dir = os.path.dirname(bpy.path.abspath(script_text.filepath))
# モジュールの親ディレクトリへのパスを取得
module_path = os.path.abspath(os.path.join(script_dir, root_path))
if module_path not in sys.path:
sys.path.append(module_path)
# Root_PathからのPath指定
from Blender_API_Modeling.Mylib.modeling_common_lib import function_name
2行目 :
main.pyからroot_pathの位置を相対パスで指定します。
これについては、実行するファイルがある場所によって変わるので、ファイルごとに書き換える必要があります。
16行目 :
importしたい位置のディレクトリを「from」以降で指定し「import」以降でimportする関数名を記載します。
一般的なライブラリのimport
bpyを使うために必要な「bpy」のimportなどの方法
Python :
import bpy
import os
import sys
とくにひねりなし
以上