UE5 エイムとスプリント制限の見直し|GASP-ALS改造

※本サイトはアフィリエイト広告を利用しています。

Unreal Engine 5 で進めている TPS プロジェクトにおいて、スプリント中のエイム制限と、エイム解除時の遅延制限(0.75秒)に関する仕様を見直しました。今回はその内容と背景について簡単にまとめます。

yossi40-100/GASP-ALS@2eef5d0


仕様変更の背景

これまでの実装では、スプリント中はエイム不可エイム解除から通常状態に戻るのに0.75秒かかるという仕様が存在していました。
この仕様は ABP_Overlay_Complex_Base 内のオーバーレイ制御をベースに、アニメーションBP(ABP)側で行動の可否が制御されるような構造でした。

ただし、「プレイヤーの操作可否」をアニメーションの遷移タイミングに依存させるのは、アニメーションとゲームロジックの責務が曖昧になるため、今回思い切ってこの仕様を見直すことにしました。


変更内容の概要

1. ABP の制限ロジックの解除

ABP_Overlay_Complex_Base > AnimGraph > SM_OverlayPose にて以下を修正:

  • WantsToSprint に関連する遷移条件を削除
  • Aiming → Ready の遷移に使われていた CurrentStateTime > 0.75 条件を削除

これにより、エイム解除時の待機時間がなくなり、即時で操作可能な状態に遷移するようになりました。

Sprintだったらの条件も全部消したので、Sprint要求中もエイム可能になりました。

よっしー
よっしー

ちなみに、今回削除したCurrentStateTimeってのが有用そうだなと勉強になりました。


2. キャラクターBP側の制御を見直し

CBP_SandboxCharacter > BattleGraph にて以下の変更を行いました:

  • 旧仕様では「スプリント中はエイム不可」に合わせて発射そのものを禁止していたが、その分岐条件から削除

これにより、スプリント中でもエイム・発射が可能になります。


今後に向けた考察

仮に従来と同じような仕様(例えば「スプリント中は発射不可」)を再導入するにしても、アニメーションBPではなく Character BP 側で制御するのがベストだと考えています。

具体的には、CBP_SandboxCharacter 内で WantsToSprintWantsToAim の変更イベントをトリガーとして、行動の有効・無効を判定する仕組みが望ましいです。
アニメーションの状態遷移はあくまで視覚表現であり、ゲームプレイのロジックとは分離するべきという原則を大事にしていきたいところです。


まとめ

  • エイム・スプリントに関するABP側の制限を削除
  • ゲームロジックは可能な限りCBP側に集約
  • アニメーションとロジックの責務分離を意識した設計へ

これでTPSの操作性がよりスムーズになりました。次回は、武器使用時のロジックをCBPから分離する責務分担の改善について説明します。


  • 🔧使用バージョン:Unreal Engine 5.5.4
  • 🎮ベースプロジェクト: PolygonHive/GASP-ALS

ご意見・ご質問があればコメント欄やX(旧Twitter)DMでもお気軽にどうぞ!

コメント

タイトルとURLをコピーしました