Oculus Questで「ミライアカリ」にGirlsを踊ってもらった


先週、「ミライアカリ」の新作フィギュアの紹介記事を見つけました。

そういえば、いつだったか KEI 氏がデザインしたキャラだったな? 思い出し、そのフィギュアを見てみると、

「ああ、そうだ、見たことがあるな、そうだ結構可愛いかったなぁ」

で、さらに思い出して、「確か MMD が提供されていた覚えがあるなぁ」と、本家ページで確認。早速ダウンロードしてモデルを確認…

(c)Mirai Akari Project

素晴らしい…、かなりの出来栄え…、モデラーの「念」を感じます(モデラーさんは結構昔から知っていて、素晴らしい作品が多く、良く利用させてもらってる海外のモデラーさんでした)。

同じモデラーさんの初音ミク V4X

で、MMD を確認したときに、思ったことは、

  • 先月入荷したOculus Quest(以下 Quest)買ったし、VR で眺めるか…
  • でも、このモデルなら「Girls」映えるのでは?

まずは、この二つが思い立ったわけで、週末に一気に作ってみました。


まずは、Quest 用の準備。「下書きで止まっている Quest の苦労記事」が沢山ありますが、それらを乗り越えての今ということで(書いているうちにムカついて止めてしまうこと多々)、

環境

  • Unity 2018.4 LTS
    なんで 2019.x じゃないかって? 2018でできて、2019でできなくなった細かい不具合が多くて、ブチ切れたので止めました…。教訓「時間を無駄にしたくないのなら LTS 一択である」と
    • Oculus Integration
      専用 API 使用のため、あと Quest 用に正しく配置するために必要
    • HTC VIVE Input Utility
      VR 機器に依存しない入力のため、本家 SDK には無い「支援効果」がすばらしいので
    • Final IK
      いろいろ補正のために使用
    • Puppet Master
      おさわりではなく、すり抜け防止のために使用(建前)
    • MMD4Mecanim
      言わずと知れた MMD を Unity で使えるようにするプラグイン
  • Oculus Rift CV1(センサー2つ)
    開発中の確認用(RIFT S に替えたい…)。
  • 「Girls」MARiA(メイリア
    大好きな曲で、VMD にトレースしてくださった方が居るので、個人的に昔から MMD 関連で何かあるごとに使用させてもらって鑑賞しています。
    本人出演の「踊っちゃってみた~」は必見ですよ(YouTube に公式が上がっていないのでリンクは割愛)。

準備

プロジェクトを作成して、ビルド対象を Android にしてから、プラグインを一通りぶち込みます。

VIVE Utility のダイアログが立ち上がり、Oculus の Android なら設定はこうした方が良いよ?という素晴らしい提案が来ます。 これは Oculus のガイドにある面倒な設定をしてくれるという優れもの(これって本来 SDK の仕事だよね?)。

ただ、個人的に時間を無駄にする行為が一番嫌いなので、Texture Compression の ASTC は最終段階まで使用しないことにしています。なぜなら、この方式、テクスチャのサイズがかなり小さくなるとのことですが(講演では10分の1?だったかな?)、圧縮にすさまじい時間とCPUを消費します。これがすべての画像ファイルに適用されるので、使用しないサンプルやアイコン集など多数あると、選んだら最後、変換に数十分から最悪数時間かかる羽目になるでしょう…(Oculus Interactionのサンプル群を入れちゃったら、まず数十分は帰ってきません…、無駄なものをプロジェクトに入れてはいけないという教訓ですね…)

シーン

Quest 用なのでなるべく軽くして、キャラクターの動きのみに全力投球できるようにしよう。 舞台は薄いプリミティブなシリンダーの板を数枚、テレポート可能な台として設置。VIVE Input Utility でテレポートは簡単にできるのでコンポーネント、Prefab を設置。

背景にはフリーの銀河 Skybox アセットを使用しました。

Final IK

おさわりに直接関係ないですが、モーションの補正や Look at IK にために使用します。

キャラクターの Rig を Humanoid にすれば設定が楽なのですが、今回は Generic のままやってみました。

今回もモーションの補正のため、ちょっと使っています。巣のままだと、左右の足がぶつかって気持ちが悪いので、足の Effector Offset をずらしています。Final IK のデモに「Effector Offset」のスクリプトがあるのでそれを追加してます。

Puppet Master

物理コンポーネント付きのパペットが作成できます。また「デス」または「ザキ」が使用可能になります。

Puppet Master – State Dead

また、プレイヤー(頭)に物理コライダーを設けることで、キャラクターへのすり抜けを防止できるようになります。 スカスカな内部など見たくないでしょう?

内部コライダーを有効にすると、モーション中の手や足のすり抜け等が強制的に防げます(モーションがおかしくなるかもしれませんが)。

Internal Collisions

どうも腕等の Bone 軸が標準化されていないようです… Look at IK も逆の挙動を示すので Aim IK に変更しました。

Look at IK のかわりに Aim IK

完成

Oculus Quest でキャプチャー

感想

このミライアカリの MMD は結構なポリゴン数です。思った以上に Quest の能力は高いかと。PS3 と同等ぐらいというの納得。こらならまだまだ盛れる。

そう確かにいい。かわいい。だがプログラマーとして、そして「紳士」としてこれで満足してはいけない。 非現実でしかできないことをしないと…現実なら「スタァァァップ!」と 衛兵さん止められるものをw

でも動いているの触るの難しくね? 踊ってるの速いし…

そうか…時間を止めればいいんだ。

続く…

使用したアセット

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)