【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 特設ページ

関連記事

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
UE 5.4の新機能「Motion Matching」のチュートリアル記事がEpic Developer Communityで公開。キャラクターの入力状態に応じて滑らかに複数のモーションを遷移するまでを60分で
2024.05.24

注目記事ランキング

2024.10.11 - 2024.10.18
VIEW MORE

連載・特集ピックアップ

イベントカレンダー

VIEW MORE

今日の用語

パッケージ化
パッケージカ ゲーム開発において、ゲームの実行に必要なデータのみを、実行ファイルとそれに付随するデータの形式に変換すること。プラットフォームに合わせたファイルフォーマットに変換するほか、この段階でアセットファイルを再利用や改ざんすることができないように暗号化することが多い。
VIEW MORE

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