ゲームパッドをパフォーマンスデバイスとして使う

VJではMIDIスライダやMIDI鍵盤が入力デバイスとしてよく使われているが、Touchはもっとお手軽でコストパフォーマンスに優れた入力デバイスをサポートしている。Joystick CHOPはDirectX 7に対応しているゲームデバイスなら32ボタン、2スライダ、4POV Hatのチャンネル情報を取り込むことが出来る。ここではゲームパッドでカメラのRotationと口パクをコントロールする簡単な例を紹介しよう。

image040908_01
image040908_02

Download File

ゲームパッドのチャンネル情報をTouchに取り込むためにJoystick CHOPを使用する。ゲームパッドがWindowsできちんと認識されていれば、Joystick Sourceパラメータでデバイスを選択することが出来る。ボタンやスティックがきちんと読み込まれているかどうか、確認するには、Playバーを再生しなければ反応しない点に注意しよう。

image040908_03

今回はアナログスティックのxaxisとyaxisをデフォルトカメラのRX、RYに対応するように設定してみよう。
チャンネルの状態を確認しやすいように、Joystick CHOPから入力したDelete CHOPでチャンネルを必要なチャンネルだけにする。

image040908_04

デフォルトの状態では読み込んだチャンネル値のレンジは0~1になっている。このままの状態ではアナログスティックが無入力の状態で、0.5になる。アナログスティックを入力していない状態で0、上下左右に動かすと、-60~60までのレンジで変化するようにMath CHOPのRangeタブでレンジを再設定する。

image040908_05

チャンネル名をExportするチャンネル名に変更する。アナログスティックを上下にするとX軸で回転、左右にするとY軸で回転するように、yaxisをcambase/rxに、xaxisをcambase/ryに設定する。(ちょっとややこしいので注意)

image040908_06

設定したCHOPをcambaseをコントロールしているSped CHOPにpanelからの入力の代わりに接続すれば、ゲームパッドでカメラのローテーションをコントロールできるようになる。Playバーを再生して、アナログスティックで確認してみよう。カメラのRotationをリセットするためにボタンb1をSpeed CHOPのReset Pulse入力に同じように接続してみた。

image040908_07

口パクをコントロールするために、もう片方のアナログスティックを使用する。CHOPの設定はカメラコントロールとほぼ同じだが、アナログスティックを手前に倒したときのみ、チャンネル値が反映するように、レンジを設定した後にLimit CHOPで0以下の値を全て0にするように設定している。CHOPネットワークのMouseを参考に。

image040908_08

CHOPネットワークで設定したチャンネルをオブジェクトにExportする。Export先はobj/Obj1/blend1/blend2。
口パクの表現は形状が異なる2つのオブジェクトをブレンド比を変えて変更している。

image040908_09