豆知識集です。
鉄騎コントローラをPCで使う
XBOX用のコントローラは、コネクタ形状こそ異なる物の、中身の信号はUSBそのものなので、コントローラの先端を切って、USBコネクタをはんだ付けすれば使えます。
貴重な鉄騎コントローラに手を入れたく無い場合は、
Amazon.co.jp: Xbox用コントローラー延長ケーブル ( 初代XBOXで使用可能 ): ゲーム
こういった延長ケーブルを購入し、こちらを改造すれば大丈夫です。
参考URL nWorld: PCでXBOXのコントローラーを使う
また、PC用のデバイスドライバは幾つか種類がありますが、DirectInput用の物より、 SteelBattalion.NETの方が最近のOSでは安定して動くようです。 Win8.1Pro(x64)で動作確認済みです。 dmanning23/SteelBattalion.NET · GitHub
これを元に単独のプログラムを作成し、適当なボタンを適当なキー入力にアサインして、SendInput()でUnity側に送っています。
インストール時のメモ書きと、最小テストプログラムを以下に置きました。
鉄騎コントローラをWindows7,8(64bit)で使うメモ書き
Kinectの位置合わせ
真正面にKinect v2を設置すると、操縦桿が邪魔で手の認識に失敗することが多い為、Kinectを打ち下ろす形で設置しています。 その場合、Kinectから得られるKinect座標系での関節の座標は当然斜めになってしまう為、適当に補正しています。
kinectが地面に対しP度俯いたりしてるときは、x,y,zに対して
[x',y',z']=[x, y*cos(P)+z*sin(P), -y*cos(P)+z*sin(P)]とやると、水平だったと見なした値が取れますよ。身長測る時とかに使います。Pは加速度から計算したい…
— izm@ 9/14ocufes名古屋 (@izm) 2014, 9月 12
MMD4MecanimでFinalIKのFullBodyIKへのボーン指定
こういった感じです。
最新版のMMD4MecanimはFinalIKとの親和性も考えられている為、この設定は使う機会が増えるかもしれません。
FinalIKのTips
ヘッドトラッキングをしていて、頭を前に出すと胴体も一緒にそれっぽく動くと楽しいです。 これはFinalIKだと簡単に実装できます。
Unity FinalIKでFullBody Biped IKの、左右ShoulderEffectorをGameObjectにアタッチすると、頭位置を移動出来ました。これOculusのHeadTrackに合わせれそう
#Oculus http://t.co/czIBrzTPxV
— izm@ 9/14ocufes名古屋 (@izm) 2014, 9月 11
頭の位置に親になるEmptyObjectを作成し、子を二個作って両肩位置に設置。 FinalIKを触っているスクリプト内でShoulderEffectorのpositionをこの両肩の子に追従するように LastUpdate()内で指定しています。
最後に告知
来る9/28(日)に名古屋栄のニコニコ町会議で、コッソリ今回のめかしむ☆(鉄騎のやつ)を展示出来そうです。
お近くにお越しの際にはフラリと立ち寄って冷やかしに来ていただけると嬉しいです。