こんにちは!
この記事ではゲームでよく見る、プレイヤーが床に乗った時に一定時間で消える床について紹介していきます。
AlcheのXでも一度紹介しているので、ぜひ見てみてください。
今日の動画はDevシリーズの第6回目です!
— Alche, Inc (@alche_studio) September 29, 2023
消える床の作り方を紹介しています!#UEStudy #AlcheUETips pic.twitter.com/uIb36z1K09
■消える床を作る
1.床を作る
まず、BlueprintクラスのActorを作成します。今回、名前をBP_DisappearingFloorにしました。
作成出来たらBP_DisappearingFloorを開きます。

左上の追加から、BoxCollisionとStaticMeshを追加します。
StaticMeshでは、自分が使う好きなStaticMeshを選択してください。今回はデフォルトであるSM_ChamferCubeを使用し、床っぽく大きさを変えていきます。
BoxCollisionも床と同じくらいの大きさにします。Collisionとは衝突を検知する領域です。 例えば敵に攻撃が当たったかの検出や、アイテムに触れると取得できる仕組みなど、様々な所で使われています。
今回はこれを使ってプレイヤーが床に乗ったことを検知し、床が消えるようにします。
2.消える処理
次に床が消える処理を書いていきます。
BP_DisappearingFloorのビューポートを開いている状態で、詳細にあるOnComponentBeginOverlap(Box)を選択します。これでCollisionがアクターとの衝突を検知したときに処理を走らせることができます。
今回はプレイヤーが乗った時のみにしたいため、Collisionと重なったアクターがGetPlayerCharacterの時に消えるようにします。
ただ床が消えるだけでは面白みがないので、SetMaterialでマテリアル変化させます。これによりDelayでプレイヤーが床に乗ったことを検知した0.5秒後に、元々青色の床が白色に変わります。
今回は白色に変化させましたが、お好きな色な色や柄に変えてください。
最後にDelayからアクターを消すDestroyActorに繋げば消える床の完成です!