見出し画像

Unreal Engine学習記録: BluePrintオンリーでFPSゲームを制作④

20220309、今日の進捗

・銃をセミオート射撃できるように改良。後に改良を加える際には、銃の種類に応じてセミ・フルを切り替えられる様な設計を考案しておく。

・銃関係のゲーム性を充実させる。具体的には、残弾数をHUDに表示、弾丸をフィールド上で拾える等々のゲーム的要素を追加する。

・主人公側にAddAmmoという関数を作り、弾丸のアクター(AmmoPickupActor)からキャストして弾を拾える機能を追加する。

・主人公が敵キャラにダメ―ジを与えた時の反応を追加する。具体的には、HPが主人公の攻撃によって減った際に移動目標を主人公に変え、自爆する様設定する。

20220311、今日の進捗

・GameModeを設定する。GameModeは、ゲーム全体の進行状況などを管理するのに用いるアクターである。

GameMode、およびDefaultPawnの設定を変える際に変更するべき箇所

・GameModeの情報を画面に反映するための新しいHUDを制作する。ゲームオーバーまでのカウントダウン、ドローンの残機数などを表示させる。

・Drone_BPのクラス数をゲットし、HUDに反映するという処理を加える。ドローンの数が減ったときに新しい残機数を表示し直す関数も追加し、ドローン側からキャストして使うようにする。

・ワームアップと時間制限、プレイヤーの勝利条件と敗北条件を設ける。ドローンを全滅させればプレイヤーの勝利、時間切れ・HPが0になるとプレイヤーの敗北になる。

・Enumsという名前付きのInt型係数を使用する。主にゲームループ・プレイヤー・敵キャラクターの状態を管理するのに使われる係数である。

・GetGameTimeInSecondsという機能を使ってWarmup時のカウントダウンを実装する。カウントダウン中は入力を受け付けないよう、DisablePlayerInputという関数を作ってそちらにも対処する。

 入力を拒否するにはGetPlayerPawnからDisableInputという関数をキャストすれば良い。またカウントダウンが終了したら、StartGameという関数を使って次のEnums係数にゲームループを移行する

・残り時間をTime形式にして表示できるようにする。
・ゲーム開始時、ゲームオーバー時の状況を表示するアナウンスメントを設ける。
・プレイヤーの勝利→ドローンを全滅したかをチェックする
・プレイヤーの敗北→制限時間が0になるか、プレイヤーのHPが0になるかをチェックする

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?