ゲーム開発備忘録

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

【UE4・UE5・UEFN】〈Tips〉ボス戦で使える、攻撃予測機能の作り方

目次

 

はじめに

個人の備忘録としてまとめています。誤った情報がある場合があります。

コメントにてご指摘のほどお願いいたします。

今回はF〇14風の攻撃予測機能の実装方法について簡単にまとめました。

UEFNの厳しい制約下でも動作するようマテリアルの機能を利用しています。

 

環境

UE5.4.0 UEFN

 

解説 (共通)

⓪共通 マテリアルをデカール対応にする設定

地形を無視して貼り付けられるようにデカール対応の設定にします。

コンテンツ右クリックでマテリアルを作成

 

名前はM_VisualizeDamageにしました。

 

マテリアルの詳細からドメインDeferred Decal

ブレンドモードをTranslucentにします。

 

これでデカールの準備は完了です。

BaseColorに任意のカラーを入れてレベルに配置すると、地形に沿って色が塗られることが分かります。


これをベースに機能を作っていきます。

①共通 マテリアルパラメータコレクションの準備

UEFNでマテリアルを制御するには現状MPCとシーケンサーを利用する必要があるため、このためのMPCを作成します。

名前はMPC_VisualizeDamageにしました。

 

制御用のパラメータ、Box,Circle, Sector を用意しました。

 

M_VisualizeDamageを開きコンテンツブラウザからMPCアセットをドラッグアンドドロップすることで利用できるようになります。

 

いよいよこれを利用して実装を作成していきます。

 

解説 ボックス型

共通①で作成したマテリアルを複製し、M_VisualizeDamage_Boxという名前にします。

以下のようにノードを組みます。
元々デカールの形状が四角なので、Step関数とグラデーションを利用することで実現できます。

 

このMPCのBoxに対して0~1を入力することで動かすことができます。

UEFNの場合、任意のシーケンサーなどで0~1, 終了したら定数の0を入れてあげて完了です。

 

解説 円型

共通①で作成したマテリアルを複製し、M_VisualizeDamage_Circleという名前にします。

 

以下のようにノードを組みます。
RadialGradientExoponentialというノードで半径を変更できる円のノードが、あるのでそちらを利用しました。

 

このMPCのCircleに対して0~1を入力することで動かすことができます。

UEFNの場合、任意のシーケンサーなどで0~1, 終了したら定数の0を入れてあげて完了です。

 

解説 扇型

共通①で作成したマテリアルを複製し、M_VisualizeDamage_Sectorという名前にします。

以下のようにノードを組みます。

VectorToRadialValueを利用することでレーダーのようなふるまいをすることができます。これを円形でマスクすることで扇形を実現しています。

 

大きくなってしまったので拡大しているスクショも上げています。

拡大

 

このMPCのSectorに対してRに0~1、Gに0~360度を入力することで動かすことができます。

UEFNの場合、任意のシーケンサーなどでRに0~1, 終了したら定数の0を入れてあげて、Gに度数を入れて完了です。

最後に

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

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

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

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

投げ銭を投げる