ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【ゼロからアンリアルエンジン5】㉛状態異常を実装しよう=必要なブループリントの作成編=

目次

 

はじめに

注意

UE5.0.0の現在の情報です。

今後のアップデートによりUIや機能が変更される可能性があることをあらかじめご理解ください。

 

f:id:namiton:20220411151453p:plain

今回から状態異常を実装します。

仕様としては毒沼に入っている間毒状態が蓄積し、毒状態になっている間HPが減るようにします。毒沼外にいるときは毒の蓄積が減少します。

解説

①状態異常の定義します。

種類や区別などには列挙型を使います。

列挙型などは過去に記事を書きているのでそちらをお読みください。

 

namiton.hatenablog.jp

 

コンテンツから列挙型、EN_AbnormalStateを作成します。

f:id:namiton:20220411144637p:plain

作成したものを開き列挙子を追加からPoisonを作成します。

f:id:namiton:20220411143054p:plain

 

②蓄積率などの情報を構造体に定義

状態異常の毒に関する内容の構造体を設定しておきます。

構造体を使うことで複数の変数を1つの構造体として制御できます。

コンテンツから構造体を作成し名前をDS_AbnormalStateInfoにします。

f:id:namiton:20220411143309p:plain

 

作成した構造体を開き画像のように変数と名前を付けます。

 

Category・・先ほどの状態異常の種類

DamageValue・・状態異常になったときのダメージ量

DamageInterval・・状態異常になったときのダメージ間隔

AccumulateValue・・状態異常の蓄積量

AccumulateInterval・・状態異常の蓄積間隔

f:id:namiton:20220411145102p:plain

 

③状態異常用のインターフェースを作成。

インターフェースを作成します。

名前をIF_AbnormalStateEventにします。

f:id:namiton:20220411133600p:plain

IF_AbnormalStateEventを開いてAbnormalStateStartとAbnormalStateEndを作成します。

また、それぞれのインプットには、状態異常の情報を渡すためDS_AbnormalStateInfoを設定します。

f:id:namiton:20220411145801p:plain

 

④抽象クラスの状態異常エリアのブループリントの作成と編集

いきなり抽象クラスという表現を使いましたが、抽象クラスとは曖昧なクラスのことです。果物に例えるとバナナやサクランボといったものは味や食感を持っています。つまりそれぞれ味や食感は継承先で設定して、どちらも持っている味や食感といった変数を定義するだけのクラスを抽象クラスといいます。

 

アクタを親にしたブループリントBP_AbnormalStateAriaを作成します。

コンポーネントBoxCollisionを追加しましょう。

f:id:namiton:20220411124025p:plain

 

またビルボードコンポーネントを追加してルートと変更します。

状態異常っぽいアイコンにしておきましょう。

f:id:namiton:20220411124305p:plain

 

見た目で状態異常の範囲が分かるようにStaticMeshを追加しておきます。

適当なCubeを適応しておいて見た目だけなのでNoCollisionにしておきます。

f:id:namiton:20220411151327p:plain

 

BoxコンポーネントからStartとEndイベントを作成して、当たった対象が状態異常のインターフェースを所持しているか確認します。

f:id:namiton:20220411134141p:plain

 

ダメージエリアに入ったらインターフェース経由でイベントの呼び出しを行います。

f:id:namiton:20220411150159p:plain

 

構造体は継承先で変更できるように変数化しておきます。

f:id:namiton:20220411150244p:plain

 

⑤BP_ThirdPersonCharacterにインターフェースの適応

BP_ThirdPersonCharacterを開きます。

インターフェースを適応しておきます。

f:id:namiton:20220411133855p:plain


BP_AbnormalStateAriaを配置して実行してみましょう。

f:id:namiton:20220411151424p:plain

 

ログが出ていたら成功です。

f:id:namiton:20220411151453p:plain

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。