【Unity】BlendTreeを使うと足音がミックスされちゃう時の対処法
アニメーションのイベントの項目で足音などのSEを設定できますが、
BlendTreeでアニメーションの切り替えを行う際に、2つのアニメーションの音が
同時に再生されてしまう問題が発生しました('◇')ゞ
そもそもBlendTreeはアニメーションをいい感じにミックスしてくれる機能なので、
音もミックスされるのは自然な事なのかもしれませんが、足音だと困ってしまいます!
改善した結果の動画
youtu.be
キャラクター素材 © Unity Technologies Japan/UCL
音素材 魔王魂様: https://maou.audio/
僕がある程度触って分かったことなのですが、
BlendTreeはパラメーターの数値が、アニメーションのしきい値とピッタリの場合はそのアニメーションのみ再生される。
ピッタリでない場合は、パラメーターの数値に近いしきい値を持つ2つのアニメーションがミックスされるようです。
なので全てのアニメーションにSEを設定するのではなく、1つ飛ばしで設定します。
でもこの時、SEが設定されていないアニメ―ションのしきい値にパラメーターの数値がピッタリ合ってしまうと当然SEは再生されないので、ピッタリにならないように調整する必要がありますね!
スクリプトでパラメーターの数値をしきい値と被らない数値にすればOKです。
下の図ですと、しきい値は赤丸の項目です。変更も可能です。
その右の数値はアニメーションの再生速度を変更できる項目です。
4番目の走るアニメーションは3番と一緒ですが、再生速度を1.7倍速にしています。
上記のように同じアニメーションを使う場合、同じアニメーションですとイベントが被ってしまうので、アニメーションをコピーして2つにし、SEのあるなしで分けるといいと思います。

下の図ですと、赤字の2と4にのみSEを設定しています。
