Unreal Engine学習記録: BluePrintオンリーでFPSゲームを制作③
20220307、今日の進捗
・銃を撃った時の反動を実装するため、キャラクターのBPから直接アニメーションを呼び出せるようにする。具体的にはBPに新しい関数を作り、Animation Montageという機能を使う必要がある。
・Animation Montageはキャラクターの表情・手首から先の一部ボーンの動き等々にも応用できる。これに関しては、のちのオリジナル作品にて実装予定。
・BPが複雑になりすぎたら、Collapse to functionを使ってひとまとめの関数に纏めておく。引数と返り値を必要としない構造にすると整理が楽になる。
敵キャラクターに相当するPawnクラスを作成する。多くの場合Skeletal MeshでできているアクターはPawnで機能が足りる。
・敵キャラクター(ドローン)に着弾したときの反応を設定する。ライントレースでの当たり判定を敵キャラ側にキャストし、破壊された時の関数を呼び出すことで敵キャラを破壊できる。
20220308、今日の進捗
・敵のAIを実装する。SphereCollisionをBPに追加し、SphereCollisionのOverlap Eventに対応する様アクターの設定を変更する。
・敵が主人公を追跡、追いつくと自爆してダメージを与えるという敵キャラとしての機能を実装する。敵キャラの移動にはPawn Navigation, Navigation MeshというUE4上の機能を用いる。
・ドローンの動きをより自然に改良する。SetActorRotationを使って主人公を追従する他、Interpolationという機能で回転をスムーズにする
・ドローンを巡回させるルートを設置する。Linked Listという概念をUE4のアクターに適用し、ドローンが各アクターへ向かっていくようにする。ドローンが各アクターを訪れて次のアクターへ...という動作を繰り返すようにする。
・UIを配置する。主人公のHP、武器の残弾、クロスヘア等々ゲーム内の情報をプレイヤーに伝達するのに必須。UIの初期化は主人公のアクターがEvent BeginPlayを実行すると同時に実行される設定にする。
・敵キャラクターのHP・主人公の弾丸が敵キャラに与えるダメージを設定する。HP・ダメージを変数として保管する他、ApplyDamageという関数を主人側からキャストして使用する。
・主人公のHPを設定する。まずはCharacterHUD上にProgressBarを配置し、主人公のBPからキャストした値をHUDのBPへと繋ぐ仕組みにする