にわかに日本Androidの会 VR部が設立されたり、OcuFes DCExpo2014@日本科学未来館でユニティちゃんに歯磨きしてあげたりと盛り上がってきたので、すっかり積みデバイス化していたOculus Rift DK2を開封して触ってみるなどしました。
開発環境
- MacBook Pro Retina, Mid 2012
- Unity 4.5.5
- Oculus Runtime/SDK v0.4.2(ひとつ前のもの)
Oculus Rift DK2では75fpsを下回ると快適な体験を得られないとされています。MBPのGeForce GT 650Mではやや非力で、SDKに入っているデモアプリで60fpsくらい。でも開発には支障はないかな*1、というレベルです。
ユニティちゃんを表示する
このページを参考に。でも眺めるだけなので、操作はしない。
せっかくなのでハロウィン仕様で。
Oculus Riftで表示する
このリポジトリのREADME.mdに書いてある手順を参考に、カメラをOVRCameraController
もしくはOVRPlayerController
に切り替えるだけ。前者はカメラだけなので位置も方向も固定。後者は頭を動かすとカメラも動きます。
ちなみに、.gitignoreもこのプロジェクトのものを流用しました。
- カメラは近め・低めくらいがちょうどいいかも。脚がちょうど視界に収まるカメラで、このスクリーンショットの感じ。
- カメラの調整はHerarchy Viewでカメラを選択した状態でSceneエディタで動かして、GameObject -> Align With View でカメラのTransformを更新できる
- 左右に表示されていたポーズ変更のウィンドウは、Herarchy Viewでユニティちゃんを選択 -> Inspectorで
Idle Change
、Face Update
のそれぞれ左のチェックを外すと消えます
プレイヤーをビルドする
プレイヤー(再生アプリケーション)をビルドします。
ビルドの設定
- File -> Build Settings... を開き、Scenes In Build右下の[Add Current]ボタンをクリックして、ビルド対象シーンを追加します
- Build Settingsの[Player Settings...]ボタンをクリックするとInspectorの表示が切り替わり、ここでアイコンなどを設定できます
- Oculus Rift向けの Player Settings -> Resolution and Presentation設定、および Edit -> Project Settings -> Quality設定*2が、OculusUnityIntegrationGuide.pdfに載っていますので適用します。
- これで[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)
- 作者: 菊田剛,只野顕二,桑原公一郎
- 出版社/メーカー: 秀和システム
- 発売日: 2014/03/29
- メディア: 単行本
- この商品を含むブログ (2件) を見る
モデリングなどの外部ツール、iOS/Androidへのエクスポート、Asset Storeで入手できるオススメAssetなども紹介されています
Unityゲーム開発 オンライン3Dアクションゲームの作り方
- 作者: 竹内大五郎,石黒赳彦,高橋誠史,香川寛和,河本健太郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
エディタの使いかたなど、基本的な部分からページを割かれています
オンラインドキュメント
- Unity - Unity Manual(公式ドキュメントやチュートリアル。日本語訳されています)
- 楽しく使う Oculus Rift DK2 - Google スプレッドシート
ライセンス
このコンテンツは、『ユニティちゃんライセンス』で提供されています
*1:むしろ、この環境で快適なものを作るべき!
*2:SDK0.4以降、アンチエイリアスはoffにしてもキレイになったのでfpsを優先するためoffでいいそうです。see: 楽しく使う Oculus Rift DK2 「Unity編」シート