UDN
Search public documentation:

KeyBindsJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > 入力と出力 ホーム > キーバインド

キーバインド


概要


「Unreal Engine 3」で用いられるキーバインドは、非常に柔軟です。そのほとんどは コンフィギュレーションファイル で定義されます。UnrealScript とともに動作しますが、さまざまなことが容易になる非常に便利な機能が備わっています。

定義


キーバインドは複数のプロパティによって定義されます。

  • Name (名前) - キーバインドの名前です。エイリアスか、あるいはマッピングされたキーのどちらかにすることができます。
  • Command (コマンド) - キーバインドがアクティベートされたときに実行するコマンドです。
  • Control (コントロール) - このキーバインドがアクティベートするには、Control キーが押下されなければなりません。
  • Shift (シフト) - このキーバインドがアクティベートするには、Shift キーが押下されなければなりません。
  • Alt (オルト) - このキーバインドがアクティベートするには、Alt キーが押下されなければなりません。
  • bIgnoreCtrl (Ctr による無視) - Control キーが押下されている場合は、このキーバインドが無視されます。
  • bIgnoreShift (Shift による無視) - Shift キーが押下されている場合は、このキーバインドが無視されます。
  • bIgnoreAlt (Alt による無視) - Alt キーが押下されている場合は、このキーバインドが無視されます。

キーバインド エイリアシング


キーバインドは、 Name (名前) がマッピングされているキーのどれにも一致しない場合に、エイリアス化されます。エイリアス化されたキーバインドは、コマンドとして使用することができます。これによって、複数のキーが 1 つのエイリアス (あるいは複数のエイリアス) にマッピングできるようになります。これが特に便利になるのは、エイリアスのコマンドがかなり複雑で頻繁に複製される場合です。

次のエイリアス化されたキーバインドでは、キーバインドによって、ダッキング / クラウチング (身をかがめること) が制御されています。このエイリアスの名前は、GBA_Duck です。アクティベートされると Duck を呼び出し、入力変数 aUp を -1.0 にセットし、AbsoluteAxis を 100 にします。 このエイリアスは、無効化されると UnDuck を呼び出し、入力変数 aUp を -1.0 にセットし、AbsoluteAxis を 100 にします。

Bindings=(Name="GBA_Duck",Command="Duck | onrelease UnDuck | Axis aUp Speed=-1.0 AbsoluteAxis=100")

このエイリアスを複数のキーにマッピングするには、次のようになります。この例では、クラウチングをキーボード上の C ボタンと、Xbox 360 のコントローラー上の A ボタンに割り当てています。

Bindings=(Name="C",Command="GBA_Duck")
Bindings=(Name="XboxTypeS_A",Command="GBA_Duck")

キーバインドの連鎖


コンフィギュレーションファイル内で定義されるキーバインドは、複数のコマンドを実行するために連鎖化することができます。パイプ区切り記号を使用することによって、複数の実行関数を連鎖させることができるため、これらの実行関数を同一のキーにバインドすることができます。

Bindings=(Name="BackSpace",Command="TurnAround | SwitchToRocketLauncher | StartFire")

後に続くコマンドは実行関数である必要がありません。そのため、イベントに基づいたコードを作成することができます。次のキーバインドは、左マウスボタンが押されたときに StartFire を実行し、左マウスボタンが放されたときに StopFire を実行します。こうすることによって、どのようなキーであっても押されたり放されたりしたときに感知することができるようになります。

Bindings=(Name="LeftMouseButton",Command="StartFire | onrelease StopFire")

キーバインドの onrelease モディファイア


onrelease モディファイアを使用すると、キーバインドにおいて、キー / ボタンが放されたときにだけ次に続くコマンドをアクティベートすることができます。

キーバインド変数


Axis (軸)

Axis (軸) モディファイアは、通常、-1.f から 1.f の範囲の float 型変数をセットします。この範囲に関するルールに対する主な例外は、アナログデバイスがマウスである場合です。ジョイスティックのようなアナログ型コントロールに最適です。この変数の定義は、Controller クラスか Input クラス、または それらのサブクラス (PlayerController や PlayerInput など) で行われるべきです。変数の定義は次のようになります。

var input float aMouseX; // Where aMouseX is the name of the axis

変数は次のように使用することができます。

Bindings=(Name="MouseX",Command="Axis aMouseX")

また、Axis には、変数名の後に付加することができるプロパティがいくつかあります。

  • AbsoluteAxis (絶対軸) - デルタタイムにわたって、この乗数分入力値をスケーリングするプリプロセッサです。integer 型として定義されます。
  • DeadZone (デッドゾーン) - 入力における絶対差 (差の絶対値) がこの最小値分変化していない場合は、入力が無視されます。
  • Invert (反転) - 入力値をこの分だけ反転させるプリプロセッサです。
  • Speed (速度) - この axis (軸) が変化する速度です。

Button (ボタン)

Button モディファイアは、キーのステータスに応じて、byte 型変数を 0 または 1 にセットします。この変数の定義は、Controller クラスか Input クラス、または それらのサブクラス (PlayerController や PlayerInput など) で行われるべきです。変数の定義は次のようになります。

var input byte bAltFire; // Where bAltFire is the name of the button

変数は次のように使用することができます。

Bindings=(Name="RightMouseButton",Command="Button bAltFire")

Count (カウント)

このモディファイアは、通常、アナログ型コントロールのために使用されます。コントロールから集められたサンプルの数をカウントして、byte 型変数にその値をセットします。変数の定義は次のようになります。

var input byte bXAxis; // Where bXAxis is the name of the sample count

変数は次のように使用することができます。

Bindings=(Name="MouseX",Command="Count bXAxis")

ほとんどの場合、コントロールのスムージング (マウススムージングなど) を実行するのに役立てます。

Toggle (切り替え)

ターゲットの変数として byte 型を使用して、トグル (切り替え) を自動的に作成することができます。変数の定義は次のようになります。

var input byte bLook; // Where bLook is the name of the variable

変数は次のように使用することができます。

Bindings=(Name="L",Command="Toggle bLook")

キーバインドを切り替える秘訣


キーバインドを使用して新たなキーバインドをセットすることができます。これにより、キーバインドを利用するだけで、簡単なトグル (切り替え) を作成することができます。まず、V が押されると、SwitchToWireframe が実行され、これによりキーバインドが SwitchToLit にセットされます。さらに V が押されると、SwitchToLit が実行され、これによりキーバインドが SwitchToWireframe にセットされます。これで切り替え可能なキーができました。

Bindings=(Name="SwitchToWireframe",Command="viewmode wireframe | SetBind V SwitchToLit")
Bindings=(Name="SwitchToLit",Command="viewmode lit | SetBind V SwitchToWireframe")
Bindings=(Name="V",Command="SwitchToWireframe")

UnrealScript の関数へのキーバインド


これらの関数は、 exec (実行) 関数 と呼ばれています。簡単に述べると、このシステムによって、UnrealScript で書かれた関数を、キーに直接マッピングすることができます。次の単純な exec 関数のサンプルでは、カスタムの PlayerController クラスに exec 関数が置かれています。

YourPlayerController.uc
exec function MyCustomExecFunction(int ParameterA)
{
  `Log("User executed my custom exec function with "$ParameterA);
}

次に、コンフィギュレーションファイル内でバインドを作成します。

Bindings=(Name="K",Command="MyCustomExecFunction")

UnrealScript においてキーバインドを使用する方法


キーバインドは、「Unreal Engine 3」内でランタイム時に動的に作成およびリセットすることができます。 Input 内にこの機能を実現するための関数が 3 つあります。

  • GetBind(const out Name Key) - 現在当該キーにバインドされているコマンドの文字列を返します。
  • SetBind(const out name BindName, string Command) - キーを新たなコマンドにセットして、それをコンフィギュレーションファイルに保存します。

ただし、これらの関数を使用するには、プレイヤーの input オブジェクトインスタンスにアクセスする必要があります。そのためには、次を利用することができます。

local PlayerController PlayerController;
local WorldInfo WorldInfo;

WorldInfo = class'WorldInfo'.static.GetWorldInfo();

if (WorldInfo != None)
{
  PlayerController = WorldInfo.GetALocalPlayerController();
  if (PlayerController != None && PlayerController.PlayerInput != None)
  {
    // You now have access to the input object instance for the local player controller
    PlayerController.PlayerInput.SetBind('J', "MyCustomExecFunction 1");
  }
}

マップ可能なキー


以下は、「Unreal Engine 3」にマッピングしているキーのリストです。

キーボード

ファンクションキー

  • F1 - ファンクション 1
  • F2 - ファンクション 2
  • F3 - ファンクション 3
  • F4 - ファンクション 4
  • F5 - ファンクション 5
  • F6 - ファンクション 6
  • F7 - ファンクション 7
  • F8 - ファンクション 8
  • F9 - ファンクション 9
  • F10 - ファンクション 10
  • F11 - ファンクション 11
  • F12 - ファンクション 12

英数字キー

  • A - 文字 A
  • B - 文字 B
  • C - 文字 C
  • D - 文字 D
  • E - 文字 E
  • F - 文字 F
  • G - 文字 G
  • H - 文字 H
  • I - 文字 I
  • J - 文字 J
  • K - 文字 K
  • L - 文字 L
  • M - 文字 M
  • N - 文字 N
  • O - 文字 O
  • P - 文字 P
  • Q - 文字 Q
  • R - 文字 R
  • S - 文字 S
  • T - 文字 T
  • U - 文字 U
  • V - 文字 V
  • W - 文字 W
  • X - 文字 X
  • Y - 文字 Y
  • Z - 文字 Z

特別キー

  • Escape - Escape (エスケープ)
  • Tab - Tab (タブ)
  • Tilde - ~
  • ScrollLock - Scroll lock (スクロールロック)
  • Pause - Pause (ポーズ)
  • one - 1
  • two - 2
  • three - 3
  • four - 4
  • five - 5
  • six - 6
  • seven - 7
  • eight - 8
  • nine - 9
  • zero - 0
  • Underscore - _
  • Equals - =
  • Backslash - \
  • LeftBracket - [
  • RightBracket - ]
  • Enter - エンターまたはテンキーのエンター
  • CapsLock - キャップスロック
  • Semicolon - ;
  • Quote - '
  • LeftShift - 左 Shift (シフト)
  • Comma - ,
  • Period - .
  • Slash - /
  • RightShift - 右 Shift (シフト)
  • LeftControl - 左 Control (コントロール)
  • LeftAlt - 左 Alt (オルト)
  • SpaceBar - スペースバー
  • RightAlt - 右 Alt (オルト)
  • RightControl - 右 Control (コントロール)
  • Left - 左
  • Up - 上
  • Down - 下
  • Right - 右
  • Home - Home (ホーム)
  • End - End (エンド)
  • Insert - Insert (インサート)
  • PageUp - Page Up (ページアップ)
  • Delete - Delete (デリート)
  • PageDown - Page Down (ページダウン)
  • NumLock - Num Lock (ナムロック)
  • Divide - テンキーの /
  • Multiply - テンキーの *
  • Subtract - テンキーの -
  • Add - テンキーの +
  • PageDown - Page Down (ページダウン)
  • NumPadOne - テンキーの 1
  • NumPadTwo - テンキーの 2
  • NumPadThree - テンキーの 3
  • NumPadFour - テンキーの 4
  • NumPadFive - テンキーの 5
  • NumPadSix - テンキーの 6
  • NumPadSeven - テンキーの 7
  • NumPadEight - テンキーの 8
  • NumPadNine - テンキーの 9
  • NumPadZero - テンキーの 10
  • Decimal - テンキーの小数点

マウス

  • LeftMouseButton - 左マウスボタン
  • RightMouseButton - 右マウスボタン
  • ThumbMouseButton - 第 1 マウス親指ボタン
  • ThumbMouseButton2 - 第 2 マウス親指ボタン
  • MouseScrollUp - マウスホイールによるスクロールアップ
  • MouseScrollDown - マウスホイールによるスクロールダウン
  • MouseX - X 軸上でのマウスの動き
  • MouseY - Y 軸上でのマウスの動き

XBox360 のコントローラー

  • XboxTypeS_LeftThumbStick - ボタンとして押されたときの左サムスティック
  • XboxTypeS_RightThumbStick - ボタンとして押されたときの右サムスティック
  • XboxTypeS_DPad_Up - 方向パッドの上
  • XboxTypeS_DPad_Left - 方向パッドの左
  • XboxTypeS_DPad_Right - 方向パッドの右
  • XboxTypeS_DPad_Down - 方向パッドの下
  • XboxTypeS_Back - Back ボタン
  • XboxTypeS_Start - Start ボタン
  • XboxTypeS_Y - Y ボタン
  • XboxTypeS_X - X ボタン
  • XboxTypeS_B - B ボタン
  • XboxTypeS_A - A ボタン
  • XboxTypeS_LeftShoulder - 左ショルダーボタン
  • XboxTypeS_RightShoulder - 右ショルダーボタン
  • XboxTypeS_LeftTrigger - ボタンとして押されたときの左トリガー
  • XboxTypeS_RightTrigger - ボタンとして押されたときの右トリガー
  • XboxTypeS_LeftTriggerAxis - 半分引いた場合の左トリガー
  • XboxTypeS_RightTriggerAxis - 半分引いた場合の右トリガー
  • XboxTypeS_LeftX - アナログコントロールとして使用された場合の左サムスティックの水平位置
  • XboxTypeS_LeftY - アナログコントロールとして使用された場合の左サムスティックの垂直位置
  • XboxTypeS_RightX - アナログコントロールとして使用された場合の右サムスティックの水平位置
  • XboxTypeS_RightY - アナログコントロールとして使用された場合の右サムスティックの垂直位置