ゲーム開発備忘録

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

【ゼロからアンリアルエンジン5】〔アイテム編〕①Ap●xLegendsのようなアイテムを見たら情報を表示する仕組みを作ってみる

目次

 

はじめに

 

UE5入門者向けにAp●xLegends風のアイテム周りの実装をシリーズ化します。

 

以前書いたこちらの記事のUE5解説&拡張版です。

namiton.hatenablog.jp

 

▼この記事でできること

 

解説

①プロジェクトの作成

UE5.0.3のFPSサンプルで作成します。

 

②アイテムカテゴリーの列挙型の作成と編集

コンテンツ右クリックからブループリント→列挙型を選択します。

名前をEN_ItemCategoryにしました。

 

開いたら拡張子の追加からアイテムのカテゴリーを追加します。

 

もう一つEN_ItemRarityを作成します。

こちらは4段階のレアリティを定義します。

 

③アイテム情報の構造体の作成と編集

コンテンツ右クリックからブループリント→構造体を選択します。

名前をST_ItemInfoとしました。

 

構造体に変数を追加します。デフォルト値も設定しておきましょう。

 

④インターフェースの作成と編集

コンテンツ右クリックからブループリント→インターフェースを選択します。

名前をBPI_PickItemとしました。


インターフェースを開き、関数GetItemInfoを作成します。

アウトプットに作成した列挙型ST_ItemInfoを返すようにします。

 

もう一つActionPickも追加しておきます。この関数にはインプットもアウトプットも設定しません。

 

⑤アイテムベースブループリントの作成

コンテンツ右クリックからブループリント→ブループリントクラスからActorを親としたブループリント、BP_ItemBaseを作ります。

 

コンポーネントの追加からSphereCollisionを追加します。

 

名前をItemHitCollisionと変更してDefaultSceneRootの子になるように配置されていることを確認します。

 

コンポーネントの追加からStaticMeshを追加します。

 

ルートにドラッグして親にします。

名前をItemMeshとしました。

 

コリジョンつきのCubeをセットしてSimulatePhysicsにチェックを入れましょう。

 

コリジョンをCustomにしてPawnをOverrideにします。

 



 

⑥インターフェースの実装

クラス設定を押してインターフェースに作成したものを実装します。

 

右クリックからイベントの実装を行います。

 

⑦アイテムブループリントの作成

BP_ItemBaseを右クリックして子を作ります。

今回はBP_ItemAmmoとしました。

 

子ブループリントを開きます。

GetItemInfo関数があるので開き変数に昇格します。


ST Item Ammo Infoとしました。

 

コンパイル後デフォルト値に表示したい内容を記述します。

 

Meshを好みのものに変更します。

スケールを調整しましょう。

 

また、メッシュにコリジョンがあることを確認しましょう。

 

ItemHitCollisionとStaticMeshの両方が検出対象になるのでItemHitCollisionの位置やスケールをStaticMeshを覆うように配置します。

 

コリジョンプリセットの編集と適応

編集プラジェクト設定からコリジョンを選びます。

 

新規トレースチャンネルからTraceItemBlockで作成します。

 

⑨BP_FirstPersonCharacter編集

BP_FirstPersonCharacterのイベントグラフに画像ように0.1秒おきにイベントを呼び出すノードを作成します。

 

カメラの見ている場所に向かってライントレースを行います。

この時検出するチャンネルはTraceItemです。

 

ピンの変更は右クリックから行います。

 

デバッグ表示すると、このように見ている場所に当たったものを検知できます。

 

あとはヒットしたアクタがPickインターフェースを実装しているか確認してしていたら呼び出します。

 

実行してアイテムを見たら表示されることを確認します。

 

検出距離はここの値で変更できます。変数化しておきましょう。

 

これでアイテムの情報を取得できました。

次回はウィジェットを使って画面に表示するまでを解説します。

 

 

⑩おまけ、デフォルトの銃にも適応してみる。

BP_Rifleを開きます。

クラス設定からインターフェースを実装。

 

GetItemInfoから表示したい内容を設定する。

 

実行すると簡単にアイテム情報を取得できます。

 

最後に

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

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

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

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