UDN
Search public documentation:

GFxKeyFiltersJP
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 ホーム > ユーザーインターフェイスと HUD > 「Scaleform GFx」 > bCaptureInput、AddCaptureKey、AddFocusIgnoreKey の解説

bCaptureInput、AddCaptureKey、AddFocusIgnoreKey の解説


概要


入力は、フィルタリングすることによって、プレイヤーがボタンを押したり、アナログスティックを動かしたりする時に、適切な反応が得られるようにする必要があります。これによって、UI のユーザビリティが劇的に改善されます。

bCaptureInput


クラスの defaultproperties において、bCaptureInputを true にセットすることによって、すべての入力 (マウス、キーボード、ゲームコントローラー) がゲームには送られずに、Flash クラス / SWF に送られるようになります。bCaptureInput を false にセットすると、すべての入力がゲームに送られるようになります。

Unrealscript
defaultproperties
{
  bCaptureInput=true or false
}

AddFocusIgnoreKey


bCaptureInput を true にセットすると、個々のキーが SWF ファイルによってキャプチャされることなく、AddFocusIgnoreKey によってゲームに渡されるようになります。

Unrealscript
AddFocusIgnoreKey('W');

AddCaptureKey


bCaptureInput を false にセットすると、AddFocusIgnoreKey によってゲームに渡されるようにすることなく、個々のキーが SWF ファイルによってキャプチャされるようにできます。

Unrealscript
AddCaptureKey('W');

キャプチャ可能なキーの例示リスト


キーをキャプチャする時および無視する時は、次のリストを使用します。

  • 1~0、A~Z、F1~F12
  • Up、Down、Left、Right
  • Spacebar、Enter、Escape
  • BackSpace、LeftControl、RightControl
  • LeftShift、RightShift、PageUp
  • PageDown、Home、Insert
  • Equals、Minus、Tab
  • LeftAlt、RightAlt

ただし、Kismet においては、Set GFx Captured Keys ノードを使用する場合、数は、アラビア数字を使用するのではなく、英単語で書き出す必要があります。

  • one、two、three 以下同様

ActionScript で入力をインターセプトする


UnrealScript または Kismet によってキー (複数も) をキャプチャするようになると、次のコードを使って ActionScript でそれらのキーをリッスンすることができます。

ActionScript
import flash.external.ExternalInterface;

var keyboardInput:Object = new Object(); // creates a new object to hold keyboard input.
Key.addListener(keyboardInput); // uses the object to listen for keyboard input.

/* when a key is pressed, execute this function. */
keyboardInput.onKeyDown = function()
{
    /* store the keyboard input ASCII code inside 'keyPressed'. */
    var keyPressed:Number = Key.getCode();
    trace("Key Pressed" + keyPressed);

    /* Call the UnrealScript function 'KeyPressed' and send it the 'keyPressed' value. */
    ExternalInterface.call("KeyPressed", keyPressed);
}

keyPressed に格納されているコードは、ASCII 値です。

ALERT! 注意 : キーボード入力のための優先パス (preferred path) によって、通常、キーは、DefaultInput.ini ファイルで定義された機能にバインドされます。さらに、これら UnrealScript の関数が、Flash ムービークリップに対してやるべきことを指示します。ただし、そのようにせずに、特定の時間に特定のキーを Flash ファイルに送る必要が生じる場合もあります。