Houdini 20.5 基本

ホットキーの構成

On this page

概要

Note

Houdini20.0から、ホットキーバインドは、<modifiers> + <unmodified_key>で指定するようになりました。 バインド内のこの<unmodified_key>には、どのUnicode文字も使用することができます。 キーマップファイルとオーバーライドファイルにはUTF-8エンコードを使用します。 あなたの.keymapファイルがHoudini19.5またはそれ以前のものだった場合、<modifiers> + <unmodified_key>バインドを使用するように変換ことができます。

Note

Houdini20.5から、Houdiniは新しいホットキー解決とコンテキストのシステムを使用するようになりました。 ホットキーシステムの移行を参照してください。

  • 左側のペインは、 コンテキスト のツリーを表示します。

    コンテキスト毎にホットキーが存在します。異なるコンテキストの異なるアクションには同じキーを割り当てることができます。 より高いレベルのコンテキスト(例えば、トップレベルの“Houdini”コンテキスト)のホットキーは、特定のコンテキストの同じホットキー(例えば、ジオメトリビューアのSelectツール)によって上書きされます。

    ⌦ Delなどの一部のホットキーは、ほとんどの別のコンテキストで同じアクションに割り当てられています。

  • 中央のペインは、現在選択されているコンテキストの アクション のリストを表示します。

  • 右側のペインは、現在選択されているアクションの説明と、そのアクションに割り当てられているホットキーのリストを表示します。

  • 下側のペインは、選択したコンテキストに現在割り当てられているキーのキーボード図を表示します。

キーボード図

表示

説明

選択した(現行)コンテキストに割り当てられているキーが単色の暗いカラーで表示されます。

利用可能でも現行コンテキストに割り当てられていないキーが単色の明るいカラーで表示されます。

より低い(より特化した)レベルのコンテキストに割り当てられているホットキーは、明るい縞模様で表示されます。このコンテキストのアクションにキーを割り当てることができますが、より特化したコンテキストに進むと、そのキーが上書きされることに注意してください。

より高い(より一般的な)レベルのコンテキストに割り当てられているホットキーは、より目立った暗い縞模様で表示されます。このコンテキストのアクションにキーを割り当てることができますが、このコンテキストでは、より一般的なホットキーを上書きすることに注意してください。

このキーの割り当てを確認すると、下位コンテキストと上位コンテキストの両方の既存の割り当てが表示されます。

Tip

  • 仮想キーボード上のShift, Ctrl, Command, Altの修飾キーをクリックすると、それらの修飾キーを使用しているキーの割り当てを確認することができます。

  • キーをクリックすると、すべてのコンテキストでのそのキー(と修飾子)に対するすべての割り当てを確認することができます。

ホットキーの編集

To...Do this

ホットキーエディタを開く

メインメニューから Edit ▸ Hotkeys を選択します。

インターフェース内の項目からホットキーエントリを探す

  • インターフェース内の項目(例えば、ツールバーボタンやメニュー項目)を⌃ Ctrl + Alt + ⇧ Shift + クリックすると、ホットキーエディタにその項目が開かれます。

    または

  • そのアクションに関係するワードをホットキーエディタのフィルターボックスにタイプします。

キーに割り当てられているアクションを検索する

  • ウィンドウの下部にある仮想キーボード上のキーをクリックします。

    または

  • キーテキスト(例えば、Shift+L)をホットキーエディタのフィルターボックスにタイプします。

ホットキーをアクションに割り当てる

  1. ホットキーエディタでそのアクションを検索します。

  2. 右側のペインで、ホットキーのリスト内の add mappingの行をダブルクリックします。

  3. 割り当てたいホットキーをタイプします(または、ウィンドウの下部にある仮想キーボード上のキーをクリックします)。

他のアクションのホットキーを参照しているホットキーを割り当てる

  1. ホットキーエディタで、ホットキーを割り当てたいアクションを探します。

  2. 右側のペインのホットキーのリスト内の Add Ref をクリックします。

  3. Choose Reference Commandウィンドウで、ホットキーに参照させたいコンテキストのアクションを選択します。

詳細は、キーバインドの参照を参照してください。

アクションからホットキーを削除する

  1. ホットキーエディタでそのアクションを検索します。

  2. 右側のペインで、ホットキーの隣りにある Removeボタンをクリックします。

干渉の解決

ホットキーをアクションに割り当てる時、そのキーが既により高い(より一般的な)またはより低い(より特化した)コンテキストに割り当てられていた場合、Houdiniは、そのホットキーリスト内のキーの隣に警告アイコンを表示します。

ホットキーを選択すると、ホットキーエディタは、干渉の可能性を示唆したメッセージを表示します。

干渉は問題がないことが多いです 。特定のコンテキストのキーは、より一般的なコンテキストのそれと同じキーを上書きするので、ほとんどの場合では気にする必要はありません。

例えば、モデリングツールで作業し、アニメーションを行なわない場合、Kキーを割り当てることで、それがSet Keyframeキーを上書きしても気にする必要がありません。

しかし、そのキーを編集して干渉を解決したいのであれば、選択肢がいくつかあります:

  • 選択したアクションからホットキーを削除または変更するには、そのホットキーの隣にある Deleteボタンをクリックします。

  • キーが割り当てられている 他の アクションからホットキーを削除するには、干渉メッセージ内の Remove other をクリックします。

  • キーが割り当てられている 他の アクションのホットキーを変更するには、 Edit other をクリックして、ホットキーエディタ内の他のアクションにジャンプします。

Radialメニューをホットキーに割り当てる

  1. ホットキーエディタで、radialをフィルタリングするか、左側のペインのツリーをブラウズしてRadialメニューを含んだコンテキストを選択します。

    • 3Dビューア用のコンテキストは Houdini ▸ Panes ▸ Geometry Viewers です。

    • ネットワークエディタ用のコンテキストは Houdini ▸ Panes ▸ Network Editor です。

    このコンテキストには、Radialメニューエディタ( Edit ▸ Radial Menus )で定義されているRadialメニューに相当するアクションが含まれています。

    キーに対して新しいRadialメニューを作成したいのであれば、まず最初にRadialメニューエディタで新しいメニューを作成します。次に、ホットキーエディタに戻って、そのメニューをキーに割り当てます。

  2. 中央のペインで、キーを割り当てたいRadialメニューを選択します。

  3. 右側のペインで、 Add行をダブルクリックして、Radialメニューに割り当てたいキーを押します。

  4. Accept をクリックして、キーマップの変更を保存します。

Tip

WindowsとLinuxでは、 Radialポップアップメニューを開いて、メニューの名前を⇧ Shift + ⌃ Ctrl + Alt + クリックすることで、ホットキーエディタ内のそのメニューにジャンプすることができます。

Note

現在のUIには、いくつかのキーと融通性なく組み込まれたRadialだったHoudini16.0からの名残があり、将来のバージョンのHoudiniでは、キーに対してメニューをより自然に配置するためのインターフェースを用意する予定です。

キーマップの管理

  • キーマップ とは、アプリケーションに割り当てられたすべてのホットキーのセットのことです。Houdiniには、書き込み保護されたデフォルトのキーマップがインストールディレクトリ内に同梱されています。

  • デフォルトに変更を加えると、ホットキーエディタはプリファレンスディレクトリ内にその修正されたキーマップを保存します。

  • ▸ Save As を使用することで、新しいカスタムキーマップを作成することができます。

  • 別のキーマップに切り替えるには、ホットキーエディタの左上コーナーにある Keymap ドロップダウンメニューをクリックして、切り替えたいキーマップを選択します。

  • デフォルトのキーマップはUSキーボードレイアウトを対象にしています。一部のデフォルトのバインドは、必要な非修飾キーがないキーボードレイアウトでは動作しません。

Houdini19.5までのカスタムキーマップが<modifiers> + <unmodified_key>を使用するように移植する方法

バインドに修飾キーを使用していたHoudini19.5までのカスタムキーマップ(例えば、Shift+1の代わりに!を使用するキーマップ)は、以下のPythonスクリプトを使用して、<modifiers> + <unmodified_key>に相当するものに移植することができます。

import keymaputils

keymaputils.applyMappingToKeymapFile("/path/to/input.keymap",
                                     keymaputils.mappingLegacyShiftedUS,
                                     "/path/to/output.keymap")

キーマップファイルを別のキーボードレイアウトに移植する方法

(Houdini20.0から導入された新しい)<modifiers> + <unmodified_key>バインドを使用したキーマップは、Pythonスクリプトによって、キーボードレイアウトを別のキーボードレイアウトに移植することができます。

例えば、以下のスクリプトは、USレイアウト用のキーマップをFrench AZERTYレイアウトに変換します。 このスクリプトは、ほとんどの文字キーバインドを同じままに、非文字キーを物理位置で置き換えます。

import keymaputils

# NB: 空っぽの文字列へのマッピングは、そのキーを使用しているすべてのバインドを除去します。
mapping = {
    '`' : '',
    '1' : '&',
    '2' : 'É',
    '3' : '"',
    '4' : '\'',
    '5' : '(',
    '6' : '-',
    '7' : 'È',
    '8' : '_',
    '9' : 'Ç',
    '0' : 'À',
    '-' : ')',

    '[' : '',
    ']' : '$',
    ';' : 'M',
    '\'': 'Ù',
    'M' : ',',
    ',' : ';',
    '.' : ':',
    '/' : '!'
}

keymaputils.applyMappingToKeymapFile("/path/to/input.keymap2",
                                     mapping,
                                     "/path/to/output.keymap2")

ホットキーシステムの移行

Houdini20.5から、Houdiniは新しいホットキー解決とコンテキストのシステムを使用するようになりました。 (20.0までの)古いシステムでは、コンテキストは、アクションを含んだカテゴリで、それらのアクションにキーバインドが含まれていました。新しいホットキーシステムでは:

  • カテゴリは、アクション定義用のコンテナです。

  • コンテキストは、そのアクションのキーバインド用のコンテナです。

ホットキー解決は、複数のキーイベントハンドラーに振られた個々のキーバインドを個別に比較するのではなくて、アクティブなコンテキスト内のすべてのキーバインドに対して行なわれるようになりました。 キーイベントハンドラーとは、ウィジェットやコールバックなどのHoudini内のキーイベントを処理するものの総称です。 特定のアクションを複数のコンテキスト内でバインドさせることもできます。 例えば、あるキーがあるビューアステートコンテキスト内のハンドルアクションをトリガーすると同時に、別のキーが別のビューアステートコンテキスト内でそれと同じアクションをトリガーすることができます。

Warning

あるキーがあるコンテキスト内のあるアクションにバインドされていて、Houdiniがそのコンテキストに対して解決をしている場合、 そのキーは、そのアクションを実行するかどうかに関係なく、そのアクションで解決されます。 これが原因で、ホットキーが干渉していると問題が発生する可能性があります(干渉の解決を参照)。

Houdini20.5では、新しいコンフィグファイル、キーマップ、キーマップオーバーライドのファイルフォーマットのセットを使用します。 このキーマップファイルの拡張子は、.keymapではなく.keymap2を使用します。 Houdiniは、以前のバージョンの.keymapファイルを20.5の.keymap2ファイルに自動変換しませんが、Pythonスクリプトを使用することで、手動でファイルを作り直すことなく、その古いバージョンのファイルから古いキーバインドを取り込むことができます。

Note

キーマップオーバーライドファイルを使用して新しいホットキーとコンテキストを定義することは、推奨していません。 その理由は、Houdiniはラベルと説明を.keymap2ファイルと.keymap2.overridesファイルに保存しないからです。 HoudiniはHOUDINI_UI_PATHにあるベースのコンフィグファイルのすべてのコピーを読み込むので、代わりに、コンフィグファイルを使用してください。

コンフィグファイル

Houdini20.0までは、HOUDINI_UI_PATH内の最初のhoudini/config/Hotkeys/Hotkeysファイルでデフォルトを設定していました。 このファイルでは、コンテキスト、ホットキー、キーバインドを行単位の形式で定義していました。 Hotkey Managerで変更を行なった時に特定のキーマップを保存するキーマップオーバーライドファイルも同じく行単位の形式でした。

Houdini20.5から、以下のファイルがデフォルトのホットキー構成を含んでいて、JSON形式になっています。 これらのファイルは、HOUDINI_UI_PATHにあって、起動時に読み込まれます。

ファイル

説明

houdini/config/Hotkeys/HotkeyActions.json

ホットキーのカテゴリとアクションを定義します。 カテゴリは、アクションを整理するためのネームスペースです。

カテゴリは、リストされている名前をx.y.z(例えば、h.pane.wsheet)で指定します。 この文字列は、Houdini20.0まではカテゴリではなくコンテキストでした。 アクションは、そのx.y.zの後の単語(例えば、h.pane.wsheet.homeだとhomeがそれです)で指定します。

Note

たいていの場合、コンテキストとカテゴリは、名前を共有しています(例えば、h.pane.wsheet)。 コンテキストには任意のカテゴリのアクションのバインドを含めることができるので、コンテキストとカテゴリは技術的には互いに独立していますが、 h.pane.wsheetコンテキスト内のキーにバインドされているほとんどのアクションは、h.pane.wsheetカテゴリに属しています。

houdini/config/Hotkeys/HotkeyContexts.json

ホットキーコンテキストを定義します。 ホットキーコンテキストとは、アクションのキーバインド用のコンテナです。

houdini/config/Hotkeys/HotkeyDefaultBindings.json

ホットキーコンテキストにデフォルトのキーバインドを設定します。 コンテキスト内のほとんどのキーバインドは、関連するアクションカテゴリのアクションに割り当てられています。 例えば、h.pane.wsheetコンテキスト内のh.pane.wsheet.homeバインドがそうです。

コンテキストには、任意のアクションへのバインドを持たせることもできます。 例えば、h.pane.wsheetコンテキスト内にh.quitアクションへのバインドを含めることができます。 これは、ネットワークエディタ内でHoudiniを終了させるキーをバインドします。 キーを特定のアクションに解決することと、そのアクションを実行できることは、互いに独立しています。 アクションを実行するには、キーバインドがh.pane.wsheetコンテキストに対して解決するウィジェット階層内で、そのアクションを認識するキーハンドラーが必要です。 Hotkey Managerでは、このような類のキーバインドを作成することはできませんが、HotkeyDefaultBindingsファイル、キーマップファイル、キーマップオーバーライドファイルを介して、または、HOM APIを介することで作成することができます。

キーバインドの取り込み

Houdini20.0またはそれ以前の.keymapファイルのキーバインドをHoudini20.5の.keymap2ファイルに取り込むには、以下の手順に従ってください。 あなたの.keymapファイルがHoudini19.5またはそれ以前のものである場合、まず最初に、そのキーマップファイルが<modifiers> + <unmodified_key>バインドを使用するように変換する必要があります。 詳細は、Houdini19.5またはそれ以前のカスタムキーマップが<modifiers> + <unmodified_key>バインドを使用するように変換する方法を参照してください。

Note

キーバインドの取り込みで問題が発生したら、.keymap2ファイルを編集してその見つからないエントリを追加するか、または、keymaputilsPythonモジュールのソースを使用して特定のケースを解決する独自の関数を記述すると良いでしょう。

  1. Editメニューから Hotkeys を選択して、Hotkey Managerを開きます。

  2. ギアメニューから Export を選択します。

  3. 生成したい.keymap2ファイルのパスを入力します。これは、Pythonを介して生成する新しい.keymap2ファイルのベースとなります。

  4. Accept をクリックします。

  5. キーバインドを取り込みたい古い.keymapファイルのパスをメモします。

  6. Pythonシェルウィンドウで、以下のスクリプトを実行します。

    1. import keymaputils

    2. keymaputils.importV1KeymapBindingsToKeymapFile("<path to base keymap2 file>.keymap2”, “<path to old keymap file>.keymap”, "<path to write new keymap2 file with old bindings>.keymap2”, "<label name for keymap2>")

      keymaputils.importV1KeymapBindingsToKeymapFile("/houdini/config/base_file.keymap2”, “/houdini/config/old_file.keymap”, "/houdini/config/new_file.keymap2”, "KeymapName")

キーバインドの参照

異なるコンテキスト内のアクションのキーバインドを参照するキーバインドを作成することができます。 デフォルトのHotkey Manager構成には、そのようなキーバインドがいくつか含まれています。 サンプルの参照を確認したいのであれば、Hotkey Managerで Houdini ▸ Panes ▸ Geometry Viewers ▸ Modeling Viewer ▸ Input Selector Triggers を選択します。

参照は、よく使用する高レベルなキーバインド(例えば、h.copy)を特定の設定内で使用したい時に役立ちます。 また、参照は、あるコンテキスト内のキーバインドのサブセットを別の場所で使用したい場合にも役立ちます。 例えば、ネットワークを持つほとんどのペインは、ネットワークを操作できるようにするために、h.pane.wsheet内のバインドのサブセットを使用しています。 参照によって、このようなキーバインドを別のコンテキストに分離させて、ネットワークを持つほとんどのペインがh.pane.wsheetの他のすべてのバインドを解決することなくキーバインドを解決できるようにすることができます。

システムを元に戻す

Houdiniを起動する前にHOUDINI_NEW_HOTKEY_SYSTEM環境変数を0に設定することで、Houdini20.0までのホットキーシステムに戻すことができます。 新しいシステムで予期せぬ問題に遭遇したり、古いシステムを多用していて移行に時間がかかるようでしたら、古いホットキーシステムに戻すと良いでしょう。 古いシステムに戻す機能は、Houdini21.0で削除される予定です。

Tips

  • コンテキストツリー内でアクションをブラウズするのは、非常に不便です。ホットキーエディタ内のフィルターボックスを使ってアクションを検索するか、ユーザインターフェース内の項目を⌃ Ctrl + Alt + ⇧ Shift + クリックした方が簡単です。

    Note

    現在のレガシーのコンテキストのカテゴリは、直感的でありません。将来のバージョンでは、それらのコンテキストを整理したいと思っています。

  • 選択したアクションを出荷時のデフォルトのホットキーに戻すには、 ▸ Reset ▸ Command をクリックします。

  • 選択したコンテキスト内のすべてのアクションを出荷時のデフォルトのホットキーに戻すには、 ▸ Reset ▸ Context をクリックします。

  • キーマップ全体を出荷時のデフォルトに戻すには、 ▸ Reset ▸ All をクリックします。

基本

はじめよう

次のステップ

カスタマイズ

導師レベル