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つのオブジェクトを設定します。
f:id:kanabun500kanabun:20181022215204p:plain

AnimatorでBase Layerの右にある歯車をクリックしてIK Passにチェックを入れます。
f:id:kanabun500kanabun:20181022214729p:plain

後は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で録画開始と終了を表示させてました。
f:id:kanabun500kanabun:20181022225039p:plain

使い方に書いてある通りに
モーション記録して生成されたRecordMotion_2018~~~ ファイルを選択、インスペクタ上で右クリックして「Export as Humanoid animation clips」を選択するとAnimationClipに変換されます。

Y軸がずれるのでオフセットで調整。

これでアニメーションが作成できました。