導入
この記事では、Xbox コントローラーを使用して Aximmetry を操作する方法について説明します。
接続
Aximmetry で Xbox コントローラーを使用するには、Aximmetry を実行している PC にコントローラーを接続する以外の追加の設定手順は不要です。接続は有線または無線のいずれかの方法で設定可能です。
Xbox コントローラーを使用した Aximmetry の操作
コントロール モジュール プロパティとコントロール ボード ボタン
コントロールボードのボタンにアクションを割り当てることができます。例: をCAMERASパネルの「Play」ボタンに割り当てます。XboxコントローラーはAximmetryでGameカテゴリに属します。そのため、Playボタンを右クリックし、「Assign Game」を選択します:
「Assign Game Controller」ダイアログが表示されます:
コントローラーの希望するボタンを押すか、アナログスティックを動かして割り当てを確定します。
メニューのファイル / プロパティを選択し、ゲーム割り当てに移動すると、コントローラーボタン - この例ではボタン1(A) - が再生ボタンに割り当てられていることが確認できます:
同様に、シーンモジュールの論理的または数値プロパティにアクションを割り当てるには、プロパティ名をクリックして右クリックします:
コントローラー入力を割り当てたボタンやプロパティは、左下隅にマークで表示されます:
カメラアクション
コントローラーの最も一般的な用途は、カメラやカメラパス間の切り替えです。CAMまたはPathセレクターボタンにアクションを割り当てる方法は、以前の例でPlayボタンに割り当てた方法と同様です。割り当てたいボタンを右クリックし、ゲームに割り当てるを選択し、希望のボタンを押します。
フローグラフの制御
Game Controller モジュールを使用すると、フローグラフ内に任意の制御を実装できます。
Xbox コントローラーのアクションをモジュールに割り当てる最も簡単な方法は、そのLearn プロパティをオンにすることです:
次に、コントローラーの希望するボタンを押します。割り当ては、Device とController プロパティの自動入力により行われます。また、誤った割り当てを防ぐため、Learn スイッチは自動的にオフになります:
前述のButton 1 がモジュールに割り当てられていることが確認できます。
別のオプションとして、デバイスとコントローラーのドロップダウンメニューからデバイスとアクションを手動で選択できます:
ここで、以下のバインディングが選択可能です:
左スティック軸 - 軸1 X と 軸1 Y
右スティック軸 - 軸2 X と 軸2 Y
トリガー - 軸1 Z(両方のトリガーは同じ軸に作用します)
A - ボタン1
X - ボタン2
B - ボタン3
Y - ボタン4
LB - ボタン5
RB - ボタン6
Select - ボタン7
Start - ボタン8
Left Stick - ボタン9
Right Stick - ボタン10
方向パッドはAximmetryでは使用できません。
これ以降、割り当てられたボタンを押して離すと、モジュールから0と1(デフォルト)が送信されます。軸を割り当てた場合、入力の現在の値が継続的に送信されます。
上記の例では、アジャスターはボタンが押されている間のみ有効になります。ON/OFF機能が必要な場合は、トグルモジュールを使用してください:
軸値の分離
アナログスティックの軸またはトリガー(両方のトリガーは同じ軸に作用します)をボタンやプロパティに割り当てると、その軸の方向を選択できません。例えば、軸Xをボタンに割り当てると、左右の両方がそのボタンに作用します。この制限を克服するには、GreaterやLessなどの論理モジュールで軸の値を分離します:
この方法では、軸の双方向をボタンとして解釈できます。Game Controller モジュールの出力ではなく、論理モジュールの出力を使用する必要があります。
Control Board ボタンまたはプロパティに軸を割り当てる際(右クリックで選択した場合)、軸の正負の値を直接ボタンやプロパティに割り当てることはできません。これには、モジュールを探し、前述の方法を使用し、モジュールを手動で接続する必要があります。
スカラー型のプロパティに軸を割り当てる場合は、この手順は不要です。プロパティは常に軸の現在の値に設定されるためです。
軸の範囲
Game Controller モジュールのピンにおけるMinとMax値の定義は、Xboxコントローラーの軸の場合、通常とはやや異なります。Min Valueは入力が適用されない原点を表し、Max Valueは軸の正側の最大値を表します。つまり、X軸の場合には右側の最大値、Y軸の場合には下方向の最大値です。Min ValueとMax Valueの差が、原点(Min Value)から移動できる範囲になります。
つまり、Min Valueを0、Max Valueを2に設定すると、-2から+2までの値が設定可能です。
Min Valueを4、Max Valueを7に設定すると、4を原点として両方向に3の範囲(両方向)となるため、1から7までの値が設定可能です。
さらに、両方のトリガーは1つの軸として処理されます。左トリガーは値を正の方向に移動し、右トリガーは負の方向に移動します。
カメラの制御
Xbox コントローラーにはアナログスティックとトリガーが搭載されており、シーン内のカメラ制御に最適です。この目的のため、Common パッケージ内にXBox_Camera_Control コンパウンドが既に作成されています。このコンパウンドは、Camera モジュールの移動、回転、ズームに利用できます。
これを行うには、まずコンパウンドをインポートした後、Xbox_Camera_Control コンパウンドのDevice を設定する必要があります。
Camera Mover モジュールは、Camera モジュールを移動する機能を備えています。Xbox_Camera_Control コンパウンドをCamera Mover モジュールに次のように接続する必要があります:
その後、Xbox コントローラーで制御したいCamera モジュールにCamera Mover を接続します:
設定が完了したら、コントローラーでカメラを次のように操作できます:
- 左スティック:水平移動
- トリガー:垂直移動
- 右スティック:パン/チルト
- A / Y:ズームイン/ズームアウト
注意:XBox_Camera_Control コンパウンドはフォーカス値を出力しないため、Camera Moverのフォーカス距離は今回のケースでは使用できません。
シーン内のカメラの制御
シーン内のカメラを制御するには、Aximmetry ライブラリ内のカメラコンパウンドを修正する必要があります。Aximmetry コンパウンドに保存することは避けてください。使用されているすべてのコンパウンドに同じ(不要な)変更が適用されるか、パッケージの更新で変更が上書きされる可能性があります。
変更したいカメラコンパウンドのコピーを作成するか、リンク解除機能を使用してください。詳細はこちらを参照してください:Compound
カメラパス制御
Xbox コントローラーでカメラパスを制御する方法は、以前の例と同じです。唯一の違いは、カメラコンパウンド内のカメラパスエンドポイントを移動するCamera Mover モジュールを探す必要がある点です。
カメラムーバーモジュール(カメラパス端点を設定する)は、以下の場所にあります:
メインカメラコンパウンド / INPUT # / VCam_xxx_Core
MixedCamコンパウンドの場合、VirtualCamのカメラムーバーモジュールは同じ場所にあります。ただし、TrackedCamのカメラムーバーモジュールを探すには追加のレイヤーが必要です:
メインカメラコンパウンド / TrackedCamコンパウンド / INPUT # / VCam_xxx_Core
ボタンをクリックすると、Camera Mover モジュールのピンリストを展開できます。
その後、以前の例と同様にXBox_Camera_Control コンパウンドを接続できます:
すべてのCamera Movers に接続できます。編集モードでない場合、1つが有効なチャンネルに設定されていないためです。これにより、編集中のCamera Path のみが制御されます。
フリーカメラの制御
Xbox コントローラーでフリーカメラを制御する方法は、カメラパスのエンドポイントを制御する方法と非常に似ています。唯一の違いは、フリーカメラを移動するカメラムーバーモジュールを見つける必要がある点です。これは、カメラコンパウンドの最も上位のレイヤーに直接アクセスすることで見つけることができます。MixedCamコンパウンドの場合、VirtualCamのCamera Moverモジュールは最上位層に存在し、TrackedCamの場合には、そのTrackedCamコンパウンドに入ると、1階層下の位置に存在します。
Camera Moverモジュールを見つけたら、以前と同様にXBox_Camera_Controlコンパウンドを接続するだけです: