はじめに
Oculus Rift には「Oculus SDK」と「Unity 4 Integration」の2種類の開発キットが用意されています。前者は C++ で開発するためのキット、後者は名前の通り Unity 4 を用いて開発するキットです。いずれも Developer サイトからダウンロードすることが可能です。
私は Unity で開発したいので「Unity 4 Integration」をまずは触ってみました。
Oculus Unity Integration
基本的には展開して出来る「OculusUnityIntegration」ディレクトリ内の「OculusUnityIntegrationGuide.pdf」にひと通りの解説が載っています。25 ページ程度の短い資料なので、是非一度目を通すことをオススメしますが、特に目を通さなくても簡単に出来てしまいます。
プラグインのインポート
- Project ビューで右クリックして「Import Package」から「Custom Package」を選択
- 「OculusUnityIntegration/OculusUnityIntegration.unitypackage」を選択して「開く」
これで「OVR」というフォルダが Project ビューに表示されます。中には色々入っていますが、基本的に使うのは「Prefabs」の中に入っている「OVRCameraController」および「OVRPlayerController」の2つのプレハブとなります。
OVRCameraController
次のような構造になっています。
OVRPlayerController に 2 つのカメラ、およびスポットライトがぶら下がった形になります。カメラはそれぞれ左目用、右目用のカメラになります。通常のカメラの代わりにこのカメラを使うことによって Unity の世界を Oculus で覗けるようになるわけです。設定は、次のようなものがあります。
各スクリプト及び設定値の詳細はマニュアルをご覧ください。
OVRPlayerController
こちらは次のような構造になっています。
OVRPlayerController はキャラクタと地形の当たり判定などをよしなにやってくれるコンポーネントの Character Contoroller に、いくつかのスクリプトをアタッチして、かつ OVRCameraController を取り付けた形になります。設定は以下のとおりです。
事始めとしてはこのプレハブを Hierarchy ビューにドラッグ & ドロップして適当な位置に配置して ▶ を押せば周りの物を見渡すことができます。床を置くか gravity を 0 にしないと下に落ちていくのでご注意を。
MMD for Unity
やっぱりどうせならキャラクタを表示させたいので「MMD for Unity」で MMD のモデルを読み込んでみます。
ダウンロードから安定版を引っ張ってきても良いと思いますが、機能が追加されている SVN の trunk から直接引っ張ってきても良いと思います。Windows な人はコマンドラインからやっても良いと思いますが、TortoiseSVN あたりを入れてサクッとダウンロードするのをオススメします:
私は r144 を使ったのですが、ビルド時に下記チケットに挙がっている問題が発生しました:
この対処法は以下のブログにて解説されている通り、「Resource」ディレクトリ以外を「Editor」ディレクトリに放り込むことで解決するようです。
MMD for Unity の使い方については以下の動画で解説されています:
ただ、動画を見なくても以下の手順だけで使えるくらい簡単な素晴らしいツールになっています:
- 「MikuMikuDance for Unity」ディレクトリを Project ビューに放り込む
- メニューに「Plugins」が追加されるので「MMD Loader > PMD Loader」もしくは「VMD Loader」を選択
- ウィンドウが開くのでそこからモデルとモーションを指定
- 「Convert」をクリック
これでモデルがシーンに追加されます。モデルやモーションは予め Project ビューに放り込んでおくことが必要です。モデルやモーションの入手については MMD のまとめ Wiki をご覧ください。
これで冒頭の画像のような状態まで、まずは持っていけます。
ビルド
ビルドのセッティングについては「Edit > Project Settings > Quality」から冒頭の画像の値のように設定します。重要なのは「Anti Aliasing」を 4x 以上にすることです(マニュアルより)。
最後に Build & Run して Rift 越しに画面を覗けば、創った世界が見えるはずです。
おわりに
ここまでコード0。凄い世界ですね。