CG関係の備忘録ブログ

主にZBRUSH、blender

UE4/5 今日覚えた事

参考動画

【UE5初心者講座】#4 AIがプレイヤーを発見したらAIにプレイヤーを追いかけさせる - YouTube

【UE5初心者講座】#5 AIに攻撃させ、プレイヤーを発見したらロゴの色を変える (前回の修正もあります) - YouTube

 

AIデバッガー
AIBPControllerをひらく
コンポーネントの追加ボタンでAIPerception
詳細→AIPerception→SensesConfig→+→AISightconfig
→△マーク→視認距離が設定できる
Detection By Aff...に3つチェック入れる

プロジェクト設定→engin→GameplayDebugger
Activationキーを適当に他割り当て

AIPerceptionはテンキー5を押す

ルーチン改造
AIPerceptionを選択し詳細→OnTargetPerceptionUpdatedを追加
Actorから引っ張り==を追加
SelectAssetから引っ張りGetPlayerCharacterを追加
Branchを追加し==のConditionとつなぐ
OnTargetPerceptionUpdatedとBranchをつなぐ
Trueから引っ張りSetValueasObjectを追加
Targetから引っ張りGetBrackBoardを追加
KeyNameから引っ張りMakeLiteralNameを追加
ValueをTargetActor
ObjctValueとOnTargetPerceptionUpdatedのActorをつなぐ

SetValueasObject、GetBrackBoard、MakeLiteralNameをこぴぺしFalseとSetValueasObjectをつなぐ
MakeLiteralNameのValueをNoneにする

OnTargetPerceptionUpdatedのStimulusから引っ張り変数カテゴリのAIStimulusを分解(BleakAIStimulus)を追加
下を開いてSuccessfullySensedから引っ張りBranchを追加
前のBranchのTrueからつなぐ
追加したBranchから2つのSetValueasObjectにつなぐ

※SuccessfullySensedがTrueのときに視認されて

ブラックボードを開く
TargetActorのkey type→BaseClassをActorにする

ビヘイビアツリーでルート、セレクターから分岐
シーケンスのデコレーターを追加→BlackboardBasedConditionを選択、詳細のBlackboardKeyをTargetActorにする
FlowControlのObserverAbortsをBothにする
※Bothにすることにより、TargetActorが更新されると、即座に行動に反映される
名前をFindTargetにする
MoveToを追加しBlackboardKeyをTargetActor
Waitを追加

 

マテリアル設定
元の色を保存
CastToエネミー GetControlledPawn
CastToエネミーのAsBPからGetMesh
GetMeshからGetMaterial
ReturnValueからCreateDynamicMaterialInstance(Primitive)のほう
TargetはGetMeshに
SourceMaterialはGetMaterialに
ReturnValueから変数MaterialInstanceに昇格して格納
MaterialInstanceからGetVectorParameterValue
ParamaterNameをマテリアル画面の項目名(BodyColor)にする
ReturnValueから変数xxxxに昇格して格納

色を変える
GetMaterialInstanceからSetVectorParameterValue
ParamaterNameをマテリアル画面の項目名(BodyColor)にする
Valueをクリックし色を指定