MRが楽しい

MRやVRについて学習したことを書き残す

Blenderのpythonスクリプトで引数を取得する

本日は Blender の技術調査枠です。
Blenderで利用可能なpythonスクリプトで引数を取得する方法を記事にします。
bluebirdofoz.hatenablog.com

引数の取得

引数の取得は通常の python スクリプト同様に sys をインポートして sys.argv を利用する事で可能です。
以下のスクリプトをサンプルとして作成しました。
・check_args.py

# sysインポート
import sys
# bpyインポート
import bpy

# python実行時の引数を確認する
# 戻り値 実行可否(True/False)
def check_args():
  # 引数チェック
  if len(sys.argv) > 0:
    # 引数を確認する
    print(sys.argv)
    # バックグラウンド実行時は bpy.app.background が True
    if bpy.app.background:
      # バックグラウンド実行時処理
      # プロジェクトへのFBX読み込みから実施
      print('blender is CUI')
    else:
      # GUI実行時
      # FBX読み込みは完了済みの想定で動作する
      print('blender is GUI')
  else:
    # 引数の取得に失敗
    print('failed to get arguments')
  return

# 関数の実行例
check_args()

各種環境での実行結果を以下に示します。

GUI上での実行

BlenderGUI 上から実行した場合は [(実行中のBlender.exeのパス),(現在のblendファイルのパス)] が返ります。
f:id:bluebirdofoz:20190721213545j:plain

Backgroundでの実行

バックグラウンド指定を行って実行した場合は CUI 上で実行したコマンドが全て返ります。
このため、--background や --python , 実行したpythonスクリプトのパスが含まれます。
f:id:bluebirdofoz:20190721213559j:plain