1

アイドル アニメーションまたはウォーク アニメーションがループしているキャラクターがあります。別のレイヤーで、シュート アニメーションを再生します (AddMixingTransform を使用)。入力マネージャーでイベントを使用して、WeaponAnimation スクリプトに信号を送信し、シュート アニメーションの再生を開始します。ループアニメーションです。シュート停止信号を受信したら、WrapMode を 1 回に設定し、Animation.Blend を実行して、シュート アニメーションの残り時間で重みを 0 にします。

マウスを撃ってすぐに放すと、アニメーションが最後まで再生され、アイドル状態のアニメーションにスムーズにブレンドされます。しかし、ループ後にマウスを放すと、アニメーションはブレンドなしでアイドル アニメーションにスナップします。

EndAnim 関数を呼び出すアニメーションの最後に AnimationEvent を使用しようとしましたが、wrapMode が ClampForever であるかどうかを確認し、ウェイト 0 にブレンドして、ブレンドが完了した後にアニメーションを停止しました。これにより、同じ動作が発生します。

誰が何がうまくいかないのか理解できますか?

コードが必要な場合は、どの部分か尋ねてください。スクリプト全体を投稿したくないので、非常に長くなります;)

4

1 に答える 1

0

これらのアニメーションをブレンドするために多くの手作業を行っているようです。

Unity の組み込みクロスフェードを使用できます。

http://docs.unity3d.com/Documentation/ScriptReference/Animation.CrossFade.html

于 2013-01-09T20:26:22.400 に答える