先日買った【並行輸入品】Google Cardboardですが、実際入手してみるとアレですね。さすがダンボールというか。解ってたけどショボイ。
材料はダンボール以外は500円握りしめて100円ショップでレンズと磁石とマジックテープとおやつ買えばOKなので、手間を惜しまないなら手作りのほうがいいね。
最悪レンズさえあればいいので、100円ちょいでいい。
あとは公式サイトで設計図をGETして、設計図通りにダンボール切り抜いて組み立てるだけ。
私はめんどくさがりなので&ちょっと腰痛めてたので、Amazonで1000円で買った訳ですが。
あとはAndroidスマホにコレとかの専用アプリ入れて楽しむだけ。
iOS版もあるんだっけ?
なのですが、
買う前から解ってたことだけど、私立体視って苦手なんですよ。酔うとか以前に立体に見えない。
3DSですらいくら調整しても立体視できない。
かなり時間掛けて調整してやっとブレないようにみえるっていう・・・。
コンテンツによってはすんなり見えたりするんですけどね。
うちの人は即見れてて、大興奮してました。悔しい。
まぁそれはさておき。
一応頑張れば見れるので、こうなってくると自分でも作りたくなってくるわけです。
どうやらUnityで簡単に作れるようなので、MMDを踊らせてみることにしました。
やってみて気づいたけど、一切コーディングしてないんだよね。
用意するもの
- Google Cardboard(買うなり自作するなり)
- Unity(公式サイトからDL)私は4.6.3(英語版)だけど、現在日本語版だと4.6.2までしかないのかな。どっちでも問題無いと思う。
- Androidの場合はAndroid SDKとかJDKとか(前のエントリー参照)
iOSの場合は知らん。ググって。 - Google Cardboard SDK(ここから。)
- MMD4Mecanim(作者サイト(?)から最新版をDL)現時点では20150214
- MMDモデル(PMD/PMX)
- MMDモーションデータ(VMD)
MMDのデータはVPVPなりBowlRollなり自作するなり。
Unityの準備
Unityのインストール手順とかは省きます。インストーラーの指示通りにやればいいので。
Android SDKとかも前のエントリーとか見て準備しておく。
まず新規プロジェクトを開いて、Google Cardboard SDKをインポートする(CardboardSDKForUnity.unitypackageをダブルクリックしてImport)
次にMMD4Mecanimをインポートする。(MMD4Mecanim.unitypackageをダブルクリックしてImport)
MMDモデルの読み込み
MMD4Mecanimに同梱されてるマニュアル(MMD4Mecanim チュートリアル(基本編).pdf)を参照すべし。
一応書くけど。
MMDモデルデータをフォルダごとインポートする(PMD/PMXとテクスチャファイル群の入ったフォルダをDrag&Drop)
VMDファイルもインポートする。
今回は那珂ちゃんに踊ってもらいます。
データは【第12回MMD杯本選】恋の2-4-11【MMDフレームアニメ】から頂きました。
.MMD4Mecanimファイルを選択して、利用許諾に同意する。
VMDファイルを設定してからProcessボタンを押す。
これでFBXファイル等が作られます。
シーンの作成
超適当に配置します。
床の模様は那珂モデルデータのMaterialsフォルダから適当に選んで貼りつけた。
モーションの設定
Create→Animation Controlerを作成する。
作成したAnimation Controlerをダブルクリックし、モデルのFBX内のモーションデータをDrag & Dropする。
HierarchyウィンドウのMMDモデルを選択して、InspectorのAnimatorパネルのControllerに、さっき作ったAnimation Controllerをセットする。
コレで、プログラム開始時に踊りだす。
ステレオ映像化
今回最大の目的である立体視にする方法だけど、超簡単。
プロジェクトウィンドウのAssets/CardBoard/ScriptsのStereoController.csを、MainCameraにAddComponentするだけ。
これで再生すると、左右2画面に分かれた映像になってる。すごい。
再生を止めて、StereoControllerの[Update Stereo Cameras]ボタンを押すと、CardboardHead.csとSkyboxMesh.csも追加される。
これでSkyboxもステレオ化されるし、ヘッドトラッキングもやってくれるようになる。すごい。
スマホに出力
File→Build Settingsで対象のスマホ(AndroidとかiOSとか)を選んで、まず[PlayerSettings]ボタンを押し、インスペクタのSetting for Android(iOSならSetting for iOS)の
Resolution And Presentationのdefault orientationをLandscape Leftに設定しておく。
コレで起動時に横画面になる。
同時にOther SettingsのBundle Identifierを好きな文字列に変更しておく。前回のエントリー参照
この状態でBuildする。ファイル名は好きな様に。
Androidで出力失敗する場合は前回のエントリー参照。
iOSは知らん。
出力できたら実機で試す。
Androidならメールで送るとかGoogleドライブ経由で送るとか、ファイルマネージャソフトでコピーしてくるとか。
調整
どうにも上手く立体視できないとか、焦点が合わない等の場合は左右カメラの座標や角度を少し弄ってみる。
MainCameraを展開すると、Main Camera LeftとMain Camera Rightがあるので、この左右カメラのPotision Xを微調整する。
Xの絶対値を大きくする(中心から離れる)と、立体感が強くなる・・・が、私みたいに立体視が苦手な人だとうまく視点を合わせづらくなる。
Xの絶対値を大きくしつつ、Rotation Yを中央に寄せるようにする(左359.5 右0.5とか)と焦点が合ったりするんだけど、そうすると対象が手前や奥に行った時にブレるかも。
ここの調整で上手く見れるかどうかは個人差が大きいと思うので、設定画面とか作ったほうが楽なんだろうなぁ。