この記事は、Unreal Engine (UE) Advent Calendar 2024 シリーズ4の2日目の記事です。
コヨーテタイムとは
アクションゲームを作る際に、難易度設定、手触り感が問題になることが多々あります。
不快感を減らす対策の一つとして、崖から落下した少しの間ジャンプ可能な状態にするという方法が、
コヨーテタイムと呼ばれ、広く好意的に受け入れられています。
この手法を、ブループリントで実装する方法を記事にしようと思います。
ブループリント実装例
方法論は、いくつもあると思いますが、実装のし易さ、理解のし易さの点から、
以下のようなブループリントの組み方が良いのではないかと思います。(キャラクターブループリント内)
- 地面からキャラクターが落下した際に呼ばれるイベントノード。
- [2] 落下時に、Jump Count が 1つ消費されるので、一時的に、Jump Max Count を増やします。
- [0.2] ここで指定した秒数が、コヨーテタイムになります。
- [1] コヨーテタイム終了後、Jump Max Count をリセット。
完
補足
前述一連のノードで基本的には、機能の実装としては終了ですが、
コヨーテタイムを長めに設定した場合、2段ジャンプが可能な瞬間が発生する可能性がある為、
以下のノードも追加しておくと安全かなと思います。
- キャラクターが地面に着地した時に呼ばれるイベントノード。
- [1] Jump Max Count リセット。
以上のノードを組むことで、意図しない2段ジャンプが可能なタイミングを消すことができます。
最初から2段ジャンプなどが可能な仕様の場合、
Jump Max Count の値を全体的に「+1」すると良いと思います。
あとがき
今回は、検索をかけても意外と方法を見かけなかったので、
実装法(の一例)を記事にしてみました。
記事上効果がわかりやすい値にしているので、コヨーテタイムは好みの時間に設定して下さい。
以上です。
アドベントカレンダー3日目もお楽しみに。
ご意見などTwitterのリプライにいただけると助かります。