はじめに
タイトル長い!要するにそういうことです。
割と簡単にできるわりに、やはり最初は躓く箇所も多いので共有します。
各Version
- Mac: Mac mini Late 2012, 2.3GHz Core i7, 16GB Memory
- OS X 10.9.4
- Unity 4.5.3f3 Free版
- Unity Assets
- Japan Otaku City: draft(Aug 27, 2014)
- OVRAgent_0.4.1_20140823.zip
- Oculus DK2
- Runtime: oculus-runtime_rev_1_sdk_0.4.1_osx
- SDK: ovr_sdk_macos_0.4.1
準備
以下の手順は省略します。
- Unity を Install
- Oculusの設定: Macの人はこの方のブログが参考になります
- ファームウェアの更新も忘れずに
- UnityのAssetsを入手
Unityの下準備
Project作成
[File] -> [New Project] -> 適当なProject名
とします。
Japan Otaku CityをImport
https://www.assetstore.unity3d.com/jp/#!/content/20359
から「Unityで開く」を選びます。
しばらくすると、下記の画面が開くので import を選びます。
しばらくすると下記の画面が開くので import を押します。
コーヒーでも飲んで待ちます。しばらくして下記のようにAssetsに追加されていれば成功です。
Sceneを作成
秋葉原のモデル自体は 005339_08932_25_14/Models/PQ_Remake_AKIHABARA
なんじゃないかと思いますが、手間を省くために同梱されているSceneを開いて編集していくことにします。
下記のように Scenes/Sample_005...
をダブルクリックします。
とりあえず実行してみると、下記のような画面になります。右上のMENUボタンから色々遊べます。これはこれだけでも楽しいです。
Demoをちょっと編集
このDemoではMenuから色々なのが見られるのですが、いきなりFlyThrough Mode
から始まって欲しいので変更します。
下記のようにController
ObjectのZRNGUIController
をダブルクリックしてMonoを起動します。
changePlayMode, SetQueryChan を 1 で呼び出すようにします。これでいきなりFlyThroughモードで始まります。
// Use this for initialization
void Start () {
this.GetComponent<CameraController>().ChangeCamera(0);
operateCameraNumber = 0;
previousCameraNumber = 0;
this.GetComponent<AmbientController>().changeShadow(true);
shadowOn = true;
changePlayMode(1); // ここを 0 -> 1 に変える
SetQueryChan(1); // ここを 0 -> 1 に変える
}
余談なTips
初期設定のままでこのFlyThroughで遊ぶと、私のMac MiniだとFPSが20くらいで少しカクカクします。
ちょっとした対処法として、Main_Camera_akihabara
の Clipping Planes/Far
を 1000 → 20 くらいに変更すると FPSが50くらいになってだいぶ快適になります。
Oculus DK2の投入
OculusUnityIntegrationOVRAgent.unitypackage の Import
DLしてきた OVRAgent_0.4.1_20140823.zip を解凍して、その中の OculusUnityIntegrationOVRAgent.unitypackage
をダブルクリックします。また Import画面が表示されるのでImportボタンをおします。下記のようにAssetsに追加されていればOKです。
OVRCameraControllerの設定
Assets/OVR/Prefabs
から OVRCameraController
を 下記のようにドラッグ&ドロップします。
Far Clip Plane
このままだとFPSが10を切るので、OVRCameraControllerのPropertyで Far Clip Plane
を 1000 → 20 くらいに減らします。こうすると一応20ちょいくらいFPSが出ます。
Follow Orientation
また、基本的にQueryちゃんを追跡したいので、 Follow Orientation
を Query-Chan
になるようにします。
Main Cameraの変更
Controller
の Camera Object
を `OVRCameraController` に変更します。
以前のMain Cameraは無効にする
Main_Camera_akihabaraはもう不要なので、チェックを外しておきます。少しFPSが上がる...気がします。
実行してみる
下記のような感じになっていればOKです。
DK2を動かすと、Queryちゃんを基準として色々な方向が見られるようになっているはずです。
Oculusで見るときのTips
接続できているか確認する
OculusConfigUtil
を開いて接続されているか確認します(念のため)。
実はセンサーが接続されてなくて画面だけ繋がっていて、全然DK2の方向を認識しないなー、と思っていたら接続できていなかった、ということがありました。
画面は「ミラーリング」がオススメかな?
MacだとDirectなんとか、というのが対応していないらしいので、普通にPC画面に写してDK2で見る感じになります。
WindowがDK2側に行ってしまうと操作しづらいので、ミラーリングが良いと思うのですが、
その時、 「解像度の設定」で「Rift DK2」 を選択しないと酷いことになります(数時間これに気が付かなくて、すごいずれた像を見ていた私…)。
開発中はUnityを全画面表示にして、Maximize on Playにしておく
開発中は Unityを全画面表示にして、 Maximize on Play
にしておくとDK2での表示テストが簡単かなと思います。
全画面表示でしばらくすると方向のトラッキングが効かなくなったとき
マウスを画面一番上まで持っていって、MacのMenuを出すと何故か復活します。何故だ。。。
Queryちゃん要らないんだけど…
Main Cameraを無効にしたように、Query-Chan
のチェックを外すと表示されなくなります。
完全に飛行モードですね。
ただ、UIが向いている方向と進む方向が全然違うのでかなり違和感あります。
まあ、ちょいちょいいじれば快適になるでしょう。
OculusConfigUtil で Oculusが認識されない
物理的な配線がOKなのに認識されないことがあります。私は再起動したら認識されなくなりました。
私の場合は OVRAgent
というProcessが起動していなかった のが問題でした。
この場合 Oculus RuntimeをInstallしたときにできるApplication/Oculus/Angent/ovragent
を実行したら起動するようになりました。その隣にある installAgent.sh
を実行すると次回起動時に自動的に ovragent
が起動するようになります。
# RuntimeをInstallしたときに普通は実行されるような気もしますが、、、どうなのかな。
さいごに
Unity Pro版だとパフォーマンスが良いという話もあるので試したいですね。
まあ、Mac Miniだとそもそもこんなものかもしれませんが。
何はともあれ、こういうのを手軽に試せるようになっているってのはなんとも凄いことですね!
各種リソースを公開して頂いている人・団体に感謝です。