見出し画像

#2【備忘録】Unityに取り込んだVroidをMixamoで動かしてみる【無謀にも3D東方二次創作ゲーム作成】

<前回の記事>

前回の記事ではVroidをStarterAssetsを使って動かすところまで作りました。

歩き、ダッシュ、ジャンプという最低限のアクションは実装されているのですが、2つ問題があります。

StarterAssetsのアニメーター
【悲報】魔理沙さん、ガニ股ジャンプでパンツを晒す

上の動画を見てもらえばわかるように、ジャンプがガニ股で可愛くありません。そして腕がスカートに干渉してしまっています。
また、他の動きもさせたいところです。

1.Mixamoとは何か

MixamoはAdobe社が無料でキャラモデルとキャラモーションを配布している、ただの神サービスです。ひろはす氏も動画で紹介されていますね。

Mixamoで入手したモーションを以下の動画を参考にVroidにさせてみますが、動画とは少し手順を変え、効率化を図りました。

2.Mixamoのモーションの調整及びダウンロード方法

1.Blenderで.vrmファイルを.fbxに変換する

無料の3DCG制作ツール「Blender」に.vrm形式のVroidをインポートし、.fbx形式のファイルとしてエクスポートします。以下の記事を参考にしてください。

2.mixamoに.fbxモデルをアップロードし、モーションを調整する

mixamoの画面

Mixamoにログインし、画面右上の「UPLOAD CHARACTER」から変換した.fbxファイルをアップロードすると、画面中央付近にアップロードしたVroid(今回は霧雨魔理沙)がプレビュー用モデルとして表示されます。

画面左のモーションを選択すると、プレビューモデルが、そのモーションをするので、画面右のパラメータを調整します。

「Overdrive」はモーションの速度を変更できます。
「CharacterArmSpace」は腕の位置を変更できます。腕が服に干渉している場合には調整しましょう。
「Trim」はデータとして書き出す時間帯を変更できます。
「Mirror」にチェックを入れると反転します。
「inPlace」にチェックを入れると、その場に留まるようになります。足踏み等させたい時にはチェックしたままデータ出力してください。
モーションによって、調整可能な項目が増えますので、色々試してみてください。

3.Mixamoからモーションファイルをダウンロードする

モーションをダウンロードする場合は、画面右上の「DOWNLOAD」をクリックします。

DOWNLOAD SETTINGSウィンドウが表示されますので、Formatを「FBX for Unity(.fbx)」、Skinを「Without Skin」にし、DOWNLOADををクリックしてください。

ただし、キャラクター1人について、1つだけSkinを「with skin」でダウンロードしてください。

with skinにするとモーションファイルに、プレビュー表示されているキャラクターの情報が含まれて、キャラクター情報が含まれないwithout skinより5倍以上ファイルサイズが大きくなります。

しかし次の作業にwith skinのデータが必要なので、1つだけはダウンロードする必要があります。

3.Unity上でのモーションの調整

ダウンロードした.fbxファイルをUnityのプロジェクト内にドラッグアンドドロップでインポートし、以下のようにファイルを設定します。

タブ「Rig」

アニメーションタイプ→「ヒューマノイド」に変更します
アバターの定義→「Copy From Other Avatar」に変更します。ただし、WithSkinのモーションは「このモデルから作成」とします。
Source→WithSkinの子オブジェクトになっているアバターを選択する。アバターの定義が「このモデルから作成」の場合は表示されません。
上記3つの設定が終わったら、適用するをクリックして「Animation」タブの設定に移ります。

Rigタブ

タブ「Animation」

歩くモーション等の場合は「時間をループ」にチェックします。
モーションの接地面がズレている場合があるので、インスペクター下部のプレビューウィンドウ(ダブルクリックすると表示される)を確認し、ズレていたらルートトランスフォーム位置(Y)の基準を「足」に変えます。
上記2つの設定が終わったら、適用するをクリックしてください。

Animationタブ(下部)

適用が終わると、.fbxファイルの子オブジェクトにAnimationClipが生成されているので、これをAnimatorに突っ込みます。

ジャンプがガニ股じゃなくなりました
そこには元気に踊る魔理沙の姿が!

次回はステージを作成しようと思います!

<WithSkinのモーションを1つだけ生成する理由>

withoutskinで作成したモーションは全モデル共通なので、モデルの背丈によっては足首が折れてしまいます(以下の動画参照)。

withskinにするとデータは大きく成りますが、そのモデルの背丈等のデータを加味してモーションが作成され、子オブジェクトとしてアバターも生成されます。
そのアバターを他のwithoutskinで作成されたモーションのソースにすると、足首が折れません。なお.vrmのアバターはソースにできませんでした。
今回使用した霊夢と魔理沙のアバターは背丈がほぼ同じなので、2人で1つのwithskinデータで問題ありませんでした。

<Blenderで.vrmから.fbxへの変換を行う理由>

Blenderを通さずに、Unity上だけで.vrmから.fbxへの変換もできるのですが、ボーンのデータが上手くエクスポートされず、mixamoのプレビューでモデルがほとんど動かない状態になったため、Blenderを通しています。

<次回の記事>

<その他・参考記事>

この記事が気に入ったらサポートをしてみませんか?