UnityでVRで頑張って作る(1)
やっていく
前記事
aegis.hatenablog.jp
それにしても頭の悪そうなタイトルである
とりあえず、普通に3Dでプロジェクトを作成し、
UnityにはVRの機能が標準であるらしいので調べてみると、
公式のチュートリアルもあったので読んでみた
Unity は特定の VR デバイスのためにビルトインサポートを導入しました。この手引きは Oculus 社製の VR デバイス ― 特に、Oculus Rift Development Kit 2 (DK2) と コンシューマ版 Gear VR (Samsung Galaxy S6、S6 Edge、S6 Edge+、Note 5 ハンドセット用のモバイルヘッドセット) ― に焦点を当てています。
このドキュメントはすべての VR HMD に関連した内容を提供します。詳細に関しては使用するVR HMDのドキュメントをご覧ください。
うるせぇ!!!HMD持ってないんじゃ!!!!
...はい、別の方法を検証しましょう
そこで上がるのがスマホのジャイロセンサをトラッキングに使って、
映像もそのまま画面に出力するというもの
このGoogle CardBoardを使う
どうやらGoogleさんは公式でSDKを出してくれているようですが、今回はDive Unity Pluginというものを使う
こちらの記事を参考にしました
この方の記事と同様にDive_Cameraをヒエラルキーに入れて、
メインカメラを消して、ジャイロのスクリプトを書く
public class jailo : MonoBehaviour { Quaternion currentGyro; void Start() { Input.gyro.enabled = true; } void Update() { var rotRH = Input.gyro.attitude; var rot = new Quaternion(-rotRH.x, -rotRH.z, -rotRH.y, rotRH.w) * Quaternion.Euler(90f, 0f, 0f); transform.localRotation = rot; } void OnGUI() { var g = Input.gyro.attitude; GUILayout.Label(g.x.ToString()); GUILayout.Label(g.y.ToString()); GUILayout.Label(g.z.ToString()); GUILayout.Label(g.w.ToString()); } }
gyroの綴りが違うのはご愛嬌(は?)
とりあえずカメラではなく、適当なキューブにアタッチして試します
動いたのでカメラにアタッチ
位置関係とかを取るために、droidくんを配置
ちゃんと右目カメラと左目カメラが重なってますね
実を言うと別に二眼である意味はないのですが、持っているダンボールHMDで、端末サイズと端子の位置的に
二眼のcardboardがいいなって言う話です。
これでヘッドトラッキングができました。
では
次の記事
aegis.hatenablog.jp