概要
この記事では、Unreal Engine 5 で、下の動画のような、1回乗るごとにマテリアルが変わり、特定の回数乗ったら消える床を作成します。
ゲームである、残りの乗れる回数とかが表示されていて、乗れる回数が0になったら消える床のようなものです。
この記事の主な対象者
- Blueprint(BP)の作り方の基礎を習得されている、初心者の方
特定の回数乗ったら床が消える床を作る
最初に、下図のようなコンポーネント構成のBPを作成します。
コンポーネント名 | コンポーネントの種類 | 備考 |
---|---|---|
DefaultSceneRoot | Scene | このコンポーネントを一番上の親にします。 |
Box | Box Collision | プレイヤーが床に乗って、床から降りたことを検知することに使用します。 |
Floor | Static Mesh | 床のメッシュです。上図では「Cube」メッシュをセットし、拡大率を調整して、床のようにしています。 |
上図のコンポーネントを作り終えたら「Box」コンポーネントのサイズと、位置を調整します。プレイヤーが床の上に乗ったときのみ「Box」コンポーネントとプレイヤーが重なるように、下図のように「Box」コンポーネントを配置します。
次に、プレイヤーが床から降りたらマテリアルが変わり、特定の回数乗ったら消える床が消える処理を実装していきます。
最初に、処理を実装するにあたって必要とする変数を作成していきます。
上で作成した床のBPのイベントグラフを開き、「float」型の変数「RidingNum」を作成します。プレイヤーが床に乗った回数を記憶しておくことに使用します。
次に「Material」型の配列の変数「RidingNumToMaterialArray」を作成します。床のマテリアルを、乗った回数に合わせたマテリアルに変更することに使用します。
「RidingNumToMaterialArray」のデフォルト値に、床にセットしていきたいマテリアルを設定します。
下図のように設定すれば、プレイヤーが床に1回も乗っていないときは黄緑色のマテリアル、床に1回乗って降りたら黄色のマテリアル、床に2回乗って降りたら赤色のマテリアルになるようになります。
この配列にセットしたマテリアルの数が、床に乗ることができる回数となるので、注意します。
処理を実装するために必要とする変数の作成が終わったら、処理を実装するために必要となるノードを、イベントグラフ追加します
上で作成した床のBPのコンポーネント一覧から「Box」コンポーネントを選択し、詳細パネルを開きます。
詳細パネルの「イベント」>「On Component End Overlap」の横にある+ボタン(下図の赤丸)をクリックします。
イベントグラフに、下図のノードが追加されていることを確認します。下図のノードは「Box」コンポーネントにOverlapしていたアクタが、「Box」コンポーネントにOverlapしていない状態になった際に呼び出されます。
次に、処理の実装で使用する関数を作成します。インプットで受け取ったインデックス番号に対応した「RidingNumToMaterialArray」のマテリアルを取得するための関数です。(今回の記事では、関数の名前を「GetFloorMaterial」にします。)
「GetFloorMaterial」関数のインプットとアウトプットは、下図のようにします。
上図の関数を作成し終わったら、今までに準備した変数やノード、関数を利用して、プレイヤーが床から降りたらマテリアルが変わり、特定の回数乗ったら消える床が消える処理を実装していきます。
下図のノードを組みます。
床がスポーンされた際に、プレイヤーが床に乗った回数を0に設定し直しておくようにするとともに、プレイヤーが1回も床に乗っていないときの床のマテリアルを、床に設定します。
次に、下図のノードを組みます。
床からプレイヤーが下りたときに、プレイヤーが床に乗った回数を1回増やすとともに、乗った回数に対応したマテリアルに床のマテリアルを更新します。プレイヤーが床にたくさん乗り、床に設定すべきマテリアルがなくなったら、床を消すようにします。
これで完成です。
下の動画のように、プレイヤーが床に乗るごとにマテリアルが変わり、プレイヤーが特定の回数床に乗ったら、床が消えるか確認します。
以上で今回の記事の内容は終了です。
最後まで読んでいただき、ありがとうございました。