UnityにVRoidで作ったVRMのモデルをスクリプトからアニメーション変更させてみた

Unityのゲーム制作解説動画、第5段です!
「UnityにVRoidで作ったVRMのモデルをスクリプトからアニメーション変更させてみた」
を解説したいと思います!

実は動画だけはずっと前に上げてたんだけどね……
ブログに更新するの完全に遅れてしまったわ

この他にも動画のほうが数個先までアップロードしてるから
こっちの解説の方もさっさとやらないとな

これも冬月さんの計画性のなさが原因ですね
ということで、Unityのモーションアニメーションの解説をしていきます

Youtubeでの解説動画

モデルモーションのブレンドってやってることは複雑ですが、すでにUnity側で簡単にできるような仕組みがあります

やってみるとわかるけど、思ったよりも難しくなく実装できるわ、しかもクオリティアップにつながるから積極的に使っていきたいわね

むしろ一つ一つアニメションを1アクションに合わせて実行するほうがめんどくさいからモーションブレンド一本でやってもいいぐらいだね

DirectXで自前で実装してた頃は、このモーションブレンドだけで1ヶ月ぐらい実装にかかりましたからね……
Unity様様ですね

詳しくコード解説していくよ

動画では全体の流れを見てもらうために、サラッとやっていきましたが、このブログでは処理単位で解説していきます

逆に言うとプログラム側の解説しかしないから、Unity画面での設定を中心に知りたいといった方は動画の方を参考にしてね

今回は覚えれば簡単なんだけど、覚えるまでが厄介な部分だから実際にUnityを触りながら試してもらったほうが良いと思うぞ

かくいう冬月も外国の方の動画を何度も見直して
勉強しました(笑

GitHubはこちら

https://github.com/Syungetu/UnitytoVRMProject

前回と同じようにGitHubでソースコードは公開しているから、こちらも参考にしてみてね

ただ、一部の素材、アセットは各自ダウンロードが必要なのでそのあたりは変わりの素材を用意するなりしてね

アセット周りは利用規約として原則自らダウンロードしたもののみというものが多いからな、申し訳ないがご了承してください

アニメーション周りはほとんどアセットストア便りなので、いくつかダウンロードしておくと良いと思います。今回使う歩行アニメーションも無料版がいくつか見つけられると思います

モーションのブレンド処理解説

ModelAnimatorController.cs

変数宣言

なし

今回の処理は以前作成しました「ModelAnimatorController.cs」を流用しますので新しく変数を定義する必要はありません

というか、ほぼほぼアニメションの処理を少しいじるだけで完了するから、今回ここで説明することも殆どないのよね

モーション処理
/// <summary>
/// モーションブレンドの強さを変更する
/// </summary>
/// <param name="value">ブレンドする変数名</param>
/// <param name="value">強さ</param>
public void SetMotionBlendValue(string name, float value)
{
    if (_ModelAnimator == null)
    {
        return;
    }
    _ModelAnimator.SetFloat(name, value);
}

はい、この処理で今回の解説内容は終了だ
ほとんどUnity側でやってくれるからな、すごく簡単にできるな

_ModelAnimator.SetFloat(name, value);

モーションブレンド処理の肝となる部分はここです
モーション名を「name」に入れて「value」にモーション比率を設定します

モーション設定自体がUnity側で行うので、プログラム側は普通のアニメーション再生を同じような流れで動いてしまうのですね

一つ違うところがあるとすれば、複数のアニメーションの強さを設定する部分が増えたぐらいね

ここの強さの値も、前もってUnityで設定したものだからそこまで難しいことではないと思う

ブレンドアニメーションのUnity側の設定は文章で解説するのは難しいので、動画を見て流れを掴んでみてください

まとめ

ということで、解説になってない気がしますがモーションブレンドのプログラム側の解説でした

普通のアニメーションと同じ感覚で使えるので、ぜひ使って制作しているゲームのクオリティアップをしてみてね

次のUnity解説は作ったモデルを実際に3D空間で移動させてみるぞ
……やっとゲームっぽい解説になるな

動画ではすでに説明済みではありますが、またこちらでもプログラム面を解説していきたいと思ってますので、よろしくお願いいたします!

 

“UnityにVRoidで作ったVRMのモデルをスクリプトからアニメーション変更させてみた” への1件の返信

気軽にコメントをどうぞ!

この記事に関すること冬月に聞きたいこと等、小さいことでもコメントしていただける嬉しいです。冬月に直接連絡したい方は下のお問合せフォームをお使いください。(メール送信されます)

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。※メールアドレスは公開されることは有りません。

Unity | ゲーム製作の関連記事