読者です 読者をやめる 読者になる 読者になる

やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

Oculus Riftでユニティちゃんを表示させてみた

Unity VR

にわかに日本Androidの会 VR部が設立されたり、OcuFes DCExpo2014@日本科学未来館でユニティちゃんに歯磨きしてあげたりと盛り上がってきたので、すっかり積みデバイス化していたOculus Rift DK2を開封して触ってみるなどしました。

開発環境

Oculus Rift DK2では75fpsを下回ると快適な体験を得られないとされています。MBPのGeForce GT 650Mではやや非力で、SDKに入っているデモアプリで60fpsくらい。でも開発には支障はないかな*1、というレベルです。

ユニティちゃんを表示する

このページを参考に。でも眺めるだけなので、操作はしない。

せっかくなのでハロウィン仕様で。

f:id:nowsprinting:20141103075837p:plain

Oculus Riftで表示する

このリポジトリのREADME.mdに書いてある手順を参考に、カメラをOVRCameraControllerもしくはOVRPlayerControllerに切り替えるだけ。前者はカメラだけなので位置も方向も固定。後者は頭を動かすとカメラも動きます。

ちなみに、.gitignoreもこのプロジェクトのものを流用しました。

f:id:nowsprinting:20141103075904p:plain

  • カメラは近め・低めくらいがちょうどいいかも。脚がちょうど視界に収まるカメラで、このスクリーンショットの感じ。
  • カメラの調整はHerarchy Viewでカメラを選択した状態でSceneエディタで動かして、GameObject -> Align With View でカメラのTransformを更新できる
  • 左右に表示されていたポーズ変更のウィンドウは、Herarchy Viewでユニティちゃんを選択 -> InspectorでIdle ChangeFace Updateのそれぞれ左のチェックを外すと消えます

プレイヤーをビルドする

プレイヤー(再生アプリケーション)をビルドします。

ビルドの設定

  1. File -> Build Settings... を開き、Scenes In Build右下の[Add Current]ボタンをクリックして、ビルド対象シーンを追加します
  2. Build Settingsの[Player Settings...]ボタンをクリックするとInspectorの表示が切り替わり、ここでアイコンなどを設定できます
  3. Oculus Rift向けの Player Settings -> Resolution and Presentation設定、および Edit -> Project Settings -> Quality設定*2が、OculusUnityIntegrationGuide.pdfに載っていますので適用します。
  4. これで[Build]もしくは[Build and Run]ボタンでビルドできます(出力ファイルパスを聞かれます)

ビルドの後続処理

Mac OS Xの場合、Assets/Editor/PostprocessBuildPlayer(拡張子なし)というスクリプトを置いておくと、ビルド処理の後でこれを実行してくれるそうです。 アーカイブやデプロイなど、またiOSアプリの場合はUnityが出力したXcodeプロジェクトをビルドする必要もあるので、これを利用できます。

ただ、ビルド自体をコマンドラインで(そしてCIで)実行するのであれば、これは利用せずにビルドツール側で書いたほうがいいでしょう。

コマンドラインでビルド

毎回GUI操作はめんどうなので、コマンドラインからビルドできます。

Mac OS X向けビルド

下記コマンドでビルドできます(.appファイルが生成される)

$ /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -logFile /dev/stdout \
    -buildOSXPlayer ./Build/UnityChanVR.app

Windows向けビルド

Mac OS Xからでも下記コマンドでビルドできます。.exeファイルのほかに UnityChanVR_Data/というディレクトリができるので、両方デプロイすること。

$ /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -logFile /dev/stdout \
    -buildWindowsPlayer ./Build/UnityChanVR.exe

なお、

  • Unityは二重起動できないため、コマンド実行時Unityは落としておく必要があります
  • 出力ファイルは上書きしてくれますが、必要なディレクトリ(上例ではBuildディレクトリ)はあらかじめ掘っておきます
  • -logFile /dev/stdoutを指定することで、通常コンソールに出力されるログを標準出力に出力できます
  • -buildXxxPlayerには他に、64bit, Universal, Linux, WebPlayerなどがあります。しかしiOS/Androidの指定は無く、-executeMethodでプロジェクト内のビルドスクリプトを実行する(スクリプトBuildPipeline.BuildPlayerでビルドする)形になります。

コマンドライン引数について詳しくは、本家のオンラインマニュアルを参照。

参考

Unity実践技術大全 (GAME DEVELOPER BOOKS)

Unity実践技術大全 (GAME DEVELOPER BOOKS)

モデリングなどの外部ツールiOS/Androidへのエクスポート、Asset Storeで入手できるオススメAssetなども紹介されています

Unityゲーム開発 オンライン3Dアクションゲームの作り方

Unityゲーム開発 オンライン3Dアクションゲームの作り方

エディタの使いかたなど、基本的な部分からページを割かれています

オンラインドキュメント

ライセンス

ユニティちゃんライセンス

このコンテンツは、『ユニティちゃんライセンス』で提供されています

*1:むしろ、この環境で快適なものを作るべき!

*2:SDK0.4以降、アンチエイリアスはoffにしてもキレイになったのでfpsを優先するためoffでいいそうです。see: 楽しく使う Oculus Rift DK2 「Unity編」シート