Language:
Page Info
Engine Version:

ARPG のスキル アビリティ

Action RPG (ARPG) ではスキルはメレー アビリティと同様に機能しますが、ターゲティングとコストに対しては異なるロジックを使用します。ファイアボール以外のすべてのスキルおよび武器の二次攻撃では、メレー アビリティに似たブループリント ロジックを使用しますが、実際のターゲティングはブループリントで実行されます。 TargetTypes は、コリジョン トレース ロジックの実行を有効にする インスタンス化されない const ブループリント (またはネイティブ クラス) です。特に TargetTypes では、球体コリジョン形状を使用して一連のトレースを行う TargetType_SphereTrace のブループリント サブクラスを使用します。異なる範囲や半径を必要とする各スキルは TargetType_SphereTrace のサブクラスを作成し、そのサブクラスを EffectContainerMap で使用します。 TargetTypes は ARPG 特有のクラスであり、非予測のゲームでターゲティングを実行する方法を示す例と言えます。多くのゲームにはより複雑なターゲティングが含まれており、パフォーマンス上の理由で、ネイティブ コードで全体的に実装することが推奨される場合があります。

スキルには、ダメージ エフェクトに加えてクールダウンとコストが含まれています。例えば、 GA_PlayerSkillFireWave アビリティは GE_PlayerSkillFireWave ダメージ エフェクトをポイントし、さらにマナの使用を処理するために GE_PlayerSkillManaCost を、そしてクールダウンを管理するために GE_PlayerSkillCooldown エフェクトをポイントします。コスト エフェクトはマナを削減するシンプルなインスタント モディファイアですが、コストを賄えない場合はアビリティを実行させません。クールダウンは、アクティブ時に GameplayTag を適用する、持続時間のゲームプレイ エフェクトです。アビリティ システム コンポーネントでこの GameplayTag がアクティブな場合は、それをクールダウン タグとして使用する他のアビリティのアクティベートは許可されません。これにより、複数のアビリティ間でクールダウンを共有したり、UI システムからクールダウンに関するクエリを実行したりすることができます。

GA_PlayerSkillFireball アビリティはより複雑なアビリティで、アビリティ システムを使用してプロジェクタイルを実装する方法を示す例と言えます。下の図では、 GA_SpawnProjectileBase からのアビリティ ブループリント ロジックを示しています。

クリックしてフルサイズで表示

ほとんどのロジックは GA_MeleeBase と同じですが、イベントを受け取った際にはエフェクトをすぐに適用するのではなく、 EffectContainerSpec を作成して、これをスポーンされた BP_AbilityProjectileBase ブループリントに渡します。次に、このプロジェクタイルが移動して、オーバーラップされたアクタを探します。アクタとオーバーラップすると、新しいターゲティング情報と共に渡された EffectContainerSpec を変更して適用します。これが、以前からの ApplyEffectContainer 関数が半分に分割された理由です。この方法は、プロジェクタイル自体は独自のアビリティ システム コンポーネントまたは属性を持つ必要がないことと、元のアビリティを実行したものの属性を使用できることを意味しています。