ゲームプレイ アビリティ システム

ゲームプレイ アビリティ システムの概要

Choose your operating system:

Windows

macOS

Linux

ゲーム アビリティ システム は、 RPG や MOBA タイトルで使用される能力やアトリビュートのタイプを構築するための柔軟性の高いフレームワークです。ゲーム内で使用するアクションやパッシブ アビリティ、これらのアクションの結果としてさまざまなアトリビュートを作成または消耗させるステータス エフェクトを構築したり、これらのアクションの使用を制御するための「クールダウン」タイマーあるいはリソース コストの実装をしたり、各レベルでの能力とその効果のレベルを変更したり、パーティクルやサウンドエフェクトなどをアクティベートすることができます。ゲーム アビリティ システムは、近年の RPG や MOBA タイトルに組み込まれているジャンプのように単純なものから、お気に入りのキャラクターのアビリティと同じくらい複雑なゲーム アビリティの設計、実装および効率の良いネットワーク化を容易にします。

アビリティ、タスク、属性、エフェクト

Gameplay Abilities UGameplayAbility クラスの C++ またはブループリントの子です。Gameplay Abilities は、アビリティが実際に何をするのかを C++ コードまたはブループリント スクリプトで定義すると同時に、アビリティをどのように取り扱うか (ビヘイビアのレプリケーションまたはインスタンス化など) という部分も作成します。

ゲームプレイ アビリティ内のロジックは、アビリティを定義するロジックの最中において、一連の非同期のビルディング ブロック ( アビリティ タスク として知られている) を呼び出します。これらのタスクは抽象 UAbilityTask クラスから派生しています。アビリティ タスクは C ++で記述されており、作業が完了すると、いくつかのデリゲート (Cpp) または出力実行ピン (ブループリント) の 1 つを頻繁に呼び出します。たとえば、ターゲットを必要とするアビリティには、ターゲットを確認するための 1 つのデリゲートまたは出力ピンと、アビリティをキャンセルするための別のピンを持つ「照準」タスクがある場合があります。

ゲームプレイ アビリティだけでなく、ゲーム アビリティ システムも ゲームプレイ アトリビュート ゲームプレイ エフェクト をサポートしています。ゲームプレイ アトリビュートは、ゲームまたはアクタに何らかの影響を与える FGameplayAttribute 構造体に格納された float 値です。通常はヘルス値、強さ、ジャンプの高さ、アタック速度などです。ゲームプレイ エフェクトでゲームプレイ アトリビュートを瞬時に、または経時的 (一般的に「バフ」「デバフ」として知られている) に変更できます。魔法をかけた時に魔法ポイントを差し引いたり、「Sprint (ダッシュ)」アビリティがオンの間は移動速度が加速したり、回復薬 1 錠が効いている間はヘルス値ポイントが徐々に回復するなどです。

ゲームプレイ アビリティ システムとインタラクションするアクタにはアビリティ システム コンポーネントが必要です。アビリティ システム コンポーネントは、アビリティを起動し、アトリビュートを格納し、エフェクトを更新し、アクタ間のインタラクションを処理します。ゲームプレイ アビリティ システムを構築し、アビリティ システム コンポーネントを含むアクタを作成したら、アビリティを作成し、それに対するアクタの反応を定義できます。

システムのセットアップ

ゲームプレイ アビリティ システムはプラグインなので、使用するには有効にする操作が必要です。次の手順でプラグインを有効にします。

  • [Edit (編集)] -> [Plugins] ウィンドウで [Gameplay Ability System Plugin] を有効にします。
    GameplayAbilitySystem_Plugin_00.png

  • このシステムを最大限に使用するために「GameplayAbilities」「 GameplayTags 」「 GameplayTasks 」を PublicDependencyModuleNames プロジェクトの「(プロジェクト名) .Build.cs 」ファイルに追加します。パブリック モジュールのリストを探すことで簡単に追加できます。

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });

ゲームプレイ アビリティ システムを使うには、括弧の中のリストのどこかに 3 つのモジュール名を以下のように追加します。

PublicDependencyModuleNames.AddRange(new string[] { "GameplayAbilities", "GameplayTags", "GameplayTasks", "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });

アビリティ システム コンポーネントはゲームのキャラクタがゲームプレイ アビリティ システムにアクセスする際のメイン インターフェイスになります。このコンポーネントは、ゲームプレイのアトリビュートを管理し、ゲームプレイ イベントを実行し、ゲームプレイ アビリティを格納するだけではなく、ゲームプレイ アビリティのアクティベーション、確定、および取り消しコマンドへのプレイヤーの入力を処理します。ゲームプレイ アビリティ システムとインタラクションするアクタにはアビリティ システム コンポーネントが必要です。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル