Unityの忘備録です('◇')ゞ

自分用の忘備録です!

【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を設定しています。

あとはパラメーター(上記画像ではSpeed)の値をしきい値と被らないようにスクリプトで調整すれば上手く行きそうですね!