はじめに
こんにちは
前回の記事の続編となります。
この記事では、UnityでMMDモデルに躍らせる方法を解説していきます。
ただ、これは非技術者にもわかりやすいように書いてるので、ある程度理解してる人は流し読みでもダイジョブです。
前回と同様、この記事では三目YYB作のYYB Hatsune Miku_defaultを使用します。
モーションは、後でも説明しますが、グレイ作の女の子がクルクル回るモーションを使用します。
Unityにミクを表示する
この記事を終わらせると、こんな感じになってるはずです。
あ、モデルとカメラの位置は自由にいじってもろて()
さて、それでは、ミクに踊らせる準備をしましょう。
ボーンを生成する
(言い方あってるかな...)
まぁ、この工程が無いと踊れないのであってるでしょう。
ボーンを生成します。
それでは、かつてピンク色になってたミクノファイルを探しに行きます。
ミクノファイルが見つかったら選択しましょう。
そうすると、右上にこんな表記が、、、

ここでRigを選択してください。
そうしたら、一番上のAnimation TypeをHumanoidにします。

表示が変わると思いますが、完全に無視してApplyボタンを押します。
ちょっと待ちます。
これは、原因不明ですが、適用されてるシェーダーが勝手に切り替わるからです。
なんで、マテリアルフォルダの中に入り、前回やったのと同じように、URPのLitにシェーダーを変更します。
それでもピンクの場合がありますが、ctrl + sでセーブしてやると色が戻ります。
それでは、ボーンがちゃんと生成されたか見に行きましょう
僕自身、あんま理解してないので細かい解説はできませんが、ここでボーンが不自然だったりすると、右に居る人の一部が赤くなったりします。
そうしたら、名前が一致するボーンを左の一覧から探してドラッグアンドドロップで追加する、みたいな感じです。
ただ、ここで使用しているMMD4Mecanimは、そこら辺が優秀なんです。
本当は、Blenderで変換してここに持ってくる方法もありますが、それだとボーンがハチャメチャになって修正が面倒です。
てことで、気が済むまでボーンを眺めたら、右の、人がたってる部分を下の方までスクロールするとDoneボタンがあるのでクリックします。
これで、ミクの踊る準備ができました。
次は、モーションを持ってきます。
MMDモーションを用意する
今回は、ダンスモーションではなく、グレイ作の女の子がクルクル回るモーションを使用します。
解釈違い?
知らん。
ダウンロードをし、解凍します。
MMDモーションの変換
モーションの変換のために、再度ミクの変換処理をする必要があるので、前回の記事の MMDモデルを準備する を参考に、Assets直下にMiku 2などの名前のフォルダを作成し、Textureフォルダとpmxファイルを入れてください。
あと、さっきダウンロードした女の子がクルクル回るモーションのクルクル1周_ラスト左肘曲げ.vmdも入れます。

勝手に生成された、なんかかっこいいアイコンを選択して、規約に同意すると右にvmdと書いてある項目が出てくるので、そこにvmdのモーションファイルを入れます。
Processを押して待ちます。
Timelineの準備
ここからの方法は人によって分かれますが、後でモーションの修正をしたいので、Timelineを使用する方法を解説します。
さて、変換処理が終わると、こんな感じになってると思います。

この画像上で選択してるファイルがモーションのファイルです。
ただ、変換したままだとうまく動かないので、少し処理をします。
ボーンを生成する と同様に、この新しく作成したミクのボーンを生成します。
(RigのAnimation TypeをHumanoidにします。)
Humanoidになったら、モーションを選択し、ctrl + dで複製します。
次に、Assetsへ戻り、Assetsの何もない場所を右クリック、createからTimelineを作成します。

この、映画のフィルムアイコンです。
これをダブルクリックすると、Timelineタブが開かれます。
モデルにモーションをアサイン
次に、左のHierarchyの何もない部分を右クリックし、Create Emptyで空オブジェクトを作成します。

そうしたら、作成した空objの上にさっき作成したtimelineファイルを落とします。

そうすると、右にPlayable Directorコンポーネントが表示され、真ん中はこんな感じでなんかtimelineっぽい表示になるはずです。
そうしたら、+ > アニメーショントラックで項目を作成します。

それで、この何かが入りそうなNoneと書かれた部分に左のHierarchyにあるミクをNoneの部分に落とします。

で、この数字が書いてある部分に、前に複製したモーションファイルを落とします。
それで、できた箱をダブルクリックします。
点が沢山あるこれがアニメーションアニメ編集画面ですー。

Sceneタブを開き、Animationタブの再生ボタン「▶」をクリックすると、アニメーションが再生されます。
モーションのループ再生
timelineをアサインしたobjのInspectorのWrap ModeをLoopにすると、ループ再生されます。

ここです。
モーションの修正
アニメーションタブを開くと沢山項目があると思います。
その、数字が書かれてる部分のちょっと左にカーソルを持って行くと、左右に振れそうなアイコンに変わります。
これを動かすと数値が変わり、動きを編集できます。

手順通りに進めて、環境がほぼ同じなら、こんな感じで、腕に新たな関節ができてる不自然な状態だと思います。
これは、操作可能な部分が腕に2つあり、挿入したモーションは、その片方にしか適用されてないことによって起こる不具合です。
具体的には、66.!joint_LeftArm, 24.!joint_RightArmにはモーションが割り当てられてますが、71.joint_LeftArmM, 29.joint_RightArmMには無いのでこうなってます。
それでは、編集していきましょう。
アニメーション窓を一番下までスクロールし、Add Propertyを押します。
出てくる窓から、
461 > 13 > 11 > 12 > 22 > 29 > Transform > Rotation
と
461 > 13 > 11 > 12 > 64 > 71 > Transform > Rotation
から、RightArmMとLeftArmMのRotationをそれぞれ追加します。

そしたら、腕が自然になるように修正します。
出来た映像がこちら
物理エンジン On
モーションにアサインしたミクを選択し、右に表示される窓の下の方にあるMMD4 Mecanim Model (Script)のPhysicsタブを選択し、一番上のPhysics EngineをBullet Physicsにします。

それで再生すると、物理エンジンが適用されます。
最後に
MMDモデルをUnity上で動かす話をしてきました。
まだまだ理解して切れてない部分が多いので、改善点あればコメントしていただけると非常に助かります。
宣伝
クラブのVJやってます。
「中高生・初めましてに優しいボカクラ」Hello, Vocaloid、通称ハロボカが毎月第三日曜に新宿で開催してます。
大きい音で有名ボカロが聞けます。
終了。
では、また ノシ






