
より柔軟なメニューが作れるように、上級者向けの機能を追加・改善を行いました。
もくじ
ダウンロード
リンク
編集メニュー

表示切り替えとタイプ切り替えの違いを識別しやすいように、編集メニューの表示を改善しました。
- 追加するメニューアイテムの種類を選べるようになりました
- 左上の端の「+」ボタン
- メニューアイテムの複製位置は、アクティブアイテムの下になるように変更しました
use_property_split を追加

レイアウトオプションにuse_property_splitを追加しました。
プロパティのラベルとボタンを分割表示します。
FloatPropertyを利用するときや、多くのプロパティを並べて表示したい時に便利です。
- use_property_splitのオプションで、use_property_decorateを設定できます
- プロパティの横にキーフレーム追加ボタンを表示します
レイアウトの直接入力
「レイアウト要素のみ」タイプにて、直接レイアウトのスクリプトを入力できます。
- layout.xxx~のような形にする必要があります
- " ; "により複数行を入力した場合は、横並びになります
- 縦並びにしたい場合は、columnを手動で入力する必要があります
- 上級者向けです
パネルメニューの表示場所を変更できるように
パネルメニューを表示するエディタータイプ・3Dビューでの表示するモードの限定プロパティエディターでの表示場所の設定ができます。
この設定は、「アドオンとして書き出し」を実行した際にも反映されます。
エディタータイプ

- 3D View
- Image Editor
- Node Editor
- Dopesheet Editor
- Graph Editor
- Nla Editor
- Clip Editor
- Sequence Editor
- Properties
- Text Editor
3Dビューでの表示するモードの限定できるタイプ

3Dビューの場合、表示するモードを限定させることができます。
- None
- Mesh Edit
- Curve Edit
- Surface Edit
- Text Edit
- Armature Edit
- Metaball Edit
- Lattice Edit
- Pose Mode
- Sculpt Mode
- Weight paint
- Vertex paint
- Image paint
- Particle Mode
- Object Mode
プロパティエディターでのタブの表示場所

プロパティエディターの場合、タブの表示場所を設定することができます。
- tool
- render
- output
- view_layer
- scene
- world
- object
- modifier
- particles
- physics
- constraint
- data
- material
- texture
マクロ
「エラーを回避」オプションを追加

エラーを回避するようにしました。
- 実行してエラーがあった行は赤く表示されます
- コマンドにエラーが発生した場合は、その行をスルーして続行します
- エラーログを見てデバッグしたい場合は、このオプションをオフにしてください
- アドオン化する際、エラーがあって赤くなっている行はスルーします
マクロの編集リストをメニューとして登録

マクロにアクセスしやすいように、マクロ編集リストをメニューに追加する機能を作成しました。
- マクロのリストをメニューとして登録
- マクロ行のリストをメニューとして登録
- このメニューは「アドオンとして書き出し」で書き出すことができません。
ユーザープロパティ

ユーザーがプロパティを作成できます。
プロパティを利用した高度な処理を行うことができます。
上級者向けです。
- アドオンとして書き出しした際には、共に書き出されます
- ユーザープロパティリストを、ファイルに書き出し・読み込みができます
利用できるタイプ
タイプ | 説明 |
---|---|
bool | 真偽 |
string | 文字列 |
int | 整数 |
float | 浮動小数点 |
上記のプロパティタイプが利用できます。
その他の設定可能なデータ
種類 | 説明 |
---|---|
var_name | 内部で使うプロパティの変数名 固有名 空白は利用できません |
default | プロパティの初期値を設定します アドオンとして書き出した時に利用されます |
name | プロパティの名前 |
description | プロパティの説明 |
subtype | int・float・stringのデータの種類を設定できます |
unit | int・floatのデータの単位を設定できます |
min | int・floatの最低値を設定できます |
max | int・floatの最大値を設定できます |
アドオン内での使い方
uprop("var_name")
上記のようなコードをプロパティとして利用できます。
- "コマンド"タイプ・"レイアウト"タイプ・マクロ
- var_nameの変数名のユーザープロパティアイテムの値を返します
- "プロパティ"
- var_nameの変数名のユーザープロパティアイテムをメニューとして表示します
bpy.context.preferences.addons['customize_menu_editor'].preferences.customizemenu_colle_uprop['var_name'].bool
アドオン外部からアクセスするには上記のように書く必要があります。
- 'customize_menu_editor' の箇所はCustomize Menu Editorのフォルダ名
- 'var_name' の箇所は取得したいデータの変数名
- 'bool' の部分はプロパティのタイプ
アドオンとして書き出し

ユーザー設定からもアドオンとして書き出しできるようになりました。
設定がアドオン設定として保存され、再度書き出す際の入力を省けるようになりました。
アドオン設定からも書き出し・設定変更ができます。
- 以下の設定もアドオンとして書き出すことができるようになりました
- ユーザープロパティ
- パネルメニューのカテゴリー
- パネルメニューのエディタータイプ
- パネルメニューの3Dビューでの表示するモードの限定
- パネルメニューのプロパティエディターでの表示場所
- メニューだけではなく多くのデータをアドオン化できるようになったため、機能の名称変更しました
- old 「メニューをアドオンとして書き出し」
- new「アドオンとして書き出し」
バグ修正
- LinuxやMacでアドオン書き出しが行えない問題を修正しました
直前の履歴を取得
- "プロパティ"タイプにて、オブジェクト名などに空白が存在する場合に、正常に履歴を取得できない問題を修正しました
- 自動で生成されるボタン名にて、30文字以上の場合、可能ならば短くなるように改善しました
'bpy.data.xxx[xxx]' を 'bpy.context.xxx' に自動変換

履歴を取得する際、常にアクティブなデータに対してコードが動作するように、履歴を書き換えします。
現在は下記のデータのみ対応しています。
- objects各種
- shape_keys
- materials
- particles
詳細
- bpy.data.xxx[xxx]~ とは、Blender内の特定のデータです
- bpy.context.xxx~とは、現在アクティブなデータであり、ユーザーの操作によって常に変わります
- 常に特定のデータに対してコードが動作するようにしたい場合は、この設定をオフにしてください
- "コマンド"タイプ・"プロパティ"タイプ・マクロでこのオプションを利用できます
例 : マテリアルノードのプロパティの変更
マテリアルノードのプロパティの変更を履歴をそのまま登録しても、常に特定のマテリアルでしか動作しません。
オプションは、アクティブなマテリアルで動作するように下記のように書き換えます。
元のコード
"Material.001"の"Principled BSDF"ノードのプロパティのメニュー
bpy.data.materials["Material.001"].node_tree.nodes["Principled BSDF"].inputs[4].default_value
オプションを有効化して修正されたコード
アクティブなマテリアルの"Principled BSDF"ノードのプロパティのメニュー
bpy.context.object.active_material.node_tree.nodes["Principled BSDF"].inputs[4].default_value
その他のバグ修正
- タブの削除機能にて、最初のタブしか削除できなかった問題を修正しました