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

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

Choose your operating system:

Windows

macOS

Linux

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

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

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

ゲームプレイ アビリティ内のロジックは、アビリティを定義するロジック過程において、一連の非同期のビルディング ブロック ( アビリティ タスク として知られている) を呼び出します。抽象クラス UAbilityTask から派生たアビリティ タスクの言語は C++ です。最終結果に応じて、いくつかのデリゲート (C++ ) または出力実行ピン (ブループリント) の 1 つを呼び出します。(例えば、ターゲットを要求するアビリティはターゲットを確定するためのデリゲートまたは出力ピンが 1 つある "aim" タスクとアビリティをキャンセルするものがあります)。

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

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

システムのセットアップ

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

  • [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 のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる