9.1K Views
June 14, 24
スライド概要
GameplayAttribute を BP だけで使いたい! UE Tokyo .dev #3 Metaseven
自己紹介 Metaseven(めたせぶん) 𝕏: @suramaru517 ゲームプログラマー2年目 エルデンリングの DLC が楽しみ 2
本題は23ページから 3
今回のテーマ GameplayAttribute を BP だけで使う 4
GameplayAttribute is 何 5
公式ドキュメントより Gameplay Ability System では、Gameplay Attributes (FGameplayAttribute) を使用して、ゲームプレイ関連の浮動小数点値の格納、計算、修正を実行しま す。これらの値は、キャラクターの残りの体力ポイント、車両の最高速度、アイ テムが破損するまでに使用できる回数など、オーナーの特徴を表すことができま す。Gameplay Ability System のアクタは、ゲームプレイ アトリビュートを Attribute Set に格納します。アトリビュート セットは、ゲームプレイ アトリ ビュートとこのシステムの他の要素との間のインタラクションの管理をサポート し、アトリビュート セット自体をアクタの Ability System コンポーネントに登 録します。これらのインタラクションには、値範囲のクランプ、ベース値を永続 的に変更するイベントへの反応、および一時的な値の変更を適用する計算の実行 などがあります。 6
7
Gemini に聞いてみた 8
AI 様の御回答 9
…大体合ってる? 10
つまり… GameplayAttribute とは: 体力とか攻撃力とかのステータスを扱うときになんか便利なやつ 11
もうちょっとちゃんと説明すると… GameplayAttribute とは: Gameplay Ability System (GAS) の一機能であり 体力や攻撃力といったゲームプレイ関連の float 値を 楽に管理できるようにするための仕組み GAS の概要については、こちらのスライドがわかりやすい! Unreal Engine の開発が楽になる便利機能を紹介 DataAsset, Subsystem, GameplayAbility編 | ドクセル 12
ぼくも使ってみたい! 13
14
ただ… 15
16
【悲報】GameplayAttribute の欠点、見つかる 17
GameplayAttribute の最大の欠点 C++ 必須 18
まとめ いかがでしたか? 今回は BP だけで GameplayAttribute を使う方法についてまとめてみました。 GameplayAttribute を使うためには C++ が必須なようです。 参考になれば嬉しいです。 19
20
【朗報】BP だけで使う方法、見つかる 21
そして本題へ… GameplayAttribute を BP だけで使う方法4選 22
1. KM_GAHelperForBP 23
KM_GAHelperForBP とは Unreal 系 VTuber の九里江めいくさんが無料で公開しているプラグイン 【UE4ゲーム制作講座】GameplayEffectをC++を書かずに使って無限回復と継続ダメージを作る - YouTube 24
KM_GAHelperForBP のしくみ EditorUtilityWidget に入力した情報をもとに GameplayAttribute の C++ コードを自動生成する 欠点:UE 4.26 - 5.0 のみ対応なので、最新の 5.4 ではコードの修正が必要 25
2. GAS Companion 26
GAS Companion とは GAS のあらゆる機能を C++ / BP 問わず 簡単に使えるようにしてくれるプラグイン GameplayAttribute 含む本来 C++ 必須の機能を C++ の知識なしに使うことができる UE マーケットプレイス にて $24.99 で販売 (私も愛用、超おすすめ!) 27
GAS Companion のしくみ 専用のウィンドウに入力した情報を もとに、GameplayAttribute の C++ コードを自動生成する 欠点:実質 C++ を使っている 詳細は ドキュメント を参照 28
3. GameplayAttributeForBP 29
GameplayAttributeForBP とは 私が GitHub にてオープンソースで 公開しているプラグイン C++ を一切使用せず BP のみで GameplayAttribute を扱える(※) UE 5.1 - 5.4 に対応 ※ハイパーゴリ押し実装なので 製品での使用は非推奨(詳細は以下の記事で) 【UE5】GameplayAttributeをBPのみで定義する - Qiita 30
GameplayAttributeForBP のしくみ 実は BP で Attribute を定義すること自体は元から可能だが Attribute のリストには C++ で定義したものしか表示されない じゃあ BP で定義したものを C++ で定義したってことに偽装しちゃえ☆ 31
4. Gameplay Blueprint Attributes 32
Gameplay Blueprint Attributes とは 正真正銘、BP だけで GameplayAttribute が使えるようになるプラグイン 先述の GAS Companion と同じ作者が制作していて GAS Companion との併用も可 UE マーケットプレイス にて $29.99 で販売 実はほんのちょっとだけ協力させていただいたので クレジットに載らせていただいております… ステマじゃないよ! 33
Gameplay Blueprint Attributes のしくみ 詳細な仕組みについてはドキュメントの内容を超えるので話せませんが… 専用の UI がいくつも用意されており そこから入力していくだけで OK Attribute 設定の DataTable 化や C++ クラスへの自動変換も可能 機能の詳細は ドキュメント を参照 34
まとめ いかがでしたか? 今回は BP だけで GameplayAttribute を使う方法についてまとめてみました。 ● ● ● ● KM_GAHelperForBP GAS Companion GameplayAttributeForBP Gameplay Blueprint Attributes ←おすすめ 今後も GameplayAttribute から目が離せません! 35