イラシム 2021/10/02 10:13

モデルにモーションを入れ込み、紳士的な動きをさせる。

この記事について

モデルデータの取得方法の続きで
モーション回りの取得方法と、Unityでの設定や調整方法の一例を紹介します。

モーションデータの取得

MixamoというAdobeが展開している
サービスがあり、アカウント作成のみで様々な
モーションデータを、Fbxファイルで取得できます。
Q&Aに利用についての範囲が明記されています。

多くのショートモーションが用意されており
一般的な動きであれば、そのまま利用できますし
成人向けのゲームにおいても、工夫すれば活用可能です。

モーションの再生方法

まずは、モデルにモーションさせるまでを整理します。

VRMをUnityにインポートする

まずは、VroidHubから取得したモデルをUnityにインポートしましょう。
インポートには「UniVRM」というパッケージを入れる必要があります。
公式ドキュメントから取得とインストールを済ませて下さい。

下記の様になれば、成功です。

ちなみに、「VRM」および「UniVRM」は
「VRM Consortium」というドワンゴが母体の会社から提供されており
MITライセンスでの運用が可能です。

Mixamoのモーションを適応する

次に、モデルにモーションさせたい紳士的な動きをイメージし
Mixamo内のモーションから、近しいものを探します。
大方無いと思うので、それっぽいモーションを見極め取得します。
今回は「Crossleg Freeze」というモーションを拝借します。

取得したモーションをUnityに取り込み
InspectorからRig設定をHumanoidにします。


その後、Fbx内のAnimationClipをCtrl + Dでコピーして取り出します。

VRMモデルは、読み込み時にでAnimatorをAddしているので
AnimationControllerを作成して、Animatorに登録します。
その後、コピーしたAnimationClipをAnimationControllerに登録し
再生を実行すると、下記の様にモーションしてくれるはずです。

モーションを改変して出力

さて、こんなブレイクダンスのモーションを取らせたい訳ではないので
モーションの尺をいじり、紳士的な動きとして調整します。

「Crossleg Freeze」のfbxを選択して
InspectorからAnimationタグを開くと、尺の調整ができます。


Lengthという項目があるので、使用するフレームを指定します。
今回は「63」~「73」フレームを取得したいので
StartとEndにフレーム数を指定して、Applyします。
その後、Fbx内のAnimationClipをコピーすると
下記の様に、指定フレームのモーションとなります。

これだと、ガクガクで何のモーションか分からないですが
AnimationControllerに登録しておきます。

ループモーションとして整える

AnimationControllerでは、モーション(ステート)を複製して
連結する事が可能で、再生速度も調整できます。
登録したCrossleg Freezeをコピー&ペーストすると
もう一つ、Crossleg Freezeが追加されます。
どちらかを選択して、右クリックする事で「MakeTransition」が
選べると思うので、お互いに矢印が向くように設定します。

そして、各モーションの再生速度を指定できるので
片方に「0.1」もう片方に「-0.1」と設定する事で
モーションの再生と、逆再生を交互に行うようになります。

ここまでくると、どの様に紳士的な動きをするか
イメージできて来たかと思いますが、まだ調整は残ってます。

手足と頭の位置を整える

Unityは標準でIK設定用のスクリプトを備えているので
そちらを利用して、手足や頭の位置を調整します。

まず、AnimatorのBaseLayer設定から
IkPassを有効にしておきます。


次に下記スクリプトを、VRMモデルにAddします。
※Animatorの付いてる階層でAddしてください。

vrm_ik_controller.cs (2.34kB)

ダウンロード

指定のTransformに手足と頭を向ける処理なので
適当に、各パーツを付けたい位置を示す、Gameobjectを作成し
Inspectorから登録していきます。
これで再生すると、下記の様になります。


あとは、足場とか、台とか適当に用意して
IKの座標を調整してあげれば・・・

見事に紳士的なりましたね!

まとめ

という事で、短いモーションであれば
デザインスキルがなくても、それなりの表現は可能という例でした。

もちろん
MixamoのデータはBlender等で、修正可能ですので
スキルがある方は、そちらで調整頂いた方が簡単かと思いますが
参考になれば幸いです。

最後に、より紳士的な見た目になるように調整した動画を用意しました
粗末ですが、拝見頂ければと思います。
(フォローは要求しちゃいます・・・すいません・・・)

以上です。

フォロワー以上限定無料

説明した内容を、より紳士的なモデルで実行し、動画に収めました。

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

記事を検索