CrossRoadスマートフォン用の表示で見るCrossRoadAR、MR、VR、Babylon.jsを中心とした技術ブログ。Unityを使ってゲームパッドでプレーヤー以外を操作する方法です。[やりたいこと]VR内のプレーヤー以外のオブジェクトを、ゲームパッドで動かしたい一般的に、ゲームパッドを使うときは、自分自身を操作するのが普通です。ゲームパッドはボタンがたくさんあるので、プレーヤー以外も動かしたい、ということがありました。そこで、方法を備忘録として書いておきます。私が変更した内容自体は大したことないのですが、OculusのSDKはアップデートが頻繁なので、他のバージョンでは動かない可能性があります。そこで、今回私が動作確認した開発環境の準備手順も残しておきます。OculusのHPによると、下記手順で書かれたバージョンの組み合わせでしか動かないので注意してください、だそうです。p1とはパッチリリースの1回目という意味です。詳細は以前の記事をご参照ください。v1.3.0を導入これはUnity5.3.4p1のOculusRift用ビルドのバイナリです。v1.3.0を使うために必須です。入手後、以下のようにして、バイナリを差し替えます。v1.3.0をインポートここからダウンロードします。Unityでプロジェクトを開き、ダウンロードしたunitypackageをインポートします。ここまでやって準備完了です。Unity5を入れ忘れると、UnityEditorで実行時にUnityが落ちます。(当初、手順をよく読んでおらず、そこではまりました。)また、この記事を書いている途中に、v1.3.0がv1.3.2に変わってしまいました。v1.3.0を入手する場合は、取得ページにて、カテゴリとバージョンを指定すれば取得できます。動かしたいオブジェクト向けをコントロールするためのスクリプトを作ります。今回は、CubeController.csとしました。以下のように書きます。}}これをCubeにくっつけます。OVRPlayerController.csの修正Gamepadのどの部分を使うか次第ですが、もしPlayerの動作に割り当たっているボタンを別オブジェクトの操作に使いたい場合、OVRPlayerController.csから、該当部分をコメントアウトする必要があります。下記は、OVRInput.Buttonでgrepした、Gamepadでキーが割当たっている部分です。必要に応じてコメントアウトしてください。(実際のソースコードを抜粋していますが、インデントなど整形しています。Cameraがある場合は削除し、OVRPlayerControllerのPrefabを入れます。Prefabを使わない場合、2-1で作ったスクリプトの動きがおかしくなることがありました。これで準備は完了です。あとは、ゲームパッドを接続して実行すれば、OVRPlayerControllerではなくCubeを動かすことができます。(参考)ゲームパッドとキーコードの関係OVRInput.csを見ると、各キーコードが書かれています。Android」での代表的なキー割当は以下の通りです。キー割当は英語だとちょっとわかりづらいので、整理しておくと今後も役立ちそうですね。WebXRの内容をまとめました先日、Facebook主催のカンファレンス「F8」が開催されました。API(Android用...前回の続きです。»ProfileAR、MR、VR、Babylon.jsを中心とした技術ブログです。広く色々な技術を勉強するのが好きで、あれこれ書いています。詳細なプロフィールはこちらをご確認ください。2020)■プライバシーポリシー■こちらに記載しておりますのでご確認ください。■お問い合わせ■こちらよりお願いいたします。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。