11-4. ユーザー入力解釈

ユーザー入力解釈

Robloxでは、ユーザーからの入力を解釈し、ゲーム内でのアクションに変換するために、という二つの主要なサービスが提供されています。これらのサービスの概要を把握しユーザー入力解釈の実用例を見ていきます。

ユーザー入力解釈向けのサービス

UserInputService

は、ユーザー入力イベント(キー押下、マウスクリック、タッチイベントなど)を処理するためのイベントドリブンなサービスです。特定の入力イベントが発生したときに、これを検出し、指定されたアクションを実行するために使用されます。入力デバイスのその他の詳しい情報(ジャイロセンサーやパッド接続状況など)を確認することも可能です。

ContextActionService

は、ゲーム内の特定の状況下で異なるアクションを割り当てることができるサービスです。これは、同じキーまたはボタンが異なるコンテキストで異なる機能を果たす必要がある場合に特に有用です。例えば、キャラクターが飛行中と地上にいるときで「ジャンプ」キーの動作を変えるなどです。また、Action割当時に、タッチボタンを表示するようにするなど、状況に応じたGUI表示なども可能です。

UserInputServiceによる入力解釈

を使用してユーザーの入力を解釈する一般的な実用例は以下の通りです。
このコードは、ユーザーがマウス左ボタンを押したときにイベントを検出し、指定されたアクション(この例ではコンソールにメッセージを表示)を実行します。

ContextActionServiceによる入力解釈

以下がを用いた入力解釈例です。ツールを装備した際にのみ「R」キーでリロードアクションをするように入力解釈されています。
このコードでは、ツールを装備した際に「R」キーをリロードアクションに設定し(BindAction)、装備を外すと設定を解除(UnbindAction)しています。これにより、装備時のみにRキーがリロードボタンとして解釈されるという、状況に応じた入力解釈が可能となっています。

ContextActionServiceが柔軟に入力解釈可能

このように双方のサービスでユーザー入力解釈が可能ですが、入力の解釈用途ではContextActionServiceのほうが状況に応じた変更や、GUI表示の対応など柔軟な対応が可能です。状況に応じた変化がない場合でも有用といえるでしょう。UserInputServiceは生の入力情報や、入力デバイスの詳しい情報を取得するのに有用といえます。

参照すべき情報