本日は Blender の技術調査枠です。
Blender2.8で利用可能なpythonスクリプトを作ります。
blendファイルパスを取得する
現在のblendファイルパスを取得します。
未保存のプロジェクト上で実行すると、空文字が返ります。
パス操作と組み合わせてディレクトリパスを取得することもできます。
・get_blend_filepath.py
# bpyインポート import bpy # パス操作のため import os # 現在のblendファイルパスを取得する # 未保存のプロジェクト上で実行すると、空文字が返る def get_blend_filepath() -> str: """現在のblendファイルパスを取得する 未保存のプロジェクト上で実行すると、空文字が返る Returns: str: blendファイルパス """ # blendファイルのパスを取得 filepath = bpy.data.filepath return filepath # 現在のblendファイルが存在するディレクトリパスを取得する # 未保存のプロジェクト上で実行すると、空文字が返る def get_blend_dirpath() -> str: """現在のblendが存在するディレクトリパスを取得する 未保存のプロジェクト上で実行すると、空文字が返る Returns: str: blendディレクトリパス """ # blendファイルのパスを取得 filepath = bpy.data.filepath # 空文字が返った場合は処理せず終了する if filepath == "": return "" # ディレクトリパスを取得する dirpath = os.path.dirname(filepath) return dirpath # 関数の実行例 # ファイルパスを表示する print("filepath = " + get_blend_filepath()) # ディレクトリパスを表示する print("dirpath = " + get_blend_dirpath())
スクリプトファイルパスを取得する
実行中のスクリプトファイルパスを取得します。
未保存のスクリプト上で実行すると、空文字が返ります。
パス操作と組み合わせてディレクトリパスを取得することもできます。
・get_script_filepath.py
# bpyインポート import bpy # パス操作のため import os # 実行中のスクリプトファイルパスを取得する # 未保存のスクリプト上で実行すると、空文字が返る def get_script_filepath() -> str: """実行中のスクリプトファイルパスを取得する 未保存のスクリプト上で実行すると、空文字が返る Returns: str: スクリプトファイルパス """ # 実行中のスクリプト名を取得する script_filename = os.path.basename(__file__) # スクリプトファイルのパスを取得 script_filepath = bpy.data.texts[script_filename].filepath return script_filepath # 実行中のスクリプトファイルが存在するディレクトリパスを取得する # 未保存のスクリプト上で実行すると、空文字が返る def get_script_dirpath() -> str: """実行中のスクリプトが存在するディレクトリパスを取得する 未保存のスクリプト上で実行すると、空文字が返る Returns: str: スクリプトディレクトリパス """ # 実行中のスクリプト名を取得する script_filename = os.path.basename(__file__) # スクリプトファイルのパスを取得 script_filepath = bpy.data.texts[script_filename].filepath # 空文字が返った場合は処理せず終了する if script_filepath == "": return "" # ディレクトリパスを取得する script_dirpath = os.path.dirname(script_filepath) return script_dirpath # 関数の実行例 # ファイルパスを表示する print("filepath = " + get_script_filepath()) # ディレクトリパスを表示する print("dirpath = " + get_script_dirpath())