参考動画
• 【UE4でTPSゲーム制作実況】#23 ダメージ処理【メタルギアソリッドをUE4で作る】
動画内で使ったのは参考(=リンク先の)EAIだけ=playerは基本的にできあがったノードを使っている。
わかったこと
①死亡処理(死ぬときのアニメーション)のアニムモンタージュは複数準備する必要あり(=ランダムを使う場合)
②play anim montageはあまり好まれていない=play montageを推奨するYouTuberが複数いた。
③montageを使うにはslot default slotが必要
自分自身で追加した設定=bp eai -shoot -add delay =撃つ間隔をdelayで設定した。
問題点:AIに1回ダメージを与えたあと、AIは動かなくなる。=修正必要
理由:参考動画の最後の方で、敵にダメージを与えているがアニメーションが機能していないように見える。(=play anim montage)
ここからの説明はあくまで参考動画↑の内容。
アニムモンタージュの作成
select animations (getting hit) -rc -create -create anim montage
playerがダメージを与える処理
bp chara
line trace by channel (既存) -apply damage
-outhit/line trace by channel -add hit/break hit result/hit actor -damaged actor -base damage=10
AIがダメージを受け取る処理
bp eai
event any damage
add variable -name health -float -default val=100
event any damage -SET/health
damage/event any damage -minus (-) -health/GET -health/SET
注意:health - damageになるようにする(計算式)
health/SET -branch -condition ON
output/SET/health -add <= (0.0) -condition/branch
AIの動きを止める
add character movement (component) -add target/disable movement -true/branch
add mesh (component) -target/set simulate physics -simulate ON
set simulate physics -disable movement
add capsule component -add target/set collision enabled
set simulate physics -set collision enabled
死亡したら攻撃ができないようにする(変数の作成)
add vari -name is alive ? -boolean -default vari=true=ON
capsule component/GET -target/set collision enabled
add is alive/SET -set collision enabled
これで体力がゼロになると死亡扱いになる
死亡扱いの設定1 (=生きているときだけ攻撃ができる)
event attack (既存) -add branch
event attack -branch -get data table row weapon data table (既存)
is alive/GET -condition/branch
死亡扱いの設定2 (=生きているときだけperceptionができる)
AND (既存 start=on target perception updated)
is alive/GET -AND (add pin) -condition/branch (既存)
補足:AIが死亡したら攻撃をとめる方法(変数AliveをBPs間で共有する)
参考動画
• Unreal Engine AIに生きているときだけ攻撃させる 変数(Alive)を...
ランダムにモンタージュを再生する(アニメーション=getting hit=死亡のモンタージュではない)
add vari -name hit montages -details -type=anim montage -array (配列にすることを忘れないこと) -compile
default vari -複数のanim montageを入れる
bp eai
branch/false (既存) -add play anim montage
GET/hit montages -add GET (array) -anim montage/play anim montage
GET input pin -add random integer in range -min=0 -max=入れたモンタージュの数ー1