VRChatのEmote(エモート)作成
VRChatをデスクトップモードでプレイしているとエモートを変更したくなったので方法をメモしておきます。
エモートの変更自体は変更したいアニメーションを用意してアニメーションを変更するだけです。
アニメーションの用意はAssetを購入するのが早いですが欲しいモーションがあるとは限らないのでここでは自作していきます。
自作する場合、検索してでてくるのはBlenderで作る。Unityだと有料アセットを使う。がよくでてきますが
ここではIKを使用してUnityでアニメーションを作成していきます。
AssetのMecanim Example ScenesにあるIK.csを使用します。
assetstore.unity.com
ヒューマノイドのキャラクターにIK.csをアタッチし
Ik Actineにチェックを入れ、Body,Left Foot,Right Foot,Left Hand,Right Hand,Look Atの6つのオブジェクトを設定します。
AnimatorでBase Layerの右にある歯車をクリックしてIK Passにチェックを入れます。
後はAnimationでBody,Left Foot,Right Foot,Left Hand,Right Hand,Look Atの6つのオブジェクトのPositionとRotationを変化させてアニメーションを作成します。
作ったアニメーションはそのままだとVRChatにはもっていけないのでEasyMotionRecoderを使用します。
github.com
EasyMotionRecoderをインポートしたらシーンにEasyMotionRecorder.prefabセットし
MotionDataPlayerコンポーネントおよびMotionDataRecoderコンポーネントのAnimatorにモーションキャプチャ対象のキャラクターをアタッチする。
シーンを再生しRキーを押して録画開始しXキーで録画終了。
開始と終了が成功したかわかりづらいのでDbug.Logで録画開始と終了を表示させてました。
使い方に書いてある通りに
モーション記録して生成されたRecordMotion_2018~~~ ファイルを選択、インスペクタ上で右クリックして「Export as Humanoid animation clips」を選択するとAnimationClipに変換されます。
Y軸がずれるのでオフセットで調整。
これでアニメーションが作成できました。