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

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

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" });

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback