コマンド – Command

コードをオペレーターとして実行できるボタンにします。
オペレーターの細かなオプションや、プロパティの変更をそのまま実行ボタンにできます

  • 「直前の履歴を登録」で登録すると、表示用の名前はコードを元に生成されます
  • 下記のような形である必要があります
    • bpy.ops.xxx.xxx()
    • bpy.xxx.xxx.xxx = XXX

複数行のスクリプトを実行

複数の行のコードを1行にまとめることで、複数の動作を一括して実行することができます。
if文やfor文のような処理を実行することができます。
コードを1行にまとめるには、改行を”;”に変換します

【サンプル】未使用マテリアルを一括削除

■ 元のコード

for mat in bpy.data.materials:
    if not mat.users:
        bpy.data.materials.remove(mat)

■ 1行にまとめたコード

for mat in bpy.data.materials:;    if not mat.users:;        bpy.data.materials.remove(mat)

注意点

  • 関数化されているコードは利用できません
    • 例:def xxx():というような行がある
  • 最初のインデントは付けないようにしてください
# 最初にインデントがついていて失敗する例
    for mat in bpy.data.materials:
        if not mat.users:
            bpy.data.materials.remove(mat)

「クリップボードからコードを貼り付け」機能

クリップボードのコードを貼り付けます。
改行がある場合は、改行を ‘ ; ‘ に自動で変換します。
ネットで紹介されている様々なPythonスクリプトをコピーして貼り付けることで、簡単にボタンとして実行することができます。

「コードをクリップボードにコピー」機能

コードをクリップボードにコピーします。
‘ ; ‘がある場合は、’ ; ‘を改行に自動で変換します。
1行に変換されたコードを、整形前のコードとして取得したい時に便利です。

「’INVOKE_DEFAULT’を追加」機能

オペレーターのオプションに’INVOKE_DEFAULT’を追加します。
調整してから操作を確定するオペレーターを、調整段階から開始することができます(トランスフォームなど)。
オペレーターがうまく動作しない場合は、’INVOKE_DEFAULT’を付けると正常に動作する場合があります。
例:モーダルを利用するオペレーター・アニメーションレンダーなど