修飾キーとタイミング
ジェスチャ トリガーでは、修飾キー (ジェスチャと共に押したままにするか押すキーボードのキーや追加のマウス ボタン) を必須にできます。これにより、同じ形状でも修飾キーごとに別のアクションを実行できます。このページでは正確なルールを説明します。ホットキー トリガーにも修飾キーがありますが、ルールはより単純です (ホットキーの修飾キーを参照)。
修飾キーを選ぶ
修飾キーは、アクション エディターのジェスチャ トリガーの一部です。
- アクション ページでアクションを開き、そのジェスチャ トリガーを展開します。
- 修飾キー で、ジェスチャに必要な各キーやボタンをクリックします ①。もう一度クリックすると外れます。
- 詳細モードでは、タイミング ② で 前、後、どちらでも のいずれかを選びます。
- 詳細モードでは、キーボードの修飾キーを選んでいる場合に、アクションの実行中に押したままのキーをどうするかを選びます ③ (押されたままの修飾キーを参照)。
選べる修飾キー:
| 修飾キー | 該当するもの |
|---|---|
| Ctrl、Shift、Alt、Win | 左右どちらのキーでもかまいません。左の Ctrl も右の Ctrl も Ctrl です。 |
| 左ボタン、中ボタン、右ボタン、サイド ボタン 1、サイド ボタン 2 | 描画に使うボタン以外のマウス ボタン。 |
Windows でマウス ボタンが入れ替えられている場合、ボタンの名前は Windows に従います。右ボタンはコンテキスト メニューを開くボタンです。
詳細モード。 タイミング と 押されたままの修飾キー は詳細モードでだけ表示されます。シンプル モードでは、新しいジェスチャ トリガーは どちらでも と 離してから元に戻す を使います。シンプル モードが、詳細モードで設定した値を変更することはありません。
完全一致のルール
ジェスチャは、描いている間に 2 組の修飾キーを記録します。
- 前から押していたもの: 描画ボタンを押した時点で押していたキーとマウス ボタン、および直前のホイールの回転 (ホイールの回転)。
- 途中で押したもの: ジェスチャが始まった後に押したすべてのキーとマウス ボタン。描き終える前に離しても、キーはこの組に残ります。押す前から押していたキーは、どれだけ長く押していても、途中で押したものには数えられません。
トリガーの修飾キーは、これらの組のいずれかと 完全に 一致する必要があります。一部が一致するだけでは足りず、余分なキーも無視されません。
- Shift を必要とするトリガーは、Shift と Alt を押している間は一致しません。
- Shift と Alt を必要とするトリガーは、Shift だけを押している間は一致しません。
2 つの組が組み合わされることはありません。Shift を前から押していて、途中で Ctrl を押すと、前は「Shift」、途中は「Ctrl」になります。どちらの組も「Shift と Ctrl」ではないため、両方のキーを必要とするトリガーは一致しません。
タイミング
タイミングは、トリガーが 2 つの組のどちらを確認するかを表します。
| タイミング | トリガーが一致する条件 |
|---|---|
| 前 | 前から押していたキーが修飾キーと等しい。途中で押したものは関係ありません。 |
| 後 | 途中で押したキーが修飾キーと等しい。前から押していたものは関係ありません。 |
| どちらでも | どちらかの組が修飾キーと等しい。 |
構成ウィンドウで作成した新しいジェスチャ トリガーは どちらでも を使います。構成ファイルにタイミングなしで書かれたジェスチャ トリガーは 前 を使います。
修飾キーなしは、まったくなしの意味
修飾キーのないトリガーは、タイミングのルールの例外です。両方 の組が空の場合、つまり描画ボタンを押したときに何も押しておらず、描いている間に何も押さず、直前のホイールの回転もない場合にだけ一致します。タイミングは関係ありません。
そのため、修飾キーなしのジェスチャが、修飾キー付きの変形より優先されることはありません。あるアクションに修飾キーなしの 左へスワイプ があり、別のアクションに Ctrl、後 の 左へスワイプ がある場合、描いている間に Ctrl を押すと、一覧の順序にかかわらず常に 2 つ目のアクションが実行されます。
時系列の例
これらの例では、描画ボタンは右ボタンで、Ctrl は既定どおり無視する修飾キーです (無視する修飾キー)。
| 操作 | 前から押していたもの | 途中で押したもの | 一致する | 一致しない |
|---|---|---|---|---|
| Shift を押したまま、右ボタンを押して描き、離す。Shift を離す。 | Shift | (なし) | Shift 前、Shift どちらでも | Shift 後、修飾キーなし |
| 右ボタンを押して描き始め、Ctrl を押して離し、描き終えて離す。 | (なし) | Ctrl | Ctrl 後、Ctrl どちらでも | Ctrl 前、修飾キーなし |
| Shift を押したまま右ボタンを押し、描いている間に Alt を押して離す。 | Shift | Alt | Shift 前、Alt 後、Shift どちらでも、Alt どちらでも | Shift と Alt (どのタイミングでも) |
| Shift と Alt を押したまま、右ボタンを押して描き、離す。 | Shift、Alt | (なし) | Shift と Alt の前またはどちらでも | Shift 前 |
| 右ボタンを押して描き、Shift を押して離し、次に Alt を押して、離す。 | (なし) | Shift、Alt | Shift と Alt の後またはどちらでも | Shift 後、Alt 後 |
| Ctrl を押したまま右ボタンを押す。 | なし: Ctrl は無視する修飾キーなので、右クリックは通常のクリックとしてウィンドウに届き、ジェスチャは始まりません。 | |||
| 左ボタンを押したまま、右ボタンを押して描き、離す。 | 左ボタン | (なし) | 左ボタンの前またはどちらでも | 修飾キーなし |
| 右ボタンを押して描き、中ボタンをクリックして、離す。 | (なし) | 中ボタン | 中ボタンの後またはどちらでも | 修飾キーなし |
| ホイールを回し、0.5 秒以内に右ボタンを押して描く。 | ホイール | (なし) | 構成ウィンドウで作成したトリガーはどれも一致しない | 修飾キーなし |
3 行目のように、同じアプリ グループで複数のトリガーが一致する場合は、照合順序で最初のものが実行されます (照合)。
修飾キーとしてのマウス ボタン
- 前から押していたもの。 描画ボタンを押したときに押していたマウス ボタンです。そのボタンの押下は、まだジェスチャが実行されていなかったため、既にポインターの下のウィンドウに届いています。
- 途中で押したもの。 描いている間に押したマウス ボタンです。その押下と解放はポインターの下のウィンドウには渡されず、ジェスチャにだけ数えられます。これには 2 つ目の描画ボタンも含まれます。ジェスチャ中に押した描画ボタンは修飾キーであり、新しいジェスチャの開始ではありません。
ジェスチャ中に押したボタンについても、マウス ボタンのグローバル イベントは発生します (グローバル イベント)。
ジェスチャの前から押しておけないキー
ジェスチャが始まる前から押しておけない修飾キーは 2 種類あります。
- 無視する修飾キー。 描画ボタンを押すときにこれを押していると「今回はジェスチャなし」という意味になるため、ジェスチャは始まりません (無視する修飾キー)。
- 描画ボタン。 描画ボタンを押すと独自のジェスチャが始まるため、別のジェスチャを待って押しておくことはできません。
タイミングが 前 の場合、修飾キーの選択ではどちらも受け付けられず、拒否されたチップをポイントすると理由が表示されます。後 または どちらでも の場合は、ジェスチャ中に押せば機能するため、選ぶことができます。既にそのように設定されているトリガー (たとえば構成ファイルで) では、チップが赤で表示され、その下に理由が示され、前から押していたものの組では決して一致しません。
ホイールの回転
描画ボタンを押す直前にマウス ホイールを回すと、前から押していた修飾キーとして数えられます。どれだけ直前かは、全般 ページの ホイール修飾の受付時間 で設定します (既定値 500 ms)。描いている間にホイールを回すと、途中で押したものとして数えられます。ホイールの上方向と下方向は別々の修飾キーです。
エンジンはホイールの修飾キーを照合しますが、修飾キーの選択には表示されないため、構成ウィンドウで作成したトリガーがそれを持つことはありません。そのようなトリガーは、スクロール後ホイール修飾の受付時間内に始めたジェスチャには一致しません。直前のホイールの回転が、トリガーに含まれていない修飾キーになるためです。これは仕様です。スクロール直後に描くことが多い場合は、ホイール修飾の受付時間 (詳細モード) を短くしてください。0 にすると、それより前のホイールの回転は数えられません。ホイールを対象とする除外ゾーンの中でのホイールの回転は、決して数えられません。
押されたままの修飾キー
アクションが始まるとき、トリガーのために押していたキーがまだ押されていることがあります。テキストを入力したりキーを押したりするアクションは、Ctrl や Alt が押されたままの状態でそれらを送ってしまいます。押されたままの修飾キー で、どうするかを選びます。
- 離してから元に戻す (新しいトリガーの既定)。アクションの実行前に、エンジンはトリガーが一致した修飾キーを離します。前と後のアクションを含めてアクションが終わると、実際にまだ押しているキーだけを再び押します。離している間はキーのリピートが保留されるため、押したままのキーがアクションの途中で再び押されることはありません。自分で離して押し直したキーは、そのままにされます。
- 押したままにする。何も離しません。アクションのスクリプトが自分でキーを処理します。構成ファイルにこの設定なしで書かれたトリガーは 押したままにする を使います。
ジェスチャの場合、離されるのはキーボードの修飾キーだけで、押したままのマウス ボタンは決して離されません。この選択は、トリガーにキーボードの修飾キーがある場合にだけ表示されます。アクションの実行中に入力の処理が止まった場合 (たとえばエンジンが無効になった場合)、何も押し直されません。
修飾キーによる実行アクションの決まり方
修飾キーはトリガーの条件の 1 つで、ジェスチャ、描画ボタン、アクティブなプロファイル、およびアプリ グループが使っている場合は領域と共に確認されます。修飾キーによって、どのアプリ グループのアクションが最初に試されるかが変わることはありません。
- ジェスチャを始めたウィンドウのアプリ グループが最初に試されます。そこでトリガーが一致したアクションは、グローバルのアクションも一致する場合でも実行されます。
- グループ内では、アクションは照合順序で試され、最初に一致したトリガーが優先されます。領域がオンの場合は、一致したトリガーのうちセルが最も少ないものが優先され、同数の場合は順序で決まります (スコープとフォールバック)。
- グループ内で何も一致しない場合にだけ、フォールバックがオンであれば、ジェスチャはグローバルにフォールバックします (スコープとフォールバック)。
アクション エディターは、同じジェスチャで条件を満たせる 2 つのトリガーが 1 つのグループにある場合、最初のものが 2 つのうち狭いほうでない限り、それを指摘し、どちらが優先されるかを示します。
ホットキーの修飾キー
ホットキーの修飾キーは Ctrl、Shift、Alt、Win で、完全に一致する必要があります。Ctrl+K は Ctrl+Shift+K では実行されません。ホットキーにはタイミングもマウス ボタンの修飾キーもありません。ホットキーを参照してください。