[UE5.1] ATBTTとRLDBのメモ

ATBTTのチュートリアル動画
RLDBのチュートリアル動画

斜めに移動できなくする
BP_Unit
→ MovementOptions
→ Pathfinding Type
(古)
~BP_UnitのMovementOptions -> DiamondShapedVisibility~

ターンエンドを手動で押下するまで自動でターンが切り替わらないようにする
Moveアビリティ
Deactivateを外す

アビリティの設定

行動終了しても勝手にターンエンドにならないようにする
BP_Unit
の Check if Exhaunsted
をoverride
古い方法↓
BP_TurnManager
BeginNextValidActorTurn外す

ATBTTのユニットのターン終了を呼び起こす

参考になりそうなノード
Get All Actors with Interface

0.セットアップ
移行後の作業
BPI_EventHolder
を片方に寄せる(リファレンス置換)

エラーが発生したとき
親のBeginPlayが呼ばれているかを確認
GlobalDispatcherHubアクターが存在しているかどうかを確認

起動時にユニットの移動量をコントロールする
現在のマナをAPに
BP_GridManager
タイルに踏み込んだときに呼ばれる
BP_Ability_Move
MoveCostType
を変更

Enemy(AI)のターン終了時に何かをする処理の例

Statsのゲームモードのメモ

TurnManager:NotifyPlayerReady
ラウンド開始
TurnManager:NewRound
ラウンド開始
TurnManager:BeginActiveFactionTurn
派閥ターン開始
TurnManager:BeginNextValidActorTurn
アクターターン開始
TurnManager:RunOnActorDeselected
TurnManager:RunOnActorSelected
TurnManager:RunAfterAbilityExcute
TurnManager:EndTurnFromPlayerInput
TurnManager:EndActiveFactionTurn
派閥ターン終了

セットアップ: ターン制御のためにやること
1. BP_PlayerControllerまたはその子ブループリントを下記のように拡張
ATBTTのターン終了ボタンが押下されたときに、アクティブユニットのフラグを管理
旧
ユニットに下記のActorコンポーネントを装着して追加
(旧)BP_Unitまたはその子ブループリントを下記のように拡張
- RoundStart/RoundEndイベントを受け取れるようにする。
- Start時にActionPointを調整
- End時にフラグ管理
Check if Exhausted をoverride
通常はAP==0のときに勝手にターンが終了してしまう。

Abilityごとに攻撃範囲を変える
アビリティのUseUnitAttributesをfalseに設定してみて、ご希望の結果が得られるかどうか確認してみてください。次に、アビリティでRange変数を設定します。
攻撃可能タイル判定

アクションを呼ぶ

Cooldown
利用間隔制限。1ターン経過すると1減少する。
たとえばクールダウンを1に設定すると次のターンまで再利用できなくなる。
Charge
利用回数制限。そのアビリティを使える回数を制限する。
たとえば3に設定するとそのアビリティは戦闘中3回までしか使えない。

[不具合] カードが配られないとき
- Gameplay Tagsの設定を見直す

マナの初期値を変更する(他のStatusの初期値も)
BP_CardPlayer > BP_Status_ManaGain > クラスのデフォルト > Status Value

ターン終了時(カード)

StatValueについて
DT_Units.MaxStatusはなぜか初期値が1000000.000000 とかになる。
普通にDT_Units.Statsを使う。