本文へスキップ
LABMenu

uMotChange(ゆーもっとちゃんげ) [Unity, Asset, 3D, CustomEditor, エディタ拡張, モーション変化設定]


このツールの概要

Unityの拡張エディタとしてのモーション変化設定エディタです
単純構造 2階層(モーション変化前とモーション変化後の2階層)のツリービューで設定するのが特徴です
複数モーション入りfbxやVRMにUnity上でモーション変化設定

MITライセンスです


どうしてツリービューなのか?どうして2階層なのか
モーションの変化モーションの切り替えとは
いつでも
変化前モーションとイベントと変化後モーションの3要素。
(言い切ったった)
(。が付いてるし大丈夫でしょ!?)
つまりはモーションの変化切り替えの設定としては
変化前モーション名と変化後モーション名の2階層ツリービューにイベントプロパティが付いていれば良い
これは体の部位ごとに異なるモーションをさせるような設定にも拡張可能
(実際にRokDeBone2ではmoa(モーションアクセラレータ)に対するmoeとして機能を作成)
後はイベントをプログラミングすればそれはゲームである。
そういう考えにより今回のエディタ拡張は出来た




図1:Unityのエディタの拡張によるmoa読み込みと設定




図2:VRoidにRokDeBone2のmoaを適用
Unity上でキーボード入力によりモーションと表情を切り替え



具体的に噛み砕いて書くと
イベント番号(キー入力)との対応でモーションが変化
モーションの再生が終わるとアイドリングモーションへ変化
モーション再生が終わる前にキー入力が有った場合には指定モーションへブレンドしながら変化
というベーシックな変化の仕方をします
ツリービューで簡単設定するというところがUnity標準機能と違います


このツールの作成目的

昔々、RokDeBone2のモーションアクセラレータ(moa)という機能を作りました
モーションの変化の仕方の設定に関するものです
この過去の資産をこれからのUnity利用に使おうというところから始まりました。

ついこの前も更新したMotionBrushについても
複数のモーションを1つのfbxに格納できるものの
その変化の仕方の設定がぁーという状態でした

RokDeBone2のmoaファイルに対応すれば古い資産には対応できますが
これからのことを考えてmoa読み込みだけではなく編集機能も付けることにしました

これからは仕事もC#を使うものが増えています
一番の理由はその就職準備だったりします

ダウンロード


2022/01/23
ver0002 実行時警告に対応


2022/01/24
ver0002 公開停止

配布方法検討中
ツールを配布するよりもそれによる成果物を公開した方が歓迎される??と思って。



使い方


uMotChangeの使い方を図1から図15に示す

図1から図8までの手順はuMotChangeを使わない場合にもする設定(準備として説明しておきました)

図9から図15がuMotChangeの使い方



図1 uMotChangeをインストール


図2 複数モーション入りfbxをインストール


図3 fbxのRigの設定

図3ではHumanoidを選びましたが
ギターを持っているモデルデータに対してHumanoid設定するとギターは動かなくなります
VRMなど他のモデルに対してモーションをリターゲットしないのであれば
HumanoidではなくGeneralにすると良いです
Generalならギターも動きます



図4 fbxのAnimation,Motionの設定

図4の項目は
体全体の回転の中心にも影響します
モーションを再生できるところまで手順を進めてみて
回転の中心が違うようならここ(Root Motion Node)の設定が違います
いろいろ試してみてください
例えばRootNodeという名前のボーン指定の方が良いことがあります



図5 Animator Controllerの作成



図6 fbx設定



図7 fbxにAnimator Controllerを関連付け



図8 カメラにfbxが入るようにMainCameraのパラメータを設定


図9 uMotChange アセットを作成



図10 uMotChangeアセット作成時のオプションは2つ。moaファイル読み込みあるいはfbxから新規作成

今回は手順の説明なので
説明が必要なfbx fileボタンを押します

RokDeBone2のmoaファイルを読み込む場合にはmoa fileボタンを押します
その場合には階層も読み込まれるので編集操作が少なくて済みます




図11 uMotChangeアセットのアイコンをクリックするとInspectorに設定画面



図12 uMotChangeでモーション変化の設定 イベント番号はキー入力と対応している



図13 uMotChangeのスクリプトを出力



図14 出力したuMotChangeのスクリプトをfbxのコンポーネントに追加する(ChangeAnimTest.csをfbxにドラッグアンドドロップ)



図15 プレイボタンを押して実行 キー入力に対して設定どおりにモーションが変化


ChangeAnimTest.csの中でイベント番号をキー入力に対応付けています
この辺りはお好みのイベントに対応付けし直すのも良いでしょう



ナビゲーション