Google Cardboard+Unity+MMDで遊ぶ(コーディングなし)

先日買った【並行輸入品】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ファイルもインポートする。
modelimport
今回は那珂ちゃんに踊ってもらいます。
データは【第12回MMD杯本選】恋の2-4-11【MMDフレームアニメ】から頂きました。

.MMD4Mecanimファイルを選択して、利用許諾に同意する。
accept

VMDファイルを設定してからProcessボタンを押す。
vmdsetting
これでFBXファイル等が作られます。

シーンの作成

超適当に配置します。
stage
床の模様は那珂モデルデータのMaterialsフォルダから適当に選んで貼りつけた。

モーションの設定

Create→Animation Controlerを作成する。
create_animatorCtrl

作成したAnimation Controlerをダブルクリックし、モデルのFBX内のモーションデータをDrag & Dropする。
edit_animatorCtrl

HierarchyウィンドウのMMDモデルを選択して、InspectorのAnimatorパネルのControllerに、さっき作ったAnimation Controllerをセットする。
set_animCtr

コレで、プログラム開始時に踊りだす。

ステレオ映像化

今回最大の目的である立体視にする方法だけど、超簡単。
プロジェクトウィンドウのAssets/CardBoard/ScriptsのStereoController.csを、MainCameraにAddComponentするだけ。
camera_script
これで再生すると、左右2画面に分かれた映像になってる。すごい。
stereo_naka

再生を止めて、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に設定しておく。
landscape
コレで起動時に横画面になる。

同時にOther SettingsのBundle Identifierを好きな文字列に変更しておく。前回のエントリー参照

この状態でBuildする。ファイル名は好きな様に。
Androidで出力失敗する場合は前回のエントリー参照
iOSは知らん。

出力できたら実機で試す。
Androidならメールで送るとかGoogleドライブ経由で送るとか、ファイルマネージャソフトでコピーしてくるとか。

調整

どうにも上手く立体視できないとか、焦点が合わない等の場合は左右カメラの座標や角度を少し弄ってみる。
camera_setting_edit
MainCameraを展開すると、Main Camera LeftとMain Camera Rightがあるので、この左右カメラのPotision Xを微調整する。
Xの絶対値を大きくする(中心から離れる)と、立体感が強くなる・・・が、私みたいに立体視が苦手な人だとうまく視点を合わせづらくなる。
Xの絶対値を大きくしつつ、Rotation Yを中央に寄せるようにする(左359.5 右0.5とか)と焦点が合ったりするんだけど、そうすると対象が手前や奥に行った時にブレるかも。

ここの調整で上手く見れるかどうかは個人差が大きいと思うので、設定画面とか作ったほうが楽なんだろうなぁ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

認証のために問題を解いて下さい * Time limit is exhausted. Please reload CAPTCHA.