Sticky Key Editor¶
Sticky Key は、キーを押したときと離したときに、それぞれ指定した処理を実行するエディターです。値の保存と復元を組み合わせると、押している間だけ別の状態にできます。On Press / On Release の固定 2 スロット構成で、押下解放のペアとして動作します。
このページは PME 2.1 の設定を対象にしています。
構成ガイド — 機能・組み合わせ・活用例(AI 向け)
呼び名:Sticky Key/種別 ID:STICKY。
押下と解放に別々の処理を割り当てる機能です。「押している間だけ別の状態」は、その二つの処理を組み合わせて作ります。
入力:On Press / On Release の固定2スロット。Command または Hotkey を設定します。スロットへ。
制約:並び替え、追加、削除、個別無効化はありません。解放側の処理を設定しなければ、自動で元の状態へ戻るわけではありません。
値を一時変更する:一つのプロパティ代入なら Save and Restore Previous Value で保存・復元コードを生成します。保存する値は実行時に読みます。
組み合わせ:常用ツールと一時ツールの切り替え、3D Viewport の表示切り替えに使います。処理全体を待たせたい用途では Block UI の意味と呼び出し元を確認します。
実行条件:押下と解放の両方で参照する対象が有効であること、起動キーの解放を受け取れることを確認します。別のエリア・モードへ移動する運用を含めるなら、その場合の復元対象も決めます。
確認:最初の値を変えてから押下・解放を繰り返し、固定値への切り替えではなく元の値に戻ることを確認します。活用例へ。
変数の共有期間:一回の押下から解放まで、Command 間で保存値を共有します。変数の共有と復元へ。
画面と編集の流れ¶
1名前と基本操作キーの押下と解放に割り当てる設定全体の名前を確認します。
2Advanced settings説明、利用条件、保持中の UI ブロックを設定します。
3Keymap / Hotkey使う場所と保持するキーを指定します。この例は Pose の T キーです。
4押下と解放のスロット上が押したとき、下が離したときの処理です。この例はミラー設定の True / False です。
一覧で編集対象を選び、名前と有効状態を確認して、呼び出し方とスロットを設定します。 共通の一覧・検索・タグは エディターの共通要素、 各部は 名前、キー設定、 スロット、詳細設定を参照してください。
名前と基本操作¶
名前と有効状態で編集対象を確認します。タグ・名前変更・参照元などの操作は 選択メニューの設定 を参照してください。 この種別にはメニューのプレビューボタンはありません。
Keymap / Hotkey¶
呼び出す場所とキーを設定します。入力欄の操作は 共通の Hotkey 設定 を参照してください。
Sticky Key は押された瞬間と離した瞬間の両方を受け取って動作します。Ctrl / Alt / Shift 単独や OS レベルの予約キーは、プラットフォームや Blender の Keymap 優先順位の影響を受ける場合があります。詳細は キーマップの選び方 を参照してください。
スロット¶
Sticky Key は固定 2 スロットで、それぞれの役割は決まっています。
順序 |
スロット |
役割 |
|---|---|---|
1 |
On Press |
押した瞬間に走る処理(一時状態への切り替え) |
2 |
On Release |
離した瞬間に走る処理(元の状態への復帰) |
スロットの並び替え・追加・削除・無効化はできません。
Save and Restore Previous Value¶
On Press に一つのプロパティ代入を設定すると、スロットの編集で保存・復元コードを生成できます。たとえば 3D Viewport の床グリッドを一時的に隠すなら、次の代入を使います。
C.space_data.overlay.show_floor = False
ボタンを使うと、On Press と On Release の内容を次の形に書き換えます。
入力先 |
生成される処理 |
|---|---|
On Press |
実行時の現在値を |
On Release |
保存した |
保存するのはボタンを押して編集した時点の値ではなく、Sticky Key を実際に押した時点の値です。
既存の On Release の処理も置き換わるため、独自処理を設定済みの場合は生成後の両スロットを確認します。
パスは両方のタイミングで有効である必要があります。この例は C.space_data が 3D Viewport の状態で使います。
Advanced settings(詳細設定)¶
歯車から開きます。Description と Poll は 共通の詳細設定 を参照してください。
- Block UI:
Sticky Key の継続中、他のツールへ入力を渡さないための設定です。既定は OFF。画面の描画を止める設定ではありません。
コードと入力欄¶
この種別で使える入力は冒頭の構成ガイドを参照してください。入力欄の操作は 共通のスロットエディタ、コードは 書き方と入力制限、 コード例にまとめています。
活用例と確認する条件¶
ブラシやアクティブツールを一時的に切り替える¶
On Press で現在のブラシやツールを保存して切り替え、On Release で保存した対象へ戻す構成です。
ツールの切り替えには Blender の bpy.ops.wm.tool_set_by_id()、現在のツールの確認には
C.workspace.tools.from_space_view3d_mode(C.mode) が使われます。
取得結果がない状態、対象モードが変わった場合、ツール ID がそのモードにない場合の処理も決めます。
ブラシは Blender のバージョンによってアセットの扱いが異なります。旧版の
paint_settings().brush = D.brushes["Draw"] という例は、同名のブラシがあり、代入可能な版・モードでのパターンです。
現在の環境に無条件で貼り付けず、ブラシの取得・有効化方法を先に確認してください。
値の一時共有は U の例、外部スクリプトの使い方は 外部ファイルを実行する にまとめています。
ビューポートオーバーレイの一時切り替え¶
On Press スロットに次のコードを書き、Save and Restore を押します。On Release への復元コードは自動挿入されます。
C.space_data.overlay.show_floor = False
シェーディングモードの一時切り替え¶
C.space_data.shading.type = 'WIREFRAME'
Save and Restore で On Release に元のシェーディングへ戻すコードが挿入されます。
参考動画(原作者のチャンネル)¶
roaoao の動画一覧より。旧版の UI・手順を扱う参考動画です。