【STEP4】トレードオフの要素を入れよう

2000.01.01
チュートリアル
この記事をシェア!
Twitter Facebook LINE B!
Twitter Facebook LINE B!

ゲームにトレードオフの要素を入れると、プレイに深みが増します。リスクを取ってリターンを得るか、それとも無視して先に進むかの判断をプレイヤーに委ねることで、遊びに幅が生まれます。

今回はその要素のひとつとして、タイムを回復させるアイテムを追加します。アイテムを到達困難な場所に配置することで、「アイテムを取れば残り時間が増加する」「取れなければ大きく時間をロスする」2つの選択肢をプレイヤーに提示できます。

※本ページは、ゲームメーカーズ×GALLERIA コラボPCに同梱される「ゲーム制作キット」の解説ページです。本コンテンツが含まれるコラボPCはGALLERIAの販売ページでお求めいただけますので、ぜひご検討ください。

アイテムのブループリントを編集する

「コンテンツ」→「GameMaking_Kit」→「Blueprints」に、回復アイテムのブループリント「BP_TimerItem」が用意されています。「BP_TimerItem」に、「触れたら残り時間を増やし、自身(プレイヤーが取得したアイテム)を消滅させる」機能を実装していきます。

コンテンツドロワーから、「BP_TimerItem」をダブルクリックし、編集画面を開きましょう。

「当たり判定」に触れた時の処理を実装する

「プレイヤーが触れた」ことを検知するには、「当たり判定」という仕組みを使います。

オレンジの線が当たり判定を示している。この範囲に“なにか”が触れたら、処理が実行される

当たり判定を使うことで、プレイヤーや他のアクタが自分に触れたことを判定できます。「当たり判定に触れた時」に実行されるイベントを、イベントグラフに追加しましょう

ブループリント編集画面の左上にある「コンポーネント」から、当たり判定である「ItemCollision」をクリックして選択します。

選択した状態で、画面右側にある詳細パネルを下にスクロールします。「イベント」にある「On Component Begin Overlap」右隣の「+」ボタンをクリックしましょう。イベントグラフ画面に、「On Component Begin Overlap (ItemCollision)」ノードが配置されます。

このアイテムでは、プレイヤーだけの接触に反応するようにしたいため、まずは「触れたものがプレイヤーかどうかをチェックする」仕組みを実装します。

扉を開く処理でも使用した、条件を満たしているかどうかで処理を分岐できるノード「Branch」を配置します。「On Component Begin Overlap (ItemCollision)」ノードと、実行ピンをつなげましょう。

「Condition」に設定された条件を満たすときは「True」の処理が、条件を満たさないときは「False」の処理が実行される

「当たったアクタがプレイヤーキャラクターかどうか」を、Branchノードで判定させるように設定します。プレイヤーキャラクターにアクセス(取得)する「Get Player Character」ノードを新たに配置しましょう。

「PlayerController」と間違えないよう注意しよう

「Get Player Character」の「Return Value」ピンをドラッグして「Equal(==)」ノードを追加しましょう。

出力先はBranchノー ドのConditionピンにつなげます。そして、「Equal(==)」ノードにあるもう1つの入力ピンには、当たり判定に触れたオブジェクトが取り出せる「Other Actor」ピンをつなげましょう。これで、「当たり判定に触れたオブジェクト」と「Get Player Characterの出力(= プレイヤーキャラクター)」が一致するときに、「True」 の処理が実行されるようになりました。

「当たり判定に触れたオブジェクト」がプレイヤーキャラクターでないときは、「True」につないだ処理は実行されない

時間の加算処理を実装する

このゲームでは、残り時間の仕組みを「PlayerController」が担うようにしています。
的のブループリントから「BP_PlayerController」の「OnTargetBroken」を実行したときと同様に、PlayerControllerを取得する「Get Player Controller」ノードを配置します。

プレイヤーキャラクターと間違えやすいため注意しよう

的の実装と同様、「Return Value」ピンをドラッグし「Cast To BP_PlayerController」ノードを追加しましょう。実行ピンは「Branch」の「True」とつなげます。

「OnTargetBroken」のように「BP_PlayerController」に実装した「タイマーを加算する処理」を実行したいため、上記の処理を使う

「As BP Player Controller」ピンをドラッグし、「BP_PlayerController」に実装されている残り時間を加算する処理「Add Remain Time」ノードを配置します。

加算する秒数を指定する「Time To Add」ピンは、「10.0」のままで問題ない

効果音を鳴らし、アイテム自体を消滅させる処理を実装する

続いて、加算されたことを示す効果音を再生する処理を追加します。「Play Sound 2D」ノードを配置し、「Add Remain Time」と実行ピンをつなげましょう。

「Sound」ピンで、鳴らすサウンドを指定できます。「アセットを選択」をクリックし、サウンドのリストから「SE_GetItem_Cue」を選択しましょう。

正しく選択できていれば、「アセットを選択」と書かれていた場所が、「SE_GetItem_Cue」になっている

最後に、アイテム自身を消滅させる処理を実装します。「Destroy Actor」ノードを配置し、「Play Sound 2D」と実行ピンをつなげます。「Destroy Actor」がなければアイテムが消えないため、プレイヤーは同じアイテムを何度でも取得できてしまいます。

これで、アイテムの実装は完成です。

「BP_TimerItem」の完成図

マップの画面に戻り、「BP_TimerItem」をスタート地点の近くに配置しましょう。

プレイして、正しく動作するか確かめてみましょう。アイテムに触れると左下のタイマーが10秒加算され、アイテムが消えます。

アイテムに近づいて取得しよう。画面の左下に「+10!」と書かれたUIが表示されたら成功だ

実装できた「BP_TimerItem」を、マップ内に配置していきます。プレイヤーに「挑戦」を促すか、あるいは難所を超えた「報酬」として提示するかなど、目的を考慮して適切な配置を探りましょう。

トランポリンを使った操作テクニックを求める挑戦として、空中にアイテムを配置

落ちる床の道に、アイテムを狙うさらに難しいコースを追加した

アイテムが配置できれば、ついにゲーム完成です!

余力がある方は、発展編としてハンドブックP.24のCHALLENGEに挑戦してみましょう。

ゲームメーカーズ×GALLERIA コラボPC 紹介ページコラボPC 特設ページ

関連記事

アークライト 野澤 邦仁のボードゲームを作るには Vol.04「ルール調整編」
2024.11.01
2Dプラットフォーマーのステージを15分で制作。YoYo Games、2D向けゲームエンジン「GameMaker」用チュートリアル記事を公開
2024.09.17
WebブラウザもSwitchもサポートするゲームエンジンで、フォルダの作成方法からゲームプログラミングが学べる。「Go言語とEbitengineによる ゼロから始めるゲームプログラミング」連載開始
2024.08.19
Unity Technologies、初心者から上級者まで幅広くカバーしたアニメーションの電子書籍を無料で公開。Blenderからのインポート、AIナビゲーションなど解説
2024.06.14
スタジオ木曜日、Houdiniでプロシージャルモデリングを学べる記事を公式ブログに連載。画面の見方から家の3Dモデルを作るまでを解説
2024.06.07
ゲームメーカーズが贈る“ゲーム制作の入門書”が2024年9月下旬 発売決定!『ゼロから始めるゲーム制作!プロが使うUE5で3Dアクションゲームを作ろう(仮)』
2024.05.25

注目記事ランキング

2024.11.28 - 2024.12.05
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

レンダリング(Rendering)
レンダリング コンピューターグラフィックスにおける、各種データ(3Dモデルなど)をプログラムを用いて計算し、画像として表示すること。レンダリングを行うプログラムをレンダラー(Renderer)と呼ぶ。
VIEW MORE

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