Unityプログラム解説 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プログラム解説 VRMモデルにモーションブレンドをさせてみた。” への1件の返信

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

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

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


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

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