【UE4】無料アセットで簡易TPS作成! Part4
この連載では無料アセットを使って、キャラクターに武器を持たせて弾を発射できるようにしてみたいと思います!
TPS(サードパーソンシューティング)ゲームの基礎部分が出来上がる想定です。
とりあえずPIE上で疑似マルチみたいなもの(ダメージ判定等)が動く状態までを目標にしています。
初めての方は過去の記事も参考にしてください。 ⇒ 記事一覧
■環境
Unreal Engine 4.22.3
■今回の内容
キャラクターにHPを実装してみましょう!
UIを作成してHPを画面に表示する処理も作成する予定です!
■キャラクターにHPを実装
次はキャラクターに体力を実装してみたいと思います。
「MyTPSCharacter」をブループリントエディタで開いて、画像の通り変数「Health」を作成してください。
レプリケーションの設定を「Replicated」にすることでマルチ対応を行っています。
体力の値は適当に100に設定しています。
HPの実装自体はこれで完了です!
プログラムとかやったことがある人にとっては変数を用意しているだけですね。
■ダメージを受けた時の処理を実装
続けてBulletがヒットする等でダメージを受けた際に、Healthを減らす処理を実装します。
「MyTPSCharacter」のブループリントエディタ上で、以下の様に「Any Damage」イベントを配置してください。
Any Damegeイベントはその名の通り何らかのダメージを受けた際に発生するイベントで、既に実装したBulletによるApply Damage関数等の処理の際に呼び出されます。
とりあえず上の処理によって受けたダメージの分だけHealthを減らしています。
さらに続けて、Healthが0以下となったときにキャラクターが消滅する処理を以下の通り実装してください。
ここまでできたらテストプレイしてみましょう。
弾を10発当てると、当てられたキャラクターが消滅するはずです!
■Healthを表示するUIを作成
現在のHealth状態を確認するためにHPバーを作成しましょう。
コンテンツブラウザで「新規作成」→「ユーザーインターフェース」→「ウィジェットブループリント」を選択して、作成されたブループリントクラスの名前を「MyUI」にしましょう。
(↓作成後)
ダブルクリックしてエディタを開いたら、パレットの「一般」→「Progress Bar」をドラッグして適当な大きさで左上あたりに配置しましょう。
名前は「HealthBar」に変更しました。
配置したHealthBarの値を、キャラクターのHealthと連動させる処理を作成します。
HealthBarを選択して詳細パネルで「Progress」→「Percent」→「バインド」→「バインディングを作成」をクリックしてください。
するとバインディングのための関数エディタが表示されるので、以下の様に処理を作成しましょう。
ここまでできたらコンパイルして保存してください。
これでHealth表示用のUIの作成は完了です。
■MyUIを表示させる
さきほど作成したMyUIを画面に表示させるための処理を作成します。
レベルブループリントを開きましょう。(ツールバーで「ブループリント」→「レベルブループリントを開く」)
以下の様にBeginPlayイベント時にウィジェットを表示する処理を作成してください。
できたらコンパイルして保存し、テストプレイしてみましょう。
以下の様にHealthBarが表示され、弾を当てると当てられた側のHealthが減って入ればOKです。
Healthが0になるとキャラクターが消滅することも確認しましょう。
■まとめ
今回はHPを実装して0になる(10発Hitする)とキャラクターが消滅する処理を作成しました。
併せてウィジェットを使ってHPバーを視覚的に表示する処理も作成し、よくあるゲームの機能なのでイメージが付きやすかったと思います!
次回は左右のみではなく上下方向にも弾を飛ばせるように変更を行う予定です!
■リンク
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発