忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

【Customize Menu Editor ver1.1.0 アップデート】マクロの作成・より複雑なメニューのレイアウト・編集メニューの改善【Blenderアドオン】

Blenderアドオン

更新日:

ダウンロード

gumroad

BOOTH

Blender Market

マクロ作成機能を追加

一連の操作の履歴を1つにまとめて、一括処理として実行できます。
各マクロをメニューのボタンにすることができます。

メニューをアドオン化する際、マクロのメニューボタンがメニュー内に存在する場合は、自動でアドオン内にもマクロが組み込まれます。

使い方

  1. 右上の+ボタンでマクロアイテムを追加
  2. 左下の●ボタンを押して、履歴の録画を開始
  3. なにかしらの操作をして、履歴を作ります
  4. 停止ボタンを押して、録画を完了
  5. 履歴のリストが作成されます
  6. ▶ボタンで作成したマクロを実行できます

機能

  • 録画
  • 各行ごとの実行ボタン
  • 実行ボタン表示モード
  • マクロをボタンとしてメニューに追加
  • ファイルに書き出し・書き出したファイルを読み込み

注意点

  • 「押し出し」を実行中にスケールや回転などをした履歴は、エラーが起こります
    • 押し出しとトランスフォームは別々に実行して履歴を作ってください
    • Blenderのバグのようです
  • bpy.data.xxx['xxxx']~ のような場合は、指定のデータを対象にしているため、アクティブな選択が切り替わっても固定でそのデータが変更されます

コマンド関連の改善

複数の行のコードを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'を付けると正常に動作する場合があります。
例:モーダルを利用するオペレーター・アニメーションレンダーなど

メニューの改善

複数のレイアウト要素を重ねがけできるようになりました。
boxで囲いながらrowで横並びしたり、rowの横並びの中にcolで縦並びにすることができ、より複雑なメニューを作ることができます。

編集メニューの改善

メニュー選択を改善

メニュー選択ボタンを、メニューアイテムの隣に配置するようにしました。
rowやcolなどがある場合にアクティブな選択項目が分かりづらい問題を修正しました。

  • '直前の履歴を登録'ボタンは廃止されました
  • メニュー選択ボタンをCtrl + クリックすることで、'直前の履歴を登録'を実行できます

メニューが表示中のタイプによって縦幅が変わらないように修正

切り替わるたびにメニューがずれて見にくい問題を修正しました。

追従するレイアウト要素を指定できるように

「上のレイアウトに追従」オプションは、追従する階層を数字で指定するように変更しました。
深い階層のレイアウト要素の何番目の上の階層に追従するかを指定できます

  • 階層より大きい数を指定した場合は、他のレイアウトの要素に追従しないようになります
  • 数が0の場合は、直前のレイアウト要素に追従します

古いオプションについて

ver1.0.0の「上のレイアウトに追従」オプションを表示するには、アドオン設定から表示を有効化します。
今後は新しいオプションのみがアドオン内で利用されるので注意してください。

  • アドオン設定 → オプション → ver1.0.0 の'レイアウトを追従'オプションを表示

「レイアウト要素のみ」のオプションを追加

rowやcolなどのみを追加する事ができます。

アドオン化機能のバグ修正

  • 「コマンド」タイプでのコード内に「"」が存在すると、エラーが出力される問題を修正しました
  • セパレーターが存在すると、エラーが出力される問題を修正しました

その他の変更

メニューファイルの書き出しの拡張子名を変更しました。
マクロとメニューの書き出しファイルの拡張子名を統一化するために変更しました。
以前の拡張子のファイルでも変わらず読み込むことができます。

  • old : customizemenu
  • new : cmenu_menu
  • マクロのファイル名:cmenu_macro

その他のバグ修正

  • 「自動保存設定」オプションが有効になっていると、書き出しメニューが表示されない問題を修正しました

ver1.1.1

  • メニューアイテムがないと編集メニューが表示できない致命的な問題を修正しました
  • マクロアイテムの複製で、マクロの行アイテムが複製できていない問題を修正しました
  • メニューアイテムの移動に、選択状態のみを移動して切り替える機能を追加しました
    • 移動ボタンをCtrl + クリック

アドオンの制作依頼はこちら

-Blenderアドオン
-

Copyright© 忘却まとめ , 2020 All Rights Reserved Powered by STINGER.