(changelog)= # Change Log (changelog-2-1-0)= ## 2.1.0 (開発中) ### Vector Menu Mayaのマーキングメニューに着想を得て、Blenderでの操作とPMEの自由なカスタマイズに合わせて設計した新しいメニューです。 - **Vector Menuを追加** — メニューの表示を待たずに、マウスの軌跡から操作を実行できます。項目を表示して選ぶ操作も使えます。 (PR #741, PR #1083, PR #1673) - **階層をたどって操作を選択** — 子のVector Menuへ進んだり、親へ戻ったりしながら項目を選べます。 (PR #1878, PR #1935) - **8方向と上下2スロットを自由に構成** — Pie Menuと同じように項目を配置でき、Floating Panelも組み込めます。 (PR #1748, PR #1965, PR #2395, PR #2411) ### Property Stack / Context Router - **Property Stackを追加** — 複数の設定や条件を一つのスイッチにまとめられます。「すべて一致」「いずれか一致」で状態を判定し、オン・オフ時に変更する値も設定できます。 (PR #598, PR #817, PR #1168) - **Context Routerを追加** — [Context Sensitive Menu](https://gist.github.com/Pluglug/ebdf6ad377922569a34cdeb71ea97ed3)の後継として、モードや選択状態に応じたメニュー・操作の切り替えを画面上で設定できます。どの条件にも一致しないときの動作も指定できます。 (PR #822, PR #1149) - **条件プリセットを追加** — オブジェクトの種類・モード、メッシュの選択状態、使用中のエディター、スナップなどのツール設定を、よく使う条件としてメニューから追加できます。 (PR #2350) - **自作の設定も条件に利用** — PME Propertyの値や別のProperty Stackを条件に組み込めます。数値、文字列、選択肢、位置や色の各成分に対応しています。 (PR #1008, PR #1148, PR #1168) - **条件に応じてメニューの中身を切り替え** — Context RouterをPie MenuやPopup Dialog、既存パネルなどに組み込み、その場に表示する内容を切り替えられます。 (PR #1474, PR #1569, PR #2382) - **条件を満たしている間の通知を追加** — Property Stackの{guilabel}`While True HUD`で、指定したエディターにメッセージや枠を表示できます。色・アイコン・表示位置も設定できます。 (PR #2312) ### PME Property / Property StackのID - **表示名とPythonからの参照を分けて管理** — PME PropertyとProperty Stackに、スクリプトから参照するためのProperty IDを用意しました。表示名をそのままPythonの参照パスに使えない場合は、`My Toggle` → `my_toggle`のように使えるIDを自動生成します。 (PR #667, PR #868, PR #1923) - **IDを編集・Lock** — {guilabel}`Preview`から参照パスのコピーやIDの編集ができます。通常は表示名の変更にIDも追従しますが、Lockすれば表示名を変えても同じIDを使い続けられます。 (PR #667, PR #868, PR #1923) ```{important} PMEのIDには、半角英字で始まる英数字とアンダースコアを使います(最大63文字)。空白や記号、`class`などのPython予約語、`keys`・`values`・`items`・`get`は使えません。 2.0以前のPME Propertyを移行する際は、従来の名前をIDとして使える場合、自動でLockして参照を維持します。IDが変わった場合は、既存スクリプトの参照を{guilabel}`Preview`に表示されるパスへ更新してください。 ``` ### メニューの作成 / 編集 - **Quick Captureへ刷新** — 以前のCtrl+Shift+バッククオートで開く編集機能を、キャプチャ内容と追加先を確認して登録できるメニューに作り替えました。直前の操作や右クリックした設定を、検索・タグ・最近使ったメニューから追加先を選んで登録できます(初期ホットキーはCtrl+Shift+P)。 (PR #1813, PR #1870, PR #2064) - **Re-Captureで操作履歴を再利用** — 最近の操作を複数選び、実行した順番のまま一つのMacroにまとめてメニューへ追加できます。 (PR #1813, PR #1905) - **作業中に編集画面を開く** — Quick Captureや配置済みのメニューから、対象のメニューを編集できます。 (PR #1856, PR #2388) - **Select Modeを追加** — 複数のメニューを選択し、まとめて有効化・無効化や削除、タグの付け外しができます。 (PR #1621, PR #1637, PR #1655, PR #2021) - **タグ編集を強化** — タグの検索・付け外し・名前変更・並べ替えができ、使用中のメニュー数も確認できます。複数タグの「いずれか」「すべて」での絞り込みや、タグなしのメニューの表示にも対応しました。 (PR #1585, PR #1623, PR #1645) - **メニューの問題を一覧から確認** — {guilabel}`PM Health`で、使えないコマンドやホットキー、リンク切れなどを確認できます。問題のあるメニューだけをフィルターできます。 (PR #1064, PR #1807) - **Blenderメニューを展開して配置** — Blenderのメニューを、プルダウンとして置くか、項目を展開して置くか選べるようになりました。Regular MenuもPie MenuやPopup Dialogの中へ展開できます。 (PR #2015) - **行・列のコピーで設定を保持** — Popup DialogやFloating Panelの行、Regular Menuの列を貼り付けたときに、リンク先や説明文、Undo設定が失われる問題を修正しました。 (PR #1170, PR #1610) - **Pie MenuのNestを修正** — {guilabel}`Threshold`と{guilabel}`Confirm Threshold`が正しく反映されるようになり、子のPie Menuへ続けて進むNest操作が再び使えるようになりました。 (PR #2059) - **長いコマンドを含むMacroを修正** — コマンドが途中で切れ、実行に失敗することがある問題を修正しました。 (PR #1267) ### アイコン - **ツールとアセットのアイコンを自動表示** — {guilabel}`Auto Icon`で、登録したツールやブラシなどに合うアイコンが自動で設定されるようになりました。 (PR #1745, PR #1834, PR #1842, PR #2344, PR #2373) - **カスタムアイコンの再読み込みを復旧** — アイコンを追加・変更した後、再読み込みボタンでBlenderを再起動せずに反映できます。起動時にアイコンが読み込まれない問題も修正しました。 (PR #1424) ### Popup Dialog / Floating Panel - **プロパティ名と入力欄を揃えて表示** — {guilabel}`Property Split`で、名前と入力欄を左右に分けて整列できます。メニュー全体に加えて、項目ごとの切り替えもできます。 (PR #1101, PR #1114) - **展開先ごとに表示位置と幅を調整** — Pie Menuに組み込むPopup Dialogや、Vector Menuに組み込むFloating Panelの表示位置・幅を、配置先のスロットで調整できるようになりました。 (PR #1927) - **Floating Panelを軽量化** — 複数のパネルを開いたまま作業するときの負荷や、パネルを移動するときの引っかかりを軽減しました。 (PR #1958, PR #1963, PR #1980) - **Floating Panelの表示不具合を修正** — Blender 4.5でパネルが表示されない問題や、ファイルを読み込んだ後に古いパネル表示が残る問題を修正しました。 (PR #2310, PR #2307) ### Toggle Side Area - **サイドエリアの開閉・切り替えを改善** — 隣接する既存エリアを誤って閉じないようにし、サイドエリアを一度閉じる操作を挟まず、別のエディターへ切り替えられるようにしました。 (PR #1604, PR #1780) - **閉じる前の作業状態を復元** — Outliner、Properties、Node Editorなどの対応エディターで、閉じて開き直したときに表示や設定を復元できます。記憶した状態はBlenderの再起動後には引き継ぎません。 (PR #1810, PR #1888) - **旧設定の扱いを変更** — 従来の{guilabel}`Ignore Area`と個別のSidebarタブ記憶は廃止しました。古い設定は読み込めますが、これらの設定は動作に影響しません。 (PR #1604, PR #1810) {guilabel}`Settings > General > Expert`の{guilabel}`Preserve Side Area State`を有効にして、ぜひお試しください。実験的な機能のため、{ref}`対応範囲と注意事項 `をご確認ください。初期状態はOFFです。 この状態復元はBlender 4.5・5.2で検証済みですが、将来のBlenderでは機能しなくなる可能性があります。最も確実なのは、{guilabel}`Exec on Open`/{guilabel}`Exec on Close`に必要な設定処理を書く方法です。 ### GPULayout GPULayoutでは、BlenderのメニューやパネルをFloating PanelやVector Menuの中でそのまま使えることを目指し、対応する表示・操作を広げています。 - **ポップアップをキーボードで操作** — Floating Panel内のメニューを上下キーで選び、EnterまたはSpaceで実行できます。 (PR #867) - **色をドラッグしてコピー** — Floating Panel内の色見本から別の色見本へ、ドラッグ&ドロップで色をコピーできます。 (PR #906) - **色調整の取り消しを改善** — Escで調整前の色に戻せるようになり、確定した色調整も1回のUndoで取り消せます。 (PR #902, PR #905, PR #1766) - **カラーピッカーの形式を追加** — Blenderで選んだ{guilabel}`Circle (HSL)`、{guilabel}`Square (HS + V)`、{guilabel}`Square (HV + S)`もFloating Panelに反映されます。 (PR #914, PR #920) 以下のベータ機能は、{guilabel}`Settings > GPU Layout`の{guilabel}`FPANEL Content Renderer (Beta)`と{guilabel}`FPANEL Content Interaction (Beta)`を有効にすると利用できます。 - **数値やチェック項目をまとめて調整(ベータ)** — 複数の数値をまとめてドラッグ調整したり、チェック項目をなぞって切り替えたりできます。文字の直接入力や、単位付きの数値表示にも対応しています。 (PR #847, PR #946, PR #959, PR #967) - **Blenderパネル・メニューの操作を改善(ベータ)** — 埋め込んだパネルの設定を操作し、サブメニューをマウスを重ねて開けます。レンダーエンジンの切り替えにも対応しています。 (PR #1851, PR #2036, PR #2338, PR #2371) - **一部の項目が未対応でも表示を継続(ベータ)** — 埋め込んだBlenderパネルやメニューに未対応の項目があっても、利用できるほかの項目を表示するようにしました。 (PR #2357, PR #2359) ### エクスポート / インポート / バックアップ - **選択した複数メニューをまとめてエクスポート** — {guilabel}`Select Mode`で選択した複数のメニューを、まとめて書き出せるようになりました。 (PR #1646) - **保存先を開きやすく** — Exportメニューから出力先フォルダを開けます。Import画面には、書き出したメニュー・サンプル・バックアップの保存先へ移動するボタンを追加しました。 (PR #864) - **バックアップを利用環境ごとに分離** — 複数のPCやBlender設定で保存先を共有しても、別環境のバックアップを上書き・削除しないようにしました。 (PR #2372) - **自動バックアップの失敗時も起動を継続** — バックアップを書き出せないことが原因で、PMEを有効化できなくなる問題を修正しました。 (PR #2315) - **v1形式のJSONエクスポートを廃止** — 書き出しはv2形式に統一しました。PME 1.18.x・1.19.xで作成したv1形式のJSONやバックアップは、引き続き読み込めます。 (PR #2413) ### インストール / 更新 - **BlenderのExtensionsに対応** — {guilabel}`Get Extensions`からPMEをインストール・更新できます。PME 1.18.x・1.19.x・2.0.5.xから移行する場合は、先にメニューをJSONへ書き出してから入れ替えてください。{ref}`移行手順 ` (PR #1942, PR #2245) ### 実行・編集基盤の刷新 2.0.5以降、新しいメニュー形式でもBlenderの操作・設定と既存のカスタマイズを扱えるよう、項目の識別から実行、値の確定・キャンセル・Undoまで、共通処理を整備しました。 - **メニュー・項目の識別** — 名前や並び順とは別に対象を識別する仕組みを導入し、メニュー間リンク、複製・貼り付け、JSONの読み込みへ適用しました。 (Issue #407, Issue #412, PR #948, PR #1268) - **編集処理の共通化** — 項目の追加・削除・移動・貼り付けや、メニューの作成・複製・並べ替えで、変更内容の反映と失敗時の復元を共通化しました。Quick Captureからの新規作成もこの処理を使用します。 (Issue #409, PR #507, PR #1380, PR #1813) - **操作対象の参照** — 現在のオブジェクトやマテリアル・ボーンなどを参照する処理を整理しました。MeshをLightとして扱う誤参照、Boneの種類・モードの扱い、Fluid設定を取得できない問題も修正しています。 (Issue #442, PR #458, PR #579, PR #588, PR #589, PR #1230) - **スクリプトの実行環境** — コマンド・Custom・Propertyで、呼び出したエディターやメニューの状態を引き継ぐ処理を整理しました。Customの入れ子実行では、終了時に呼び出し元の状態へ戻す処理を共通化しました。 (Issue #408, PR #641, PR #1480) - **使用条件の確認** — 有効・無効やPollの確認を、ホットキー、メニューの埋め込み、Macro・Modal・Sticky Keyなどの呼び出し経路へ広げました。 (Issue #411, PR #404, PR #406, PR #413) - **継続操作と入力** — Macro・Modal・Sticky Key・Stack Keyへ現在のキー・マウス入力を渡す処理を共通化し、長押しやキー解放後の処理も変更しました。 (Issue #410, PR #1026, PR #1699, PR #2052, PR #2059) - **パネル・メニュー上の実行と値編集** — Floating PanelとVector Menuで、操作対象の確認からコマンド実行までの処理を共通化しました。値の編集・確定・キャンセル・Undoも共通化し、従来のGPULayout・Floating Panelにも適用しています。 (Issue #395, PR #1620, PR #1693, PR #1699, PR #1783) 新機能を使っていなくても、従来のメニューやスクリプトに関わる変更です。同じ設定で以前と違う動作がある場合は、今回の変更が原因の可能性があります。操作対象やリンク先の違い、入力・確定・キャンセルの違和感など、以前との違いと再現手順を添えて{ref}`お知らせください `。 (changelog-2-0-5-5)= ## 2.0.5.5 (2026.07.23) - **参照・埋め込みメニューのPoll条件を修正** — `return C.mode == 'SCULPT'` のようなcontext依存Pollが、Dialogなど別のPMEメニューから参照された場合も現在のBlender描画contextを使うようになりました。遮断対象が表示されたままになり、PM Health警告が残る原因となっていたPoll再帰エラーを防ぎます。Layout PanelとFloating Panelも同じcontext-aware availability経路を使います。 (Issue #1496, PR #1538) (changelog-2-0-5-4)= ## 2.0.5.4 (2026.07.20) - **`panel()`経由でPie Menuを開いたときにBlender 5.1以降でクラッシュする問題を修正しました。** (Issue #1440, PR #1441) (changelog-2-0-5-3)= ## 2.0.5.3 (2026.07.19) - **Pie Dialog内でBrush Settingsを展開したときのBlender 5.1以降のクラッシュを回避** — [Blender #161637](https://projects.blender.org/blender/blender/issues/161637)で報告されているnative crashを避けつつ、Brush Directionはdropdownとして引き続き利用できます。 (Issue #1418, PR #1422) - **2.0.5.xではセッション中のcustom icon再読込を一時的に非表示化** — 共有preview collectionを再読込すると、PMEのUIが保持しているicon IDが失効することがあるためです。カスタムアイコンを追加・変更した後はBlenderを再起動してください。PME内部アイコンとユーザーカスタムアイコンのpreview管理を分離したうえで、2.1.0でrefresh UIを復旧する予定です。 (Issue #1423, PR #1428) (changelog-2-0-5-2)= ## 2.0.5.2 (2026.05.31) - **Poll 条件が古い context を読む問題を修正** — `return C.mode == 'EDIT_MESH'` のような Poll スクリプトが、古いグローバル Blender context ではなく、メニューを呼び出した context を読むようにしました。これにより、Mesh keymap など context に依存する呼び出し経路で、mode 条件付きメニューが表示されないことがある問題を修正しています。 (Issue #555) (changelog-2-0-5-1)= ## 2.0.5.1 (2026.05.25) - **Poll 条件がより一貫して効くようになりました** — メニューに設定した Poll 条件を、hotkey だけでなく、HOLD / TWEAK / CHORD、`open_menu()` / `pme.invoke_pm()` などのスクリプト経路、editor preview、Popup Dialog や通常メニューの描画、Macro / Modal / Sticky / Floating Panel からの呼び出しでも確認するようにしました。これにより、現在の Blender context では使えないメニューが別経路から呼び出されてしまうケースを減らしています。 (PR #404, PR #406, PR #413) - **安全に実行できない operator をキャンセルするようにしました** — Blender 側の context 条件を満たせない操作を呼び出した場合に、PME 側で安全にキャンセルし、poll error として表示されにくくしました。 (PR #449) - **Stack Key 通知の表示条件を修正** — Stack Key の通知ラベルが、不要な場面で常に表示されることがある問題を修正しました。 (PR #446) (changelog-2-0-5)= ## 2.0.5 (2026.05.16) ### メニュー管理 / 編集機能 - **メニュー間の参照を扱う基盤を追加** — PME 内のメニューがどのメニューを参照しているかを、名前だけでなく uid も含めて追跡できる内部基盤を追加しました。これにより、参照先への移動、参照元の確認、壊れた参照の診断を今後より一貫した形で扱えるようになります。 (PR #336) - **参照先メニューへ移動しやすくなりました** — MENU スロットから参照先メニューへ移動するリンクボタンを追加しました。Slot Editor の MENU タブ、PM Editor のスロット行、Popup Dialog / Floating Panel の editor preview、Panel Group の Dialog リンクなどから、関連するメニューへ直接移動できます。 (PR #336) - **参照元メニューを確認できるようになりました** — メニュー名の横に、現在のメニューを参照している他のメニューへ移動するリンクボタンを追加しました。参照元が 1 件だけの場合は直接移動し、複数ある場合は候補を一覧から選べます。 (PR #336) - **リンク先メニューの作成を補助** — MENU スロットでまだ存在しないメニュー名を扱っているとき、その場で新しいリンク先メニューを作成できるようになりました。作成するメニュー種別を選び、選んだ種別に応じた MENU オプションを設定してからスロットへ関連付けます。 (PR #336) - **Editor Link Buttons 設定を追加** — Popup Dialog / Floating Panel の editor preview にリンクボタンを表示するかを切り替えられるようになりました。設定は {guilabel}`Settings > General > Interface` と {guilabel}`Settings > Popup Dialog` から変更できます。 (PR #336) - **開発者向けの参照監査を追加** — 既存メニューの参照状況、見つからない参照、uid の不足や重複などを確認できる監査コマンドを追加しました。サポートや設定整理のための診断機能として、今後の PME Doctor 系機能につなげていく予定です。 (PR #336) - **リンク先メニューへ移動しながら編集しやすくなりました** — コンテキストメニュー経由などでメニューにスロットを追加するとき、参照しているリンク先メニューへ移動できるようになりました。パネルとして使われているスロットやリンク先を持つ MENU スロットには `[PANEL]` / `[LINKED]` の目印が付きます。クリックしたときは、そのスロットを置き換えるか、リンク先メニューへ移動するかを選べます。 (PR #340) - **無効化・壊れた参照を見つけやすくしました** — MENU スロットが無効化された PMEメニュー (PM) や見つからない PMEメニューを参照している場合、PM Editor、Slot Editor、Popup Dialog / Floating Panel の editor preview、runtime の埋め込み表示で状態が分かるようにしました。無効化された参照先は通常の `UNLINKED`、見つからない・曖昧な参照先は警告付きの `UNLINKED` として扱い、単なる未設定スロットとは区別します。 (PR #392) - **Preferences list と Tree Mode UI を改善** — list width をモーダル操作で調整・折りたたみできるようにし、Tree Mode では group 内の item 数を表示できるようになりました。狭い keymap 行では、詳細設定時だけ key browse button を表示するようにして混雑を減らしています。 (PR #321) - **メニュー作成時のプリセットを整理** — Poll 条件プリセットでは Editor UI Type、Object Type + Mode、メッシュ選択数などを選びやすくしました。あわせて、CUSTOM スロットに Blender の Quick Favorites を表示するプリセットを追加しました。 (PR #399) ### Popup Dialog / Floating Panel - **Popup Dialog / Floating Panel に折りたたみパネルを追加** — Popup Dialog と Floating Panel の中に、別の Popup Dialog / Floating Panel を折りたたみパネルとして配置できるようになりました。パネル行は Row メニューから追加し、本文に表示するメニューをリンクして構成します。パネルヘッダーには追加のボタンを置くことができ、初期状態を閉じておく Default Closed オプションも設定できます。この機能は Blender 4.2 以降の `UILayout.panel()` を使用しています。4.1 以前のバージョンではこの機能を利用したり import できません。 (PR #317, PR #340) - **Popup Dialog / Floating Panel の行編集を改善** — PDI の移動・コピー時に、空スロットを先に作らなくても別行の先頭や末尾へ挿入できるようになりました。コンテキストメニューからの DIALOG / FPANEL への追加でも、行端の追加先を選びやすくしています。 (PR #316) ### GPULayout - **Floating Panel の tooltip に対応** — Floating Panel の COMMAND ボタンで、PME の説明文や COMMAND スロットの説明上書きを GPU tooltip として表示できるようになりました。tooltip の表示寿命、配置、折り返し、popup / subpanel close 時の消去も GPULayout の状態に合わせて扱います。 (PR #312, PR #314) - **GPULayout popup の pointer state を整理** — dropdown 選択後に popup が閉じない、閉じた直後に同じボタンで再オープンする、hover / pressed 表示が残る、といった popup 周りの状態不整合を修正しました。 (PR #318) - **GPULayout の Boolean property 表示を改善** — `layout.prop()` の Boolean widget が Blender 標準 UI に近い見た目と挙動になるよう、icon toggle、split label、disabled / inactive 表示、`invert_checkbox` などの扱いを見直しました。 (PR #323) - **GPULayout icon fallback と FPANEL icon selector を改善** — PME 内部の fallback icon を hidden internal asset として整理し、GPULayout で未対応の Blender built-in icon を FPANEL icon selector から選べないようにしました。 (PR #326) - **FPANEL の target lifecycle と配置を安定化** — 紐づく area が無効になった FPANEL を安全に閉じ、side area 操作など別 context の変化では必要な panel state を維持するようにしました。root FPANEL の位置は area に対する相対位置として保存されます。 (PR #331) ### Stack Key - **Remember State を実用面から見直しました** — Stack Key の {guilabel}`Remember State` は、最後に選ばれたスロット位置を覚える機能として使われてきました。一方で、似たツールを同じホットキーにまとめる用途では、「押すたびに必ず次へ進む」よりも、「普段は前回のツールへ戻り、すばやく連続で押したときだけ候補を進める」動作の方が自然な場面があります。そこで設定名を {guilabel}`Remember Slot` に整理し、実際の使い方に合わせて動作を選べるようにしました。 (Issue #35, PR #328) - **Advance On でスロットの進み方を選べるようになりました** — {guilabel}`Every Press` では、従来どおり Stack Key を押すたびに次のスロットへ進みます。{guilabel}`Quick Repeat` では、時間を空けて Stack Key を押したときは前回使ったスロットを呼び出し、短時間に続けて押したときだけ次のスロットへ進みます。既存の Stack Key 設定は {guilabel}`Every Press` 相当の動作を保つため、アップデート後にホットキーの意味が変わることはありません。 (Issue #35, PR #328) - **Stack Key スロットにアイコンを設定できるようになりました** — Stack Key の各スロットにアイコンを設定し、スロットを呼び出したときの通知にもスロット名とアイコンを表示するようにしました。 (Issue #35, PR #328) ### エクスポート / インポート - **JSON エクスポートのメニュー順を安定化** — JSON エクスポート時のメニュー配列が、Preferences のメニュー一覧順に従うようになりました。Tree Mode の表示順や参照メニューの追加によって出力順が変わることを避け、エクスポートした JSON を再インポートしたときも、意図したメニューリストの順番を保ちやすくしています。開発者向けのソートオプションを有効にした場合のみ、名前順で出力します。 (PR #381, PR #385) - **部分エクスポートで参照先メニューを保持** — Current Menu、Tag、Enabled など一部のメニューだけをエクスポートするとき、対象メニューから参照されている関連メニューも一緒に含める処理を整理しました。循環参照や複数経路から同じメニューへ到達する場合でも、同じメニューを重複して出力しないようにしています。見つからない参照や曖昧な参照は推測せず、将来の診断機能で扱いやすい形にしています。 (PR #385) - **エクスポート UI の表現を整理** — これまで {guilabel}`Selected Menu` と表示されていたエクスポート項目を、実際の動作に合わせて {guilabel}`Current Menu` に変更しました。将来追加予定の複数選択モードと混同しないようにするための整理です。ファイル選択画面では、参照先メニューを一緒に含めるかを {guilabel}`Include Referenced Menus` で切り替えられます。 (PR #385) - **エクスポートファイル名の候補を改善** — 手動エクスポート時の初期ファイル名が、常に `my_pie_menus.json` ではなく、内容に応じた名前になります。Current Menu では `PME_<メニュー名>.json`、参照先メニューが追加される場合は `+N`、All / Tag / Enabled では日付やメニュー数を含む名前を提案します。既に同名ファイルがある場合は番号付きの名前を提案します。 (PR #385) ### 安全性 / 内部基盤 - **PMEメニュー (PM) の無効化を実行停止として整理** — `PM.enabled` の役割を、単なる hotkey の有効/無効ではなく「その PMEメニューを実行可能にするかどうか」として整理しました。無効化された PMEメニューは、hotkey だけでなく、他の PMEメニューからの参照、`open_menu()` / `draw_menu()` / `pme.invoke_pm()` などのスクリプト経路、登録済みメニューやパネル経路からも実行されないようになります。hotkey だけを外したい場合は、PMEメニューを無効化するのではなく Hotkey 設定を外してください。 (PR #392) - **PMEメニュー間参照の診断基盤を強化** — 参照先が存在するかどうかだけでなく、参照先 PMEメニューが無効化されていて実行できない状態も診断できるようにしました。これにより、メニュー整理や将来の Doctor 系機能で「存在するが実行できない参照」を扱いやすくなります。 (PR #392) - **Macro の安全性を改善** — Macro に、現在の Blender 環境で見つからない operator が含まれている場合、Blender の native Macro 実行に入る前に PME 側で検出し、Macro 全体を安全に停止するようにしました。古い設定、無効化されたアドオン、名前が変わった operator などが原因で Blender ごと落ちることがあった既知の問題への対策です。検出した問題は Macro Editor のスロット行に警告アイコンとして表示され、クリックすると内容を確認できます。 (PR #355, PR #357, PR #358, PR #359, PR #360, PR #361, PR #362, PR #363, PR #371) - **Macro の外部呼び出しを改善** — スクリプトやカスタム UI から PME Macro を呼び出すための `bpy.ops.pme.invoke_macro(...)` を追加しました。これまでのように Macro 内の全スロットの引数を呼び出し側で渡す必要がなく、PME 側の Macro 定義を使って実行できます。既存の Macro 呼び出しとの互換性は維持しつつ、今後はこちらを外部向けの呼び出し口として整備していきます。 (PR #364, PR #371) - **通知 API の基盤を追加** — GPU 通知の内部 queue を Notification Surface として整理し、配置・fade metadata を扱えるようにしました。スクリプトからは `notify()` helper を使って、現在の area や cursor 位置を基準にした一時通知を出せます。 (PR #349, PR #350, PR #351) - **Add-on preference search の初期化を修正** — Blender 5.1 で add-on metadata cache が未初期化のまま検索される場合でも、enabled add-on の preference panel を正しく見つけられるようにしました。 (PR #303) - **Logger preferences の初期化クラッシュを修正** — Blender 5.1.1 で logging category の既定値を作成するときに RNA update callback が再入し、CollectionProperty を壊す可能性があった問題を防ぎました。 (PR #380) (changelog-2-0-4)= ## 2.0.4 (2026.05.02) - **FPANEL のボタン背景色に対応** — Floating Panel の `COMMAND` ボタンに、ボタン単位の背景色を設定できるようになりました。背景色を有効にすると FPANEL editor の各ボタン左側にカラースウォッチが表示され、そこから直接調整できます。設定した色は実際の GPU フローティングパネルにも反映されます。背景色の有効/無効は Slot メニュー、または `Shift+OSKey+LMB` で切り替えられます。 (PR #273) - **Floating Panel でのカスタムプロパティー編集に対応** — Rig UI などで使われる `["PropName"]` 形式のカスタムプロパティーを、数値表示だけでなくスライダーやチェックボックスとして編集できるケースが増えました。ドット付きプロパティー名にも対応しています。 (PR #260) - **FPANEL の Undo/Redo 安定性を改善** — カスタムプロパティーを編集した後に Undo/Redo で表示が崩れたり Blender がクラッシュしたりする問題を修正しました。Undo/Redo 時は古いパネル状態を安全に破棄して再構築します。 (PR #260) - **GPULayout カラーピッカーが `Square (SV + H)` に対応** — Blender の Preferences で Color Picker Type を `Square (SV + H)` にしている場合、GPU フローティングパネル内のカラーピッカーも四角い SV エリアと横向きの Hue スライダーで表示されるようになりました。従来の `Circle (HSV)` 表示はそのまま利用できます。`Circle (HSL)` / `Square (HS + V)` / `Square (HV + S)` は今後の対応予定で、現時点では `Circle (HSV)` 表示にフォールバックします。 (PR #285) - **右クリック追加の Recent Menus 対応** — PME メニューを呼び出すと、そのメニューが「最近使った追加先」として記録されるようになりました。Blender UI 上のボタンを右クリックして PME から追加するとき、Preferences で選択中のメニューだけでなく、最近呼び出したメニューも追加先に選べます。{guilabel}`Settings > General > Recent Menu Targets` で無効化できます。 (PR #274) - **メニュー検索の対象を拡張** — これまでのメニュー名・Hotkey に加えて、Extend Target でもメニューを検索できるようになりました。検索に含める項目は {guilabel}`Settings > General > Search Keywords` で調整してください。 (PR #268) - **カスタム UI の `panel()` 表示を改善** — Pie Menu のカスタムスロットで `panel("...")` を使ったとき、`expand=False` などの初期開閉設定が正しく反映されるようになりました。一度ユーザーが開閉した後は、そのメニュー内での状態を維持します。 (PR #264) - **埋め込み Blender パネルの見た目を改善** — GPU フローティングパネル内で `panel("...")` を使ったとき、折りたたみ見出しが通常のボタンのように目立ってしまう問題を修正しました。 (PR #266) - **Modal メニューのプロパティ更新を修正** — 一部の外部アドオン operator を Modal メニューから調整するとき、マウス移動で値が更新されないことがある問題を修正しました。 (PR #292) - **Modal Operator のマウスロックを安定化** — {guilabel}`Lock Mouse` を有効にした Modal Operator で、マウス移動によるプロパティー編集時にカーソルが起動元エリア内へ戻りやすくなりました。 (PR #287) - **将来的な機能検討のためのバックアップ設定を追加** — {guilabel}`Settings > Developer > Backup` に、単一のバックアップファイルへ書き込み続けるオプションを追加しました。PME 設定を Git で管理する機能を検討するための実験的なオプションです。 (PR #275) (changelog-2-0-3)= ## 2.0.3 (2026.04.20) - **`import pme` はオプション化されました** — `import pme` エイリアスは常時有効ではなく、起動オプションとして明示的に ON にする方式になりました。既存のスクリプトや他アドオンで `import pme` を使っている場合は、{guilabel}`Settings > Developer` で {guilabel}`Enable import pme Alias` を ON にして、一度 Blender を再起動してください。 - **operator capture の表示名改善** — 通常、Blender の Python API からは UI に描画されている「その場の表示名」をそのまま取得できません。そのため、これまでは operator をキャプチャして追加すると `Add Node` のような generic な名前が自動で入り、何を追加したスロットなのか区別しづらいケースがありました。PME2 では、キャプチャ時に動的に item 名を解決できる operator については、その表示名をスロット名に直接使うようにしています。 (PR #199) - **対応範囲の拡張** — 現在、動的に名前を復元できるのは次の系統です。 - `node.add_node` - `object.modifier_add` - `object.constraint_add` - `pose.constraint_add` - `object.shaderfx_add` - `sequencer.strip_modifier_add` - `wm.tool_set_by_id` - `brush.asset_activate` すべての operator に効くわけではありませんが、対応しているものはキャプチャ時の自動命名がかなり実用的になりました。なお、この改善はキャプチャ時の名前解決に限られ、Slot を後から直接編集する場合の generic な naming は従来通りです。 (PR #199) - **GPULayout のカラーピッカー表示と操作の一致を改善** — カラースウォッチが Blender 標準 UI より暗く見える問題を修正し、現在の円形 HSV カラーピッカーについて、色相の向き、カーソル位置、円内の色の出方、クリックした位置と実際に入る値の対応を Blender により近づけました。あわせて、今後カラーピッカーの種類を増やす際に同じ食い違いを再発させにくいよう、色空間・形状・彩度の割り当てに関する内部契約も整理しています。 (PR #245) - **GPULayout スライダーと数値入力の表示を改善** — GPULayoutの 数値スライダーと数値入力が、Blender 側の実効 UI range により近く追従するようになりました。Shape Key に加えて、一部の Constraint / Particle / Modifier 系 property でも、現在の設定に応じた上下限やスライダーの埋まり方がより自然になります。インスタンスごとに変わる UI range の扱いも見直しています。 (PR #211) - **フローティングパネル/サブパネルの描画更新を強化** — フローティングパネル内のカスタム UI や color picker のようなサブパネルで、選択変更や外側のプロパティ変更があったときにも、状況に応じて適切にパネル描画が更新されるようになりました。選択や文脈に応じて UI の形が変わるケースではレイアウトを組み直し、同じ項目を表示しているサブパネルは開いたまま更新に追従し、表示対象が変わったときだけ中身を差し替えます。 (PR #213, PR #235) - **GPULayout カラーピッカーの見た目と編集 UI を改善** — 明度バーの塗りと輪郭の形状不一致を修正し、RGB と HSV の数値入力は Blender に寄せてタブで切り替える方式にしました。Hex 入力欄も追加し、GPU テキスト入力では macOS の Command キーによる copy / cut / paste / select-all に対応しました。 (PR #246, PR #248) - **メニュー編集後の画面反映を改善** — メニュー項目の追加・移動・削除・並べ替えや有効化の変更が、Preferences だけでなく開いている PME の画面にも再オープンなしで反映されやすくなりました。 (PR #238) - **Blender 5.1 でのメモリ構造変更に対応** — 5.1 系で side area 周りが壊れやすくなっていた問題に対応しました。 (PR #227) - **バグ報告の導線整備** — ドキュメントサイトに[報告ページ](get_support)を新設、Preferences にリンクボタンを追加しました。 - **キーマップ診断の補助機能** — 開発者向け設定に、PME 関連の空キーマップ項目や active keyconfig への混入を確認できる簡易診断機能を追加しました。主にサポート時の切り分け用途を想定しています。 (PR #253) - **起動オプションの導入** — PME の起動前に評価される外部設定を扱えるようになりました。これにより、起動時だけに必要なオプションを今後追加しやすくなります。将来的には、外部ファイルを使ったより柔軟な設定管理へ発展させやすい土台にもなります。詳しくは [起動オプション](boot_options) と [開発者オプション](developer_options) を参照してください。 (PR #201, PR #204) - **loader manifest の導入** — 起動時に使うモジュール読み込み順をあらかじめまとめた `loader_manifest.json` を導入しました。{guilabel}`Use Bundled Loader Manifest` を ON にすると、この `loader_manifest.json` を使って起動します。OFF の場合、またはこのファイルを利用できない場合は、依存関係ベースの動的探索に切り替わります。 (PR #201, PR #204) - **起動時の開発機能を強化** — PME の長期開発と検証性を支える基盤整備として、バックグラウンド起動時の観測、検証用 loader manifest、起動前設定の扱いを整理しました。有効にすると、`loader_manifest_candidate.json` が新しく作成され、Developer タブまたはコマンドラインから `loader_manifest.json` へ明示的に反映できます。通常起動が `loader_manifest.json` を自動で書き換えることはありません。あわせて、`loader_manifest.json` の利用と初期化ログ出力のオプション化により、通常起動も少し軽くなっています。トラブルがあった場合は、次回起動で初期化ログを有効にするか、`boot_config.json` を直接編集して初期化ログを有効にできます。詳細は [開発者オプション](developer_options) と [起動オプション](boot_options) を参照してください。 (PR #201, PR #204) --- ## 2.0.2.3 (2026.03.28) - **Blender 5.1 / macOS の有効化クラッシュ修正** — 特定環境で PME を有効化した瞬間に Blender ごと落ちる問題を調査したところ、通知・更新まわりの内部的な保存構造が Blender の登録処理と相性の悪い形になっていることが分かりました。修正にあたって、この保存構造を根本から見直しています。 (PR #190) - **通知・更新状態の外部ファイル化** — 通知の既読状態や更新チェック結果を、Blender 内部の設定ツリーから切り離し、PME が自前で管理する JSON ファイルに移しました。Blender の起動・終了に振り回されない安定した保存先になるだけでなく、この状態ファイルは Blender の外から直接読めるテキストです。将来的にはトラブルの診断情報もここに集約し、サポートや外部ツールと連携しやすい形を目指しています。 (PR #190) - **更新通知の安全性強化** — 保守用に更新元を切り替えられる経路を追加し、非公式ソースの利用中は常設の警告を表示するようにしました。非公式ソース経由の更新通知では外部リンクを出さず、参照中の取得元を本文に明示します。 (PR #190) - **通知表示の改善** — 複数行メッセージをそのまま描画できるようにし、警告や補足情報を通知本文で扱いやすくしました。 (PR #190) - **古いメニューの missing operator 対応改善** — Blender 5.1 以降、古いメニューや未解決 operator を含むスロットで PME の fallback が正しく効かず、pie 全体が崩れて見えることがありました。見つからない operator は PME の error slot に戻すようにし、古いメニューでも全体の形を保ちやすくしました。 (PR #198) - **Legacy JSON import の安定化** — 一部の古い JSON v1 メニューの取り込みで不安定になるケースがあったため、import 後の内部参照と互換処理を見直しました。古いメニューパックもより安定して扱えるようにしています。 - **注意** — この更新で通知・更新の保存方式が変わるため、既読やスキップ済みの状態は一度リセットされます。更新チェック結果は次回確認時に自動で再取得されます。 (PR #190) --- ## 2.0.2.2 (2026.03.15) - **Editor command の安定性修正** — ひとつのハング報告を追ううちに、本当の原因は個別の command ではなく PMI テキスト分類そのものにあると判明。hotfix から再設計タスクに昇格させ、問題のある処理パスを根本から引き締めました。 (PR #178) - **Scanner ベースの PMI 分類** — 高コストな regex に頼る前に軽量スキャナーで振り分ける方式を導入。backtracking リスクを大幅に減らしつつ、通常の command 入力はより寛容に受け付けます。 (PR #178) --- ## 2.0.2.1 (2026.03.15) - **ホットキー runtime state の分離** — 起動時と実行時の state が干渉しないよう、ホットキーの recovery flow を強化しました。 (PR #174) - **Property capture のフォローアップ** — 2.0.2 で導入した右クリック property capture の描画・取得経路をさらに堅牢化しました。 (PR #174) - **4 要素 hotfix versioning** — `2.0.2`、`2.0.2.1`、`2.0.2.2` のような hotfix build を通知システムで正確に区別できるようにしました。 (PR #175) --- ## 2.0.2 (2026.03.14) - **右クリック property capture の大幅強化** — PME1 で「Can't Add This Widget」と表示されて諦めていたボタンの多くがキャプチャ可能になりました。テーマカラー、アドオン設定、深い階層の property まで対応しました。カスタムプロパティ(`["prop"]` 形式)もそのまま取得でき、それでも取得できない場合はなぜ追加できないのかを説明するフィードバックが表示されます。取得されるパスも改善されています。以前は bpy.data ベースの絶対パスに落ちることが多く、特定のオブジェクトやデータにしか効かないコマンドになりがちでした。PME2 では bpy.context 経由の相対パスを優先的に取得するため、「アクティブなオブジェクト」「現在のブラシ」など、状況に応じて動くコマンドが自然に作れます。 (PR #155) - **Sidearea open/close command** — `pme.sidearea_toggle` に `open_cmd` / `close_cmd` を追加し、初期化や後始末を toggle と同時に扱えるようにしました。 (PR #164) - **通知システム** — Settings タブで新しいバージョンの検出・確認ができるようになりました。起動時にバックグラウンドで確認し、手動更新やバージョンのスキップも可能です。現在はリリース通知のみですが、この仕組みはもっと広い用途を見据えて設計しています。 (PR #159) - **Tree Mode の search reveal** — カスタマイズが増えて group が深くなっても、検索すれば折りたたみを自動で展開し、対象メニューまでスクロールします。数十、数百のメニューを持つユーザーでも迷子になりません。 (PR #166) - **起動時ホットキー復旧** — add-on 有効化時に登録できなかったホットキーを後で自動再試行するようにし、Blender 再起動後にホットキーが消えるケースを減らしました。 (PR #152) - **GPU floating panel 修正** — UV Maps や Shape Keys などの埋め込み Blender panel が GPU floating panel でより安定して描画されるようになりました。 (PR #167) - **Blender 5.1 対応** — Blender 5.1 での互換性を確認しました。 --- ## 2.0.1 (2026.03.04) - **ホットキーの階層ブラウズメニュー** — Hotkey / chord-key フィールドに階層メニューを導入しました。`F13`〜`F24` や修飾キーの組み合わせなど、今まで実際に入力するしかなかった特殊キーも、メニューから選ぶだけで割り当てられます。 (PR #147) - **スロット単位の COMMAND Undo オプション** — COMMAND タブで必要なスロットだけ Undo を有効にできるようにしました。コマンドの用途に応じて、適切にUNDOスタックを制御できます。`Settings > General > Show Command Undo` で表示を切り替えます。 (PR #149) - **起動時ホットキー復旧の強化** — 起動時にホットキーを登録できなかった場合の再試行をより堅牢にし、復旧状況を明確にレポートするようにしました。 (PR #148) --- ## 2.0.0 (2026.02.20) - **PME2 正式リリース** — PME2 をBlender 5.0+での安定版として公開しました。このリリースの目的は、現状維持のための延命ではありません。PME をさまざまな制作に耐える共通基盤として、この先も進化と継承を続けていけるよう、基盤を刷新しました。 - **PME1 データ互換** — PME2 は内部が大きく変わりましたが、PME 1.18.x 系の JSON と backup の読み込み、userpref.blend 内のデータの直接移行をサポートします。旧配列形式の変換、uid 自動付与、enum index ずれからのメニュー種別復元、prefix の標準化、Extend Panel 設定の新スキーマへの変換 — Blender の内部データ構造を注意深く検証し、ひとつずつ移行パスを整備しました。移行中にエラーが起きても、次回起動時に自動でリトライします。 (PR #94, PR #98, PR #134, PR #143) - **JSON Schema v2** — export データの形式を根本から刷新しました。PME1 では配列の並び順でデータの意味が決まり、ソースコードなしには構造を把握できない形式でしたが、v2 ではすべてのフィールドに名前・型・説明が付き、[公開 JSON Schema](https://pie-menu-editor.github.io/pme-docs/schema/pme2-2.0.json) として自己記述されます。menu ごとに uid・説明文・poll 条件・タグを、item ごとに型付きアクションや説明文を持てるようになり、ひとつひとつのメニューやボタンが「何をするか」だけでなく「どう見せるか」「いつ使えるか」まで表現できます。これは、今後の進化を見据えた構造レベルのアップデートです。このスキーマなら、この先10年、どんなわがままにだって応えられます。 (PR #94, PR #98, PR #114, PR #134) - **GPU Layout System** — Blender の `UILayout` 互換を目指した独自の GPU 描画エンジンです。同じ draw コードが Blender 標準の UILayout でも GPU パネルでもそのまま動きます。2-pass レイアウト、テーマ連動、リアクティブな property binding、modal 内からの operator 呼び出しに対応しています。 (PR #101, PR #130, PR #132, PR #135) - **Floating Panel** — GPU Layout System を利用した、エリア内に常駐するカスタムパネルです。Blender テーマに沿った見た目でエリアに自然に溶け込み、自分だけの操作パネルを好きな場所に置いたまま作業できます。位置・サイズ・透明度はセッション中保持。Pie Menu / Popup-Dialog に続く PME の新しいメニューモードです。 (PR #101, PR #132, PR #135) - **uid ベース参照** — すべての menu に安定した固有 ID を導入しました。名前を自由に変えても参照は壊れません。それだけでなく、メニュー間の依存を追える、壊れた箇所をピンポイントで特定できる、Blender のバージョンアップにも強くなる、JSON を Git で履歴管理できる、プリセットを設定ごと安全にアップデートできる — uid はこれから先の機能の起点になります。Floating Panel の位置保存は、すでにこの仕組みで動いています。 (PR #98, PR #134) - **Extend Panel の再設計** — Blender 標準の panel や menu に自分のメニューを差し込む仕組みを作り直しました。PME1 では差し込み先がメニューの表示名に縛られていて、ひとつの対象にひとつしか差し込めませんでした。PME2 では差し込み先・位置・順序を専用のプロパティで管理します。同じ panel に複数のメニューを重ねて poll で出し分け、順番も自由に入れ替えられます。名前の制約がなくなったので、共有されたメニューを受け取っても衝突しません。 (PR #98) - **説明文と tooltip** — 自作のマクロや複雑なコマンド、何のために作ったか分からなくなる。PME1 ではよくある話でした。PME2 では menu にもスロットにも説明文を残せます。固定テキストでも Python 式による動的な表示でも。説明を書いていなくても、tooltip は参照先のメニュー名を自動で表示します。自分の設定を見失わず、共有時にも意図が伝わります。 (PR #101, PR #114) - **User Resources の独立** — スクリプト・アイコン・バックアップ・エクスポートといったユーザーデータを、アドオン内部からも Blender の設定フォルダからも切り離しました。`~/Documents/Pie Menu Editor/` 配下にまとめて管理され、アドオンの更新でも Blender のアップグレードでも、あなたのファイルはそのまま残ります。保存先は Settings → Resources から変更でき、Syncthing や Git で複数端末と共有することもできます。 (PR #138) - **公開 API** — PME の機能を外部スクリプトや別のアドオンから利用できるよう、公開 API `pme` を新設しました。Blender のコンソールで `import pme` と打てば、そこがスタート地点です。メニューの検索・呼び出し・コード実行を、安定したインターフェースで扱えます。他のアドオンとの連携やスクリプトからの自動化 — PME が外の世界とつながる入り口です。現在は Experimental ステータスで、今後さらに機能と安定性を拡充していきます。 (PR #72, PR #99) - **Side area の安定化** — width 記憶、N-Panel tab 復元、FILE_BROWSER crash 回避、sidebar closed state 復元など、日常利用で目立ちやすい side area 周辺の不安定さをまとめて改善しました。 (PR #126) - **PM mode 永続化の安定化** — mode 値を enum の並び順から切り離し、安定した mode table と migration / backfill を導入しました。PME1 上書き移行時に mode がずれる問題への耐性を強化しています。 (PR #143) - **PROPERTY / mode settings の整理** — mode ごとの設定の持ち方を整理し、古い曖昧な流用を減らしました。ユーザー向けの派手な新機能ではありませんが、今後の保守性と一貫性を上げるための内部改善です。 (PR #94, PR #143) - **Settings UI と logging の近代化** — Settings を icon tab ベースで再編し、GPU Layout / Developer / Resources などの整理を進めました。logging は category 制御付きの prefs UI を持ち、init logging の扱いも整理されています。 (PR #129, PR #138) - **その他の改善** — beta banner と init hook を削除し、dev log を既定で抑制しました。COMMAND fallback の Undo wrapper 既定化、PMI editor の stale label 修正、`execute_script` 周辺の path / error handling 改善も行いました。 - **長期開発のための基盤整備** — PME2 の内部構造を、この先も安心して手を入れられる形に揃えました。中心にあるのは、別プロジェクトで安定運用してきた動的モジュールローダーです。パターンベースでモジュールを自動検出し、依存をトポロジカルソートで解決し、クラス登録まで自動で行います。PME1 にもローダーはありましたが、手書きのリストと固定順序に頼る仕組みでした。6-layer architecture、モジュール構成の整理、legacy dual-loader 撤去とあわせて、ファイルを置けばそのまま動く開発環境を作っています。 (PR #71, PR #75) --- ## 1.19.2 (2026.01.11) - **PME-F v1.x 最終安定リリース** — PME2 への開発移行前の v1.x 系最終安定ビルドです。 - **Side area width clamp 修正** — side area のトグル時に幅が極端な値になってレイアウトが壊れる問題を修正しました。 - **main/side View3D 検出の改善** — main View3D の解決時にカレントエリアを優先するようにし、両エリアが期待される keymap 設定を使っている場合の side コンテキストからの close をより安定させました。 --- ## 1.19.1 (2025.11.24) - **CHORDS 安定性修正** — 高速連打時の信頼性向上、重複 modal timer によるフリーズの修正、chord timeout 時の PRESS フォールバック追加、header の chord ヒント修正を行いました。 (PR #54) - **Side area / screen-layout 修正** — 垂直 side area の close がより安定し、Blender 4.3+ の `area_join()` を正しく使用し、トグル中のサイズ保持も改善しました。 (PR #54) - **Blender 5.x 互換フォローアップ** — Blender 5.x で不整合の起きうる preference 復元パスを無効化し、property serialization を更新し、custom icon の安定性を改善し、Blender 5.0+ でリスクのある toolbar layout hack を無効化しました。 (PR #54) --- ## 1.19.0 (2025.10.25) - **Blender 5.0 互換リフレッシュ** — Blender 5.0 に合わせて主要な property / preference パスを更新し、古い互換レイヤーを削除し、関連する API regression を修正しました。 (PR #48, PR #49, PR #50, PR #52) - **新しいクリック系ホットキーモード** — 実験的な `Click` / `Click Drag` アクティベーションモードを追加し、click-drag の方向オプションにも対応しました。 (PR #50) - **Import / tags / JSON の改善** — import の安定性を向上させ、互換性重視の JSON export モードを追加し、メニューのリネームや複製時の tag filter 同期を改善しました。 (PR #50, PR #53) - **Side area / area-type の改善** — `TOP` / `BOTTOM` side area 対応を追加し、side-area ワークフローにおける動的 area-type 検出を改善しました。 (PR #50) --- ## 1.18.9 (2025.07.21) - **Blender 4.5 互換** — Blender 3.2 以降のサポートを維持しつつ、Blender 4.5 に対応しました。 (PR #39) - **Side area toggle 修正** — Blender 4.5 の描画システムと高 DPI ディスプレイで side area toggle が正しく動作するようにしました。 (PR #39) - **Popup / toolbar / panel 修正** — Popup area のサイズ制御を復旧し、panel の属性エラーを修正し、不要な toolbar メモリアクセスを削除しました。 (PR #39) - **Missing icon エラーの整理** — アイコンが見つからない場合に `TypeError` が連発される問題を修正しました。 (PR #37) --- ## 1.18.8 (2025.01.05) - **context override の安全化** — 主要な override フローをレガシーな context 辞書から `temp_override` に移行し、`ContextOverride` によるバリデーションを強化しました。 (PR #22, PR #27) - **エラー表示の改善** — PMI 関連のエラーをより明確に表示し、`Settings > General > Show Error Trace` でコンソールへの traceback 出力を追加しました。 (PR #27) - **UI / メニューの安定性向上** — レガシーアイコンの刷新、不安定な `c_last_btn` アクセスの除去、`bpy.context.area is None` ケースの安全なハンドリング、side area 検出の改善を行いました。 (PR #27) - **互換性整理** — サポート対象の Blender 最低バージョンを 3.2 に引き上げ、非推奨の `blf.size(..., dpi=72)` を削除し、`bpy.ops.pme.exec_override()` 周辺の examples / docs を更新しました。 (PR #27) - **新ドキュメントサイト** — PME のドキュメントを新サイトへ移行しました。 (PR #27) --- ## 1.18.7 (2023.04.11) - Blender 3.6.0 Alpha Support - Bug Fixes ## 1.18.6 (2022.08.13) - Fixed Click Drag and Hold hotkey modes in Blender 3.2.0+ ## 1.18.5 (2022.05.02) - Header Tools ## 1.18.4 (2021.11.11) - Toggle side-area operator fix for recent Blender builds. ## 1.18.3 (2021.06.28) - Support Blender 3 Alpha ## 1.18.2 (2021.04.24) - Bug Fix for Panel Groups in Blender 2.93 ## 1.18.1 (2021.03.12) - Blender 2.93 Alpha Support ## 1.18.0 (2020.10.30) - Key Chords - Bug Fixes ## 1.17.5 (2020.09.23) - Blender 2.91 Support - Customizable number of menu list rows - New global variable for scripts to store user data: ```python U.foo = "value" U.update(foo="value1", bar="value2") U.foo U.get("foo", "default_value") ``` - Bug Fixes ## 1.17.3 (2020.07.20) - Option to use check-boxes instead of toggle-buttons. - Bug Fixes ## 1.17.2 (2020.05.12) - PME Preferences in 3D View area - Pie extra slot gap size - Bug Fixes ## 1.17.1 (2020.04.27) - New backup folder: `scripts/addons/pie_menu_editor_data/backups` - Support keymaps with commas - Bug Fixes ## 1.17.0 (2020.03.27) - 10 Pie Slots - Sub-panels - Wider Popups ## 1.16.4 (2019.10.13) - Blender 2.81 Support - Bug Fixes ## 1.16.2 (2019.09.21) - Blender 2.81 Support - Auto-backups (pie_menu_editor/data/backup folder) - Bug Fixes ## 1.16.0 (2019.08.09) - Remember StackKey State - Bug Fixes ## 1.15.23 (2019.06.26) - Bug Fixes ## 1.15.22 (2019.06.09) - Bug Fixes ## 1.15.21 (2019.06.04) - Toggle-able menu slots - Add existing menus to pies, menus, or popups - Bug Fixes ## 1.15.20 (2019.04.11) - Bug Fixes ## 1.15.19 (2019.03.25) Bug Fixes - Bug Fixes ## 1.15.18 fix 1 (2019.03.24) ## 1.15.18 (2019.03.21) - Bug Fixes ## 1.15.17 (2019.03.12) - Blender 2.8 Beta Support - Bug Fixes ## 1.15.16 fix 1 (2019.03.07) ## 1.15.16 (2019.02.14) - Bug Fixes ## 1.15.15 (2019.02.13) - Bug Fixes ## 1.15.14 (2019.01.21) - Bug Fixes ## 1.15.13 fix 1 (2019.01.15) - Fix for multi-column Regular Menus - Multi-column fix ## 1.15.13 (2019.01.14) - Blender 2.8 Beta Support ## 1.15.12 fix 2 (2019.01.11) - Fixes for Blender 2.8 Beta - New Python API changes. ## 1.15.12 (2019.01.07) - Blender 2.8 Beta Support ## 1.15.11 fix 7 (2019.01.05) - Fixes for Blender 2.8 Beta ## 1.15.11 fix 4 (2018.12.28) ## 1.15.11 fix 3 (2018.12.28) - Fixes for PME 1.15.11 ## 1.15.11 (2018.12.23) - Blender 2.8 Beta Support - Bug Fixes ## 1.15.10 fix 1 (2018.12.15) - Some Fixes for Blender 2.8 builds ## 1.15.10 (2018.12.10) - Bug Fixes ## 1.15.9 (2018.12.10) - Bug Fixes ## 1.15.8 fix 3 (2018.12.06) ## 1.15.8 fix 3 (2018.12.04) - Some Fixes for Blender 2.8 builds ## 1.15.8 (2018.12.03) - Blender 2.8 Beta Support - Bug Fixes ## 1.15.7 fix 3 (2018.11.20) - Fix for the latest Blender 2.8 builds ## 1.15.7 (2018.11.08) - Latest Blender 2.8 Builds Support ## 1.15.6 (2018.10.10) - Latest Blender 2.8 Builds Support - Bug Fixes ## 1.15.5 (2018.09.13) - Blender 2.8 Alpha Support - Bug Fixes ## 1.15.4 (2018.08.27) - Blender 2.8 Alpha Support - Python 3.7 Support ## 1.15.3 (2018.06.25) - Show/Hide/Toggle Side Area - Show/Hide/Toggle Sidebar - Bug Fixes ## 1.15.2 (2018.05.16) - {ref}`Store Property Values in .blend Files ` - {ref}`On Property Init Function ` - Bug Fixes ## 1.15.1 (2018.05.09) - [Context Sensitive Buttons](https://blenderartists.org/t/addon-pie-menu-editor-1-15-0/662456/1261?u=roaoao) - Bug Fixes ## 1.15.0 (2018.05.08) - [Property Editor](../editors/property_editor.md) - {ref}`Extending Panels ` - [Tag/Untag Group of Menus](https://i.imgur.com/Hwrs49a.mp4) - [Save/Restore Tree View State](https://i.imgur.com/jKvxCLg.mp4) - [Select Menu by Name or Hotkey](https://i.imgur.com/bsaKFdq.mp4) - [Auto-run Python Script Files](../reference/scripting.rst) - [Custom Global Functions](../reference/scripting.rst) - [New Global Variables: menu, slot](../reference/scripting.rst) - {ref}`New Function: props(name) ` - {ref}`Updated Function: open_menu(menu, slot, **kwargs) ` - Blender 2.8 Support ## 1.14.15 (2018.04.06) - [Move Edge Script](https://i.imgur.com/oV5lASt.mp4) (idea by [MickHanks](https://blenderartists.org/forum/showthread.php?392910&p=3299258&viewfull=1#post3299258)) - Bug Fixes ## 1.14.13 (2018.02.14) - [Call Pie Menus from Other Add-ons](https://i.imgur.com/zpCo97J.mp4) ## 1.14.9 (2017.10.24) - [Option to Hide Modal Sub-Hotkey](https://wiki.blender.org/uploads/7/7f/Pme1.14.9_modal_hide_hotkey.png) - Bug Fixes ## 1.14.7 (2017.10.15) - [New Modal Operator Options](https://wiki.blender.org/uploads/c/cd/Pme1.14.7_modal_adv_settings.png) - [Customizable Modal Overlay Text](https://i.imgur.com/Q1nlcm5.mp4) - `custom_icon()` Function - `**kwargs` for {ref}`open_menu() ` Function - Bug Fixes ## 1.14.6 (2017.10.07) - [Macro Operator Tutorial](https://youtu.be/-RQFK1kqqVw) by [Jimmy Livefjord](https://blenderartists.org/forum/member.php?104883-jimpaw80) - Fixed Hotkey tab ## 1.14.3 (2017.09.27) - [Popup Area's On-Open command](http://i.imgur.com/Gu3nRSV.mp4) - Modal Operators: - Angle properties support - [Cursor is locked in the current area](http://i.imgur.com/ekVYd6y.mp4) - [Panning](http://i.imgur.com/xB3H3Ll.mp4) (unlocks the cursor) - [Stack Key Tutorial](https://youtu.be/-rknBwAPypk) by [Jimmy Livefjord](https://blenderartists.org/forum/member.php?104883-jimpaw80) - Bug Fixes ## 1.14.2 (2017.09.22) - [Popup Area](http://i.imgur.com/rumYTRt.gifv) - Modal Subsurf Modifier Example - Bug Fixes ## 1.14.1 (2017.09.19) - {ref}`Copy/Paste Item hotkeys ` - Maximize Button - Bug Fixes ## 1.14.0 (2017.09.17) - [Modal Operator Editor](../editors/modal_operator_editor.md) - {ref}`Toolbars ` - {ref}`Tweak Hotkeys ` - 1 Hotkey - 3 Pie Menus - `'Any'` Hotkey Modifier - {ref}`RMB Context Menu Entry ` - Blender 2.8 Support - [Hide Pie Menu Title](https://wiki.blender.org/uploads/e/ef/Pme1.14.0_pm_title.png) - [Expand Item Menu](https://wiki.blender.org/uploads/b/b7/Pme1.14.0_expand_item_menu.gif) - [Group Menus by Type/Hotkey](https://wiki.blender.org/uploads/6/60/Pme1.14.0_group_by.png) - {ref}`New Global Functions ` - **Pop-up Dialog Editor**: - {ref}`'Pop-up' Mode ` - {ref}`Alignment tools ` - {ref}`Hotkeys ` - {ref}`New way to expand popup dialogs ` - [Resize All Rows](https://wiki.blender.org/uploads/9/99/Pme1.14.0_resize_all.png) ## 1.13.6 (2017.06.10) - [Open existing panel in a popup](https://wiki.blender.org/uploads/b/b9/Pme1.13.5_popup.png) - Bug fixes ## 1.13.4 (2017.04.09) - [Group and filter menus by custom tags](https://wiki.blender.org/uploads/4/4d/Pme1.13.4_tags.png) - [Block UI](https://wiki.blender.org/uploads/b/bf/Pme1.13.4_block_ui.png) option for Sticky Keys ## 1.13.1 (2017.02.23) - [Columns with Fixed Width](https://wiki.blender.org/uploads/e/e2/Pme1.13.1_fixed_columns.gif) - [Dummy Modal operator](https://wiki.blender.org/uploads/0/0d/Pme1.13.1_dummy_modal.gif) Can be used to pause Macro Operator (press Enter or LMB to resume) - Removed unstable [Auto-Close Popup Dialog](https://wiki.blender.org/uploads/e/ea/Pme1.13.0_adv_options.png) option - Bug Fixes ## 1.13.0 (2017.02.19) - [Macro Operator Editor](https://www.youtube.com/watch?v=x4HhN4aHCxg) - [Command Generator](https://wiki.blender.org/uploads/f/f4/Pme_item_edit.png) - [Poll method](https://wiki.blender.org/uploads/e/ea/Pme1.13.0_adv_options.png) - [Auto-Close Popup Dialog](https://wiki.blender.org/uploads/e/ea/Pme1.13.0_adv_options.png) - [Updated tree view & new Show Only New Menus filter](https://wiki.blender.org/uploads/9/9d/Pme_tree.png) - Compatibility with Blender Tabs Interface add-on ## 1.12.1 (2016.12.12) - [Sticky Key Editor](https://youtu.be/pcFOPWnHC7U) - [Option to disable 'Confirm on Release' feature for pie menus](https://s3.amazonaws.com/markets-rails/uploads%2F1480675508687-pme1.12.0_confirm_on_release.png) ## 1.11.4 (2016.11.13) - [Adding command using context menu](https://static-2.gumroad.com/res/gumroad/1512858036361/asset_previews/38ea290af3476c74fd8b832e4b4351de/retina/pme1.11.3_copy.gif) - [Side panel editor](https://youtu.be/BGs0de6ZYdw) - [Hiding unused panels](https://youtu.be/z19c6b7XOWo) - [Restoring mouse position for pie menus](https://cgcookiemarkets.com/app/uploads/edd/2016/10/pme1.11.0_mouse_pos.jpg) - [Using popup dialogs inside popup dialogs](https://cgcookiemarkets.com/app/uploads/edd/2016/10/pme1.11.0_expand_pd.jpg) ## 1.10.1 (2016.07.30) - [Stack Keys](https://youtu.be/4wZKiyKE_P4) - [Ability to use mouse buttons as a hotkey modifier](https://youtu.be/9cGWQF6L4o4) - [Displaying the name of the last stack key command](https://cgcookiemarkets.com/app/uploads/edd/2016/07/pme1.10.1_sk_settings.png) - [Context sensitive menus examples](https://youtu.be/m8pCPZdK_qc) ## 1.9.2 (2016.05.17) - [Script editor](https://youtu.be/A81jLLynssk) - [Double click mode](https://youtu.be/8XUvscCCviA) - [Customizable Ctrl+Shift+` hotkey](https://cgcookiemarkets.com/app/uploads/edd/2016/04/pme1.9.0_prefs_settings.png) - Hotkeys to confirm (Enter) and cancel (Esc) item/icon editing ## 1.8.3 (2016.04.08) - [Panel mode and Panels](https://youtu.be/-fhI2imoo4U) - [Sticky Keys](https://youtu.be/5zDp586Uy2w?t=57) - [Threshold and Confirm Threshold for Pie Menus](https://youtu.be/5zDp586Uy2w) - [Tree view](https://wiki.blender.org/uploads/9/9d/Pme_tree.png) - Customizable width of the list/tree ## 1.7.0 (2016.02.16) - [Custom layout using python code](https://youtu.be/sF10rVDVo-k) ## 1.6.0 (2016.01.19) - Multi-column regular menus - Open regular menu on mouse over ## 1.5.2 (2016.01.11) - Copy/Paste Row (Popup dialog) - Preview of the menus - External python scripts as a command ## 1.4.1 (2015.12.09) - Popup dialog editor - Pie menus with more than 8 buttons ## 1.3.0 (2015.11.28) - Custom icons - Hotkey as a command ## 1.2.0 (2015.10.26) - Regular menu editor - Multiple keymap names - New icon selection mode ## 1.1.5 (2015.10.15) - Pie Menu Editor