LoginSignup
40
38

More than 5 years have passed since last update.

MacとUnity Free版を使ってZenrinさんの秋葉原上空をQueryちゃんがOculus DK2で飛ぶ、方法

Posted at

はじめに

タイトル長い!要するにそういうことです。

割と簡単にできるわりに、やはり最初は躓く箇所も多いので共有します。

各Version

  • Mac: Mac mini Late 2012, 2.3GHz Core i7, 16GB Memory
    • OS X 10.9.4
  • Unity 4.5.3f3 Free版
  • Unity Assets
  • Oculus DK2
    • Runtime: oculus-runtime_rev_1_sdk_0.4.1_osx
    • SDK: ovr_sdk_macos_0.4.1

準備

以下の手順は省略します。

Unityの下準備

Project作成

[File] -> [New Project] -> 適当なProject名 とします。

Japan Otaku CityをImport

https://www.assetstore.unity3d.com/jp/#!/content/20359
から「Unityで開く」を選びます。
Cursor_と_Asset_Store_-_Japanese_Otaku_City.png

しばらくすると、下記の画面が開くので import を選びます。

Cursor.png

しばらくすると下記の画面が開くので import を押します。

Importing_package.png

コーヒーでも飲んで待ちます。しばらくして下記のようにAssetsに追加されていれば成功です。

Untitled_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

Sceneを作成

秋葉原のモデル自体は 005339_08932_25_14/Models/PQ_Remake_AKIHABARA なんじゃないかと思いますが、手間を省くために同梱されているSceneを開いて編集していくことにします。

下記のように Scenes/Sample_005... をダブルクリックします。

Untitled_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

とりあえず実行してみると、下記のような画面になります。右上のMENUボタンから色々遊べます。これはこれだけでも楽しいです。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

Demoをちょっと編集

このDemoではMenuから色々なのが見られるのですが、いきなりFlyThrough Modeから始まって欲しいので変更します。
下記のようにController ObjectのZRNGUIControllerをダブルクリックしてMonoを起動します。

Cursor_と_Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

changePlayMode, SetQueryChan を 1 で呼び出すようにします。これでいきなりFlyThroughモードで始まります。

ZRNGUIController.cs
    // 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_akihabaraClipping Planes/Far を 1000 → 20 くらいに変更すると FPSが50くらいになってだいぶ快適になります。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

Oculus DK2の投入

OculusUnityIntegrationOVRAgent.unitypackage の Import

DLしてきた OVRAgent_0.4.1_20140823.zip を解凍して、その中の OculusUnityIntegrationOVRAgent.unitypackage をダブルクリックします。また Import画面が表示されるのでImportボタンをおします。下記のようにAssetsに追加されていればOKです。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

OVRCameraControllerの設定

Assets/OVR/Prefabs から OVRCameraController を 下記のようにドラッグ&ドロップします。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

Far Clip Plane

このままだとFPSが10を切るので、OVRCameraControllerのPropertyで Far Clip Plane を 1000 → 20 くらいに減らします。こうすると一応20ちょいくらいFPSが出ます。

Follow Orientation

また、基本的にQueryちゃんを追跡したいので、 Follow OrientationQuery-Chan になるようにします。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone_と_Assembly-CSharp_-_ZRNAssets_005339_08932_25_14_Scripts_ZRNGUIController_cs_-_MonoDevelop-Unity.png

Main Cameraの変更

ControllerCamera Object を `OVRCameraController` に変更します。

Cursor_と_Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

以前のMain Cameraは無効にする

Main_Camera_akihabaraはもう不要なので、チェックを外しておきます。少しFPSが上がる...気がします。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

実行してみる

下記のような感じになっていればOKです。

Cursor_と_Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

DK2を動かすと、Queryちゃんを基準として色々な方向が見られるようになっているはずです。

Oculusで見るときのTips

接続できているか確認する

OculusConfigUtilを開いて接続されているか確認します(念のため)。
実はセンサーが接続されてなくて画面だけ繋がっていて、全然DK2の方向を認識しないなー、と思っていたら接続できていなかった、ということがありました。

画面は「ミラーリング」がオススメかな?

MacだとDirectなんとか、というのが対応していないらしいので、普通にPC画面に写してDK2で見る感じになります。
WindowがDK2側に行ってしまうと操作しづらいので、ミラーリングが良いと思うのですが、
その時、 「解像度の設定」で「Rift DK2」 を選択しないと酷いことになります(数時間これに気が付かなくて、すごいずれた像を見ていた私…)。

Cursor_と_DELL_U2410_と_Rift_DK2_と_MacとUnity_Free版を使ってZenrinさんの秋葉原上空をQueryちゃんがOculus_DK2で飛ぶ、方法.png

開発中はUnityを全画面表示にして、Maximize on Playにしておく

開発中は Unityを全画面表示にして、 Maximize on PlayにしておくとDK2での表示テストが簡単かなと思います。

Sample_005339_08932_25_14_unity_-_unity-dk2-2_-_PC__Mac___Linux_Standalone.png

全画面表示でしばらくすると方向のトラッキングが効かなくなったとき

マウスを画面一番上まで持っていって、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だとそもそもこんなものかもしれませんが。

何はともあれ、こういうのを手軽に試せるようになっているってのはなんとも凄いことですね!
各種リソースを公開して頂いている人・団体に感謝です。

40
38
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
38