2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unityのアニメーターで、サイクルオフセットが使えない?

Last updated at Posted at 2022-08-23

こんにちは、ユーゴです。
今回は、Unityでアニメーター(Animator)を使っていたときに起きた問題と解決策を紹介します。
ちなみにタイトルには「サイクルオフセットが使えない」とありますが、厳密には「欲しかったのがサイクルオフセットじゃない」です。

やりたいこと

アニメーターで「アニメA → アニメB」に遷移する時、アニメBの冒頭数秒を切り取りたい。
また、「アニメAが10秒・アニメBが10秒」の時、アニメBの冒頭5秒(任意)を切り取って「アニメAが10秒・アニメBが5秒(任意)」にしたい
img1.png

やったこと&起きた問題

サイクルオフセットを使う(0~1の割合で指定。10秒なら0.5で5秒)。
しかし、上記の例だと、アニメBが10秒のまま変わらない。
スクリーンショット 2022-08-23 19.58.22.png

原因

Cycle Offsetは、開始と終了をずらす。つまり、カットしたかった冒頭は、末尾に付け足される。
img2.png

解決策

Cycle Offsetではなく、「Transition Offset」を使う。同じく、0~1の割合で指定。
スクリーンショット 2022-08-23 20.11.26.png

ちなみに

私は、VRChatでアニメーターをいじっている時に遭遇した問題でした。アニメーター内部に遅延処理を入れたかったため、10秒ある空のアニメーションを用意し、望みの秒数だけそれを切り取って実装しようとしました。しかし、10秒という時間が変わらず、しかも空のアニメーションなので何が起きているのか分かリませんでした...
結局、別バージョンで別プロジェクトを立ち上げ、2Dにした上でオブジェクトを用意し実行しました。その結果、そもそもサイクルオフセットの使い方が違ったということでした...(T T)

まとめ

いかがだったでしょうか。今回は、アニメーターでサイクルオフセットが使えないという問題の解決を紹介しました。厳密には「欲しかったのがサイクルオフセットじゃない」でしたが...
このように、初歩的なミス紹介から、かなりニッチで高度なテクニックまで幅広く扱っていく予定です。もし気に入っていただけましたら、LGTM&フォローの方よろしくお願いいたします。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?