【STEP4-3】「触るとゲームオーバーになるトゲ」を作ってステージに配置しよう

2022.01.22
ゲームづくりの知識
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!
目次

ブループリントを使って「触るとゲームオーバーになるトゲ」を作ります。より正確には、キャラクターがトゲに接触すると、「やられた!」という文字列が表示されるというもの。UE5では簡単に当たり判定を設定することができるので、「当たったら文字が出る」という仕組みを素早く作っていきましょう。

トゲ用のアクターを作る

STEP4-2で作ったコンテンツ内の「MyBlueprint」フォルダに、新しくアクターを作っていきます。手順は前回と同じく、フォルダ内のなにもないところを右クリックし、「ブループリントクラス」を追加後、アクタを選択します。名前はDamageNeedleとしておきます。

コンテンツ > MyBlueprint内に、DamageNeedleというアクターを作成した

トゲの形状を用意する

続いて、トゲの形状を作りましょう。これも前回の「床板」の作り方とほとんど同じです。「+追加」ボタンを押して、メニューの一番下にある「コーン」を選択します。

コーンを選択すると円錐が現れる。この時点でトゲとして完成されているので、今回はこのまま進めていく

そのままで十分トゲに見えるので、トランスフォームで形を変える必要はありません。名前はシンプルに「Needle」としておきます。

当たり判定を設定する

ゲームでは、自分のキャラクターがステージ上のギミックに触れることでなにかが起こります。コインに触れたらスコアが増える、敵に触れるとダメージを受ける、あるいは今回のようにトゲに触れるとゲームオーバーになってしまうなどです。この接触を判定するのが「当たり判定」です。

当たり判定は、先ほどのNeedleを選択した状態で、「+追加」から「Box Collision」を選択することで作られます。表示されたオレンジ色の枠の中に入ったら「触った!」と判定される仕組みになります。Box Collisionにも名前がつけられるので、今回は「NeedleCollision」としておきました。

Collision(コリジョン)とは、当たり判定のこと。オレンジ色の枠線が当たり判定を示している。Box Collisionなので、その名の通りBox型になっている。より細かく当たり判定を作る方法も存在するが、今回は割愛する

という設定にしたいので、先ほどのNeedleCollisionを少し上に移動させます。移動の方法はほかのオブジェクトと同じく、移動ツールの青い矢印をドラッグしましょう。

「トゲに刺さったらやられてしまう」という状況を作るために、当たり判定を少し上に移動させた。これで思った通りの挙動になるはずだ

「当たり判定の中に入ったら○○する」という指示を出す

ここから、イベントグラフで「触ったあとになにをするか?」を設定していきます。前回はゲームが始まったら自動的にスタートするBeginPlayというノードを始点に使いましたが、今回は「コリジョン(当たり判定)の中になにかが入ってきたらスタートする」という「On Component Begin Overlap」を使います。

イベントグラフ画面で、先ほど作った「NeedleCollision」を選択します。すると、画面右側に詳細な設定が現れます。下の方にスクロールしていくと、緑色の+ボタンがたくさん並んだパネルがあるはずです。上から2番目にある「On Component Begin Overlap」をクリックしましょう。

左側にあるNeedleCollisionを選択し、右側の詳細パネルを下までスクロールする。難しそうな設定項目がたくさん現れるが、すべて無視して下まで行こう。イベント > 「On Component Begin Overlap」を選択する

On Component Begin Overlap(NeedleCollision)がイベントグラフ内に現れた

今回はこれをスタート地点として、ブループリントを組んでいきます。

「やられた!」という文字列を表示させる

次に、当たり判定の中に入ったら「やられた!」と表示させるノードを作ります。文字を表示させるには、「Print String」というノードを使います。「On Component Begin Overlap」からノードを引っ張って、「Print String」を選択します。

先ほど作ったOn Component Begin Overlapからノードを伸ばし、実行可能なアクションの検索欄に「print」と入力。Print Stringはすぐに見つかるはずだ

Print Stringと繋いだ。今回はこれだけでOK

「In String」には「あいうえお」のような文字列を入れることができ、この文字列が「Print String」されます。ということで、ここには「やられた!」と入力しておきましょう。

In Stringには文字を入力できる。最初は「Hello」となっているので、「やられた!」と入力し直してみよう

ここまで出来たら「保存」「コンパイル」を行い、ブループリントの画面を閉じましょう。

ステージにトゲを配置して、ぶつかってみよう

最初に作ったDamageNeedleを適当な場所にドラッグ&ドロップします。地面に半分埋まった状態で配置されているはずなので、青い矢印を引っ張って、地面ぴったりに接地するようにしてみます。

ステージ内にトゲを配置した。地面にめり込んでいるので、移動ツールの青い矢印で少し引っ張り上げてみよう

実際にきちんと動作するかどうか、「プレイ」をして確かめてみましょう。キャラクターを操作して、トゲにぶつかりに行きます。

トゲの先端めがけてジャンプしたところ、「やられた!」と表示された

ここまでで、3Dアクションゲームを構成する基本的な要素を作ることができました。STEP4までの知識で、例えば「スフィアを転がしながら、トゲを避けてゴールを目指す」といったゲームはすぐに作り始めることができるでしょう。ステージを作るためにオブジェクトを増やしたり移動させたり、特定の条件で「やられた!」「ゴール!」といった文字列を表示させることもできるはずです。応用すれば、動くトゲも作ることができます。

「ゲームづくりをはじめよう」チュートリアルはここで終わりです。今日から、あなただけのゲームづくりをスタートさせましょう!

 


「ゲームづくりを始めよう」に戻る

作業を中断する場合は「名前をつけて保存」をします。再開する場合はUE5を立ち上げて、最近使ったファイルから「MyFirstGame(または自分で付けた名前)」のものをダブルクリックして再び立ち上げましょう。

関連記事

「流れる方向」の情報をテクスチャに持たせて、マテリアルで水の流れを表現。ロジカルビートが解説記事をブログで公開
2024.10.18
テクニカルアーティスト向けのUnity解説、よりクリーンなコードを書く方法、HDRPの活用方法など。Unity公式サイト、日本版電子書籍を無料公開中
2024.10.16
Blender 4.3 ベータ版リリース。グリースペンシル 3.0や新規ジオメトリノードのほか、EEVEEでのライトリンキングが使用可能に
2024.10.07
サウンド担当者が開発中タイトルの最新仕様を知るには?『ゼルダの伝説 ティアーズ オブ ザ キングダム』の“フラットなモノ作り”を実現した開発環境【CEDEC2024】
2024.10.04
ゲームの「最適化」って何? Vol.2 カメラ外のオブジェクトを描画しない「カリング」の仕組みや軽くなる理由を解説!
2024.10.04
ゲームプログラミングにおけるデザインガイド、ユニティ・テクノロジーズ・ジャパンが日本語版の電子書籍を無料公開
2024.09.30

注目記事ランキング

2024.10.16 - 2024.10.23
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

法線
ホウセン 頂点がどの方向に向いているのかを決定するベクトル情報。ライティング情報を受けて、どのような方向に陰影を作リ出すかを決定する処理に利用する。 マテリアル内で、計算やテクスチャ情報により法線をコントロールすることで、メッシュそのものを弄らずに立体感を出すことが可能。 面の表裏を表す面法線もある。
VIEW MORE

Twitterで最新情報を
チェック!