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をクリックし色を指定

UE4/5 アニメーション設定とプレイヤーに割り当ておさらい

バージョン4.23.1でブラウザゲームをつくれるようなので、ダウンバージョン?に挑戦

 

アニメーションリターゲット
ケルトンを開く
上のリターゲットマネージャーボタンをクリック
リグを選択でヒューマノイド(Humanoid)リグを選択
ボーンの名前がソースとターゲットに表示されるので一致しているか確認する
ModifyPoseボタンを押してUseCurrentPoseを押す
セーブ

アニメーションスターターパックに移り
UE4Mannequin→Mesh→UE4_Mannequin_Skeletonを開く
同じようにリターゲットマネージャーボタンをクリック
リグを選択でヒューマノイド(Humanoid)リグを選択
ボーンの名前がソースとターゲットに表示されるので一致しているか確認する
ModifyPoseボタンを押してUseCurrentPoseを押す
セーブ

コピー元(アニメーションスターターパック)にもどり
アニメーションシーケンスを選択
RM→Animアセットをリターゲットする→Animとリターゲットを複製する
下のスケルトンアセットを選択する
コピー先のフォルダを指定する
リターゲットボタンを押す

ブレンドスペース作成
名前IdleWalkRun
開いてNameをSpeed、値を600、分割2、アニメーションを下に置く

アニメーションBP作成
下のスケルトン選択
アニメグラフをRM→AddNewStateMachine
名前をLocomotion
最終アニメーションポーズにつなぐ
Locomotionを開いてアセットブラウザからブレンドスペースをドラッグして配置、Entryからつなぐ
配置したブレンドスペースを開きブレンドスペースプレイヤーのSpeedをドラッグして変数に昇格、名前をSpeedにする
イベントグラフに移り
イベントBlueprintUpdateAnimationから引っ張りIsValidを追加
TryGetPawnOwnerとIsValidのInputObjectをつなぐ
TryGetPawnOwnerから引っ張りGetVelocityを追加
GetVelocityから引っ張りVectorLengthを追加
SpeedをSetで配置、IsValidからつなぐ
VectorLengthのReturnValueからSpeedにつなぐ

BPのメッシュに作ったアニメーションBPを割り当てる

プレイヤーに割り当てる
ブループリントクラス→GamemodoBaseを選択、名前をBP_MyGameMode
BP_MyGameModeを開く
右側クラスのDefaultPawnClassをBP_Playerに設定
プロジェクト設定のゲームモードをBP_MyGameModeにする
ワールドセッティング
ゲームモードオーバーライドをBP_MyGameModeに設定
※PlayerControllerは使いまわせるが、GamemodoBaseはつくらないとダメっぽい

UE5 テスト環境設定

古いPCを引っ張り出してテストマシンにしようと思ったが、これがまた沼っぽい

詳細情報をクリックすると↓になるので、実行ボタンを押す

 

 

下記のリンクから入手可能

Visual Studio 2015、2017、2019、および 2022のところ

サポートされている最新の Visual C++ 再頒布可能パッケージのダウンロード | Microsoft Docs

 

下記のリンクから入手可能

DirectX エンド ユーザー ランタイム Web インストーラのところ

Download DirectX エンド ユーザー ランタイム Web インストーラ from Official Microsoft Download Center

 

グラフィックカードのダウンロードページで入手可能

 

あと、セキュリティソフトがゲームのexeを無慈悲に消すw



色々やって起動できたものの、FPSが遊べる状態ではないので、中古のグラボを購入www

 

参考HP

【スペック一覧】DirectX 11/12対応GPU仕様一覧表 - PC Watch

【フォートナイト】起動しない。「DX11 feature level 10.0 is required to run the engine.」問題発生 | パソいじっ!!夫婦ブログ

 

 

 

 

 

UE5 今日覚えた事

参考HP

Unreal Engine での Player Start アクタ | Unreal Engine ドキュメント

 

プレイヤーのスタート位置を指定するには、Player Start アクタを配置する

Player Start アクタは、[Modes (モード)] パネルの [Basic (基本)] カテゴリにあります

 

参考HP

📰blueprintUEでノードを保存,コピペしよう [UE5入門チュートリアル #3-7]

 

プロジェクトをまたいでノードをコピペできるサイト

blueprintUE | PasteBin For Unreal Engine

UE5 サウンド関係おさらい

サウンドクラスの関連付け
SC_Masterを開いて、その子として SC_BGM と SC_SE を設定する

使用する Sound Cue に Sound Class を割り当てる
SoundCueを開いてSoundClassを割り当てる

サウンドミックスとの関連付け
サウンドミックスを開き、サウンドクラスを割り当てる

サウンドの再生
鳴らしたいところでPlaySound2Dを呼び出す
BGMならEvent Begin Play から Play Sound 2Dにつなぐ
SEなら当たり判定のところなどなど

SoundCueを作る
SoundWaveを右クリック→「Create Cue」でSoundCueを作成できる

 

グローバル変数

Project設定のMaps&Modesから
作成したBP_GameInstanceを選択します。
BP_GameInstanceを開き変数MasterVolumeを追加、Float型

レベルブループリントを開く
Get Game Instanceは、ProjectSettingsで設定した
Game InstanceがReturnされる
なのでCastTo~で変数を参照できる(できないときは何度か再起動)

UE5 ビヘイビアツリー追記

新規タスク時にオーバーライド選択するReceiveExecuteAI
タスクの開始時に1回呼ばれる関数

 

シーケンスに条件を追加する
シーケンスをRM→デコレーターを追加→選ぶ(ConeCheck等)

 

ConeCheckは行動範囲内のActorにしか実施されない

UE5 今日覚えた事

カスタムイベントをつくる

イベント遷移先のBPにRM→AddCustomEventを追加、名前をつける
引数が要る場合はノードを選択し、詳細→インプットの+ボタンを押し、名前、型を入れる

イベント遷移元のBPにCastTo~を追加、AsBPから引っ張りカスタムイベントの名前を検索すると出てくる

 

処理を別のBPに受け渡すときとかに使うのか?