お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2024/08/09 12:00

企画記事

【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう



1 2 3 4 5 6 7 8 9 10 11 12 13

11 作りこみ UIを作ろう P.6(11)へ



11.UIを作ろう
作りこみ 1/3


 開発を進めて何か足りないと感じた人はいないだろうか。そう,クロスヘアがない。画面にテープを貼らなくて済むように,さくっと実装していこう。
 ここまでの実践で,主要な処理は完成している。あとはクロスヘアやゲームクリアなど見た目と,タイトル画面やリザルト画面を作って完成だ。

11-1:「コンテンツ ドロワー」(Ctrl+Spaceバー)を開き,右クリック
画像集 No.181のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-2:「ユーザーインターフェイス」から,「ウィジェットブループリント」を選択する
画像集 No.182のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-3:「User Widget」を選択する。「的」で「Actorクラス」を選択したように,UIでは基本的に「User Widgetクラス」を利用する
画像集 No.183のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-4:名前は「WBP_Main」としよう。「WBP」は「ウィジェットブループリント」の略だ
画像集 No.184のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

WBP ウィジェットプループリントの略
UI作成用のシステムである「UMG」を使用できるブループリント
User Widgetクラス UIを作る際,ベースとなるクラス
WBPを通じてカスタマイズできる
UMG 「Unreal Motion Graphics」の略
Unreal Engineの,UIを作成する機能の1つ
ボタンやテキストなどの要素を,視覚的にレイアウトできる

11-5:「WBP_Main」を開こう。右上に「デザイナー」と「グラフ」がある。これらは「的」の制作で利用した「ビューポート」と「イベントグラフ」,それぞれのUI版のようなものだ。まずは「デザイナー」でUIの見た目を作っていく
画像集 No.185のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-6:左上の「パレット」で「Canvas Panel」を検索し,画面中央のグリッド線が描かれている部分に追加しよう。ここは「ビジュアルデザイナ」と呼ばれ,UIの見た目を直接確かめながら,直感的に編集できる機能だ
画像集 No.186のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-7:少し分かりづらいが,「ビジュアルデザイナ」に長方形の枠が追加された。「Canvas Panel」は,複数の要素を自由に配置するための下地となるもので,この枠の中に文字や画像などを配置していく
画像集 No.187のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

ビジュアルデザイナ レイアウトを視覚的に表したもの
マウスでの直感的な操作で要素を追加したり,サイズや位置を調整したりもできる
Canvas Panel 任意の位置に要素を配置するためのパネル
手動でのレイアウトに優れている

11-8:クロスヘアを作っていこう。「パレット」から「image」を検索し,「Canvas Panel」にドラッグ&ドロップする
画像集 No.188のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-9:画面に白色の長方形が追加された。まずは簡単に位置や形を調整して,「ドットクロスヘア」に仕上げよう
画像集 No.189のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-10:追加した「image」を選択した状態で,「詳細」を編集する
画像集 No.190のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-11:まずは「アンカー」を選択し,プルダウンメニューから赤枠で囲ったものを選ぶ。アンカーは,選択中の要素の基準となる座標をどこにするか,という設定だ。ここでは,基準点を中心に設定した
画像集 No.191のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-12:アスタリスクのようなマークが,中央に移ったのを確認してほしい。このマークが基準点の場所である
画像集 No.192のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-13:基準点を中心にしただけでは,要素自体が中心になる訳ではない。「詳細」から「位置X」「位置Y」を「0.0」,「Alignment」を「0.5, 0.5」と設定してほしい
画像集 No.193のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう


 「アンカー」や「Alignment」について説明しよう。
 「アンカー」は,配置するウィジェットの基準点である。要素を中央に配置したい場合,基準点を中心にすれば1ミリも調整する必要はないが,基準点を左上にした場合,画面中央までの距離を計算して位置X,Yを設定する必要がある。

 「どちらでも中心にできるなら,設定方法以外に何か違いがあるのか」と,疑問を持つ人もいるだろう。もし,基準点を左上にした場合,画面のサイズによって基準点から中心までの距離が変わるので,その分ズレが生じるのだ。

「アンカー」を中心に設定した場合:ドットは中心に表示されている
画像集 No.200のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 画像集 No.202のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

「アンカー」を左上に設定した場合:ドットは中心から左上にズレて表示されている
画像集 No.201のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 画像集 No.199のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

デフォルトのUIサイズは「1280x720」に設定されている
画像集 No.361のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
 上記の例では,UIサイズが「1280x720」で,プレイ時の画面が「1920x1080」(フルスクリーン表示ではないため,厳密には異なるが)となっており,左上のアンカーから中心までの距離が伸びたので,左上にズレて表示されている。

 では,最初から「1920x1080」で作れば解決だ,と考える人もいるだろう。携帯ゲーム機で,画面サイズが唯一に決まっていれば良いのだが,画面サイズがバラバラになりやすいPCゲームやスマホゲームではそうはいかない。
 ズレを生まないためにも,配置したい場所に合わせて,要素ごとにアンカーを設定していく必要があるのだ。

 なお,要素自体の基準点も設定できる。この設定が「Alignment」であり(0, 0)が左上,(1, 1)が右下である。中心に設定したい場合は(0.5, 0.5)を設定する。

画像集 No.203のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
Alignment(0, 0)の例
画像集 No.204のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
Alignment(0.5, 0)の例

アンカー 「Canvas Panel」で配置した要素の基準点
Alignment 配置したUI要素の中心点


11-14:サイズは好みに合わせて設定しよう。実際のゲーム画面で確認した方が良いので,さくっと決めてしまおう
画像集 No.194のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう


 FPSゲーマーならクロスヘアにはこだわりたいものだろう。ここでは色の変更方法と,ドットを「四角」から「丸」に変更する方法について説明する。

画像集 No.195のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
(1)「アピアランス」の「Brush」を開く
画像集 No.196のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
(2)矢印で示した「Tint」(色合い)をクリックすると色を選択できる
画像集 No.197のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
(3)「Tint」の下にある「Draw As」を「Rounded Box」に変更する
画像集 No.198のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
(4)丸いドットクロスヘアを作成できた

十字クロスヘアの制作例
画像集 No.278のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう
 十字クロスヘアを使いたい人もいるだろう。もし作成する場合は,上下左右に「image」を配置し,「サイズ」や「位置」,「Alignment」を調整していけばOKだ。

設定例 アンカー 位置X 位置Y サイズX サイズY Alignment
中央 0.0 -5.0 1.5 10.0 0.5,1.0
中央 0.0 5.0 1.5 10.0 0.5,0.0
中央 -5.0 0.0 10.0 1.5 1.0,0.5
中央 5.0 0.0 10.0 1.5 0.0,0.5

 さて,クロスヘアのウィジェットブループリントを作成できた。これをゲーム画面で確認したいので,UIを表示する仕組みを実装しよう。
 ウィジェットブループリントは,あくまでUIの設計図のようなものだ。この設計図をもとにUIを作成し,画面上に表示する処理が必要となる。

 まあ,やることは単純だ。「ウィジェットを作成するノード」と「作成したウィジェットを表示するノード」,この2つを順番に配置するくらいで完了である。

11-15:さて,実装する時は「いつ実行するか」が大事である。銃を拾ったタイミングでUI表示しても良いが,今回は簡単に「ゲーム開始時」にしてみよう。「BP_FirstPersonCharacter」のイベントグラフに「BeginPlayノード」を追加する
画像集 No.205のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-16:「BeginPlayノード」の実行ピンから,「Create Widgetノード」を作成する
画像集 No.206のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-17:「Create Widgetノード」の「Class」のプルダウンメニューから「WBP_Main」を選択する。ここで,先ほど作成したクロスヘアのUIが作成される
画像集 No.207のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-18:「Create Widgetノード」の「Return Valueピン」からワイヤーを伸ばし,「Add to Viewportノード」を検索して追加する。これを実行すれば,作成したUIを画面上に表示できる
画像集 No.208のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-19:実装例はこの通りだ!(画像だと見えにくい……)
画像集 No.209のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

Create Widgetノード
画像集 No.324のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 「User Widgetクラス」のウィジェットブループリントをもとに,UIを作成するノード
Add to Viewportノード
画像集 No.323のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 作成したUIを画面上に表示するノード

 クロスヘアを追加して銃を撃っていると,弾がクロスヘアの中心から少しずれていることに気づくだろう。これは弾を画面中央ではなく,銃口付近から発射していることが1つの原因である。
 クロスヘア通りに弾を発射したい場合,画面の中央から弾を発射しないと必ずズレが生じる。

発射位置が視点と異なるため,距離に応じてズレが生じる(イメージ図)
画像集 No.271のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 画像集 No.270のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 この現象を回避する方法として,いくつかのアプローチが考えられる。
  • 弾を画面中央から発射する
  • 画面中央から判定をまっすぐ飛ばして,ヒットした座標をもとに発射方向を調整する(発射位置は銃口のまま)
  • 腰だめの精度をかなり低い仕様にして,弾の発射方向をあえて散らす

 また,発射時にすぐに着弾する「ヒットスキャン」や「即着」と呼ばれるものだと,画面中央から目に見えない判定(上図にて,緑色で表現した線に相当するもの)を飛ばしてヒットの判定を行う。
 そして,ヒット判定が完了した際に(といっても人間には認知できない速度なのでほぼ同時),改めてヒットした位置に向けて,「目に見える弾」をエフェクトとして,銃口から飛ばすという方法を取れる。これで「実際の判定」と「エフェクト」の誤差を減らせるのだ。

 実はFPテンプレートは,すでに発射位置を調整する処理が実装されており,「調整する量」を変更すれば,発射位置をカスタマイズできる。
 この発射処理は「BP_Weapon_Component」に実装されているので,今回は簡易的に発射位置を画面中央に寄せてみよう。

※あくまで「中央に寄せる」処理であり,実際に「画面中央」から発射する実装ではないので注意してほしい。

「BP_Weapon_Component」のイベントグラフで,「Projectile Spawn Logic」と書かれた箇所に「ProjectileOffset変数」が存在する。この変数をカスタマイズして,画面中央に寄せていこう。筆者と同じにするなら,(100.0,-27.0,8.0)に設定しよう
画像集 No.325のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

「ProjectileOffset変数」の値を(100.0,-27.0,8.0)とした例。設定した値はキャラクターの向きを元に補正され,図のように発射位置を銃口から移動させる。青色の矢印と,緑色の矢印については説明不要だろう。赤色の矢印については,初期設定の100のままにしている。もともとは,キャラクターのコリジョン(当たり判定)との干渉を防ぐ目的などがあったと思うが,ここでは,発射位置が銃口から離れることの違和感を減らす目的で,そのままにしている。興味のある人は,値を大きく変えて試してみると良い(値は大きく変えないと,変化が分かりにくいため)
画像集 No.326のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

「ProjectileOffset変数」を変更した後(左)と変更する前(右)
画像集 No.367のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

発射1フレーム目の比較画像(60FPSにて撮影)。「ProjectileOffset変数」の変更後(左)と変更前(右)で,発射位置が変化したことを確認できる
画像集 No.368のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 ちなみに,すぐに着弾する「ヒットスキャン」や「即着」とは異なり,弾速がある発射物については「プロジェクタイル」と呼ぶ。

関連記事

ゲーたん! 本日の単語は「projectile/ぷろじぇくたいる」

ゲーたん! 本日の単語は「projectile/ぷろじぇくたいる」

 見て覚えるゲームの英単語帳――略して「ゲーたん!」。本日の単語は「projectile/ぷろじぇくたいる」で,意味は「発射物」。銃弾や魔法といった発射物を指す言葉で,とくにハクスラやシューター,ヴァンサバ系タイトルでお世話になる単語かも。

[2024/04/04 07:30]

 「ヒットスキャン」と「プロジェクタイル」は,その性質上,処理が全く異なる。弾速のあるなしでイメージし辛い人は,「判定だけ飛ばす」か「オブジェクトを飛ばす」の違いだと思っておこう。

ヒットスキャン 光線をシミュレーションして,衝突したオブジェクトを即座に検出し,検出した瞬間にダメージなどを適用するシステム
この光線のシミュレーションを「レイキャスト」や「ライントレース」と呼ぶ

発射と同時に着弾するので,弾を飛ばす時間がなく,「弾が飛んでいく様子」を表現するのが難しい
これに対して,FPSゲームでは,さまざまなエフェクトの表現が用いられている
詳しいことは,実際に複数のFPSゲームを起動して,ヒットスキャン武器のエフェクトを確かめてみてほしい
壁に当てた時や,空を打った時など,いろいろ試してみると面白いだろう
プロジェクタイル 速度を持った発射物のこと

遠距離への射撃時に,弾道や敵の移動速度を考えて「偏差撃ち」が必要になるもの
銃弾だけでなく,弓矢やロケット弾,相手を追尾する弾や壁に跳ね返る弾など,表現の幅が広い

 弾の発射速度を変更したい人もいるだろう。テンプレートの銃は「BP_FirstPersonProjectile」を発射しているので,これを編集していこう。名前に「Projectile」(プロジェクタイル)が付いているように,速度を持っている弾である。

 「発射」といっても,現実と同じように,銃から弾に力を加える「物理的な仕組み」はない。
 「弾」自体が速度を持っており,スポーン(レベル上に出現)した瞬間,勝手に動き出すのだ。この弾を銃口付近にスポーンさせると,銃から弾が「発射」されているように見える仕組みである。

弾(BP_FirstPersonProjectile)をレベルに配置して,プレイすると自動的に飛ぶ
画像集 No.362のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 「BP_FirstPersonProjectile」を開き,「コンポーネント」から「ProjectileMovement」を選択しよう。この「詳細」から各種設定が可能である。

「コンポーネント」から「ProjectileMovement」を選択して,「詳細」から各種設定をしよう
画像集 No.365のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 画像集 No.366のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 まずは「Initial Speed」(初速度)と「Max Speed」(最大速度)を大きくしよう。単位はcm/sなので,画像での速度は3000cm/s(30m/s)である。なお,速度を速くしすぎると挙動が安定しないので気を付けてほしい。
 また「Projectile Gravity Scale」を小さくすることで,重力による影響を減らすことができる。こちらも好みに合わせて設定してほしい。
 参考までに筆者は「Initial Speed」と「Max Speed」を両方7000に,「Projectile Gravity Scale」を0.2に設定した。

 また,弾の見た目を変更したい人は,ここで「マテリアル」を変えておこう。

「コンポーネント」から「Sphere」を選択して,「詳細」の「マテリアル」から好きな見た目に変更しよう
画像集 No.363のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 画像集 No.364のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう


 クロスヘアを追加した要領で,スコアを表示しよう。スコア表示を付けることで,プレイヤーがゲームの進捗を見やすくなるだけでなく,「的」を落としていくゲームの目的も分かりやすくなる。
 スコアの表示は,クロスヘアを実装した「WBP_Main」に,そのまま追加しよう。実装の流れは,スコアを表示するためのテキスト要素を追加して,そのテキストをスコアに合わせて変化させるイメージだ。

11-20:「WBP_Main」の「デザイナー」を開き,「パレット」から「Text」を追加する
画像集 No.210のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-21:位置は好みで決めてほしい。筆者と同じにするなら,「アンカー」を「左上」にして「位置X」「位置Y」をそれぞれ「50.0」に設定しよう
画像集 No.211のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-22:「コンテンツ」から「バインド」を押して,「バインディングを作成」を選択する
画像集 No.212のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 ここでいう「バインド」は,結びつける,関連付けるという意味で使われており,身近な用語だと「キーバインド」の「バインド」で使われている。
 キーバインドは,ゲーム内の「アクション」を任意の「キー」に割り当てるが,今回は「スコア」を「スコア用のUI」に割り当てていく。

関連記事

ゲーたん! 本日の単語は「bind/ばいんど」

ゲーたん! 本日の単語は「bind/ばいんど」

 見て覚えるゲームの英単語帳――略して「ゲーたん!」。本日の単語は「bind/ばいんど」。意味は拘束する。動きを封じる呪文などでおなじみ。結びつける,関連付けるという意味もあって,ゲーム内のアクションを任意のキーに割り当てる“キーバインド(key bind)”にも,この単語が使われているよ。

[2024/05/28 07:30]

11-23:自動的にイベントグラフへ移動する。ここでは,「Return Node」の「Return Valueピン」に設定した文字列を,そのまま「Text」に割り当てる設定がされている。スコアに関する文字列を作成し,「Return Valueピン」に接続して,スコアを表示するUIにしていこう
画像集 No.213のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 11-23で開いたイベントグラフは,左側の赤枠で示した「GetText」をダブルクリックして開くこともできる。

「マイブループリント」の「関数」から,「GetText」を選択する
画像集 No.369のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 なお,作業手順が異なると「GetText」とは異なる名前になるかもしれないが,作業に支障はないので,そのまま進めて大丈夫だ。

11-24:グラフに「Format Textノード」を追加する。これはフォーマット(書式)を指定して,テキストを作成できるノードだ
画像集 No.214のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

Format Textノード
画像集 No.358のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう 任意の変数や文字を組み合わせて,書式に則した文字列を作成するノード

例えば,「合計金額○円です」という風な書式を定めて,「○」の部分を適宜変更できる,という機能だ
「○」は,{0}や{1}のように,半角中かっこで囲った文字を「Format」に含めることで,変数を接続するためのデータピンが追加される

11-25:作成した文字列は「Resultピン」で取得できるので,このピンを「Return Valueピン」と接続しよう
画像集 No.327のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-26:Formatに「{0} / {1}」を入力し,Enterを押す
画像集 No.215のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-27:Format Textノードに「0」と「1」のピンが追加された。ここに数字などを接続することで,フォーマットに則した文字列を作成できる。つまり「0」に「Score変数」,「1」に「的の総数」を接続することで「現在のScore / 的の総数」という形式の文字列が作成できる
画像集 No.216のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-28:10章でやったことと同じように「BP_FirstPersonCharacter」の「Score変数」と,マップの「的の総数」を取得し接続してみよう。覚えてなくても当然大丈夫なので,画像と同じようにノードを配置してほしい
画像集 No.217のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

11-29:実装してプレイすると,画面左上にスコアが表示され,「的」を落とす度にカウントが増えていくのを確認できる
画像集 No.339のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

 クロスヘアとスコアをUIで表示できるようになった。いよいよ残すは,ゲームクリアの演出とタイトルである。どちらもUIが必要になるので,引き続きUIの作り方を覚えていきつつ,完成を目指していこう。

 本章の内容をすべて行った例を以下に示す。

・WBP_Main:Get Text
 - レベル上のBP_SimpleTarget(的)の総数取得
 - BP_FirstPersonCharacterからScore変数を取得
 - Score変数と「的」の総数を元に文字列を作成


WBP_Main:Get Text
画像集 No.387のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう


・BP_FirstPersonCharacter
 - WBP_Mainを作成
 - 作成したUIを画面に表示


BP_FirstPersonCharacter
画像集 No.386のサムネイル画像 / 【完全ガイド】制作経験ゼロの社会人向けゲーム制作入門。夏休みを使って,Unreal EngineのFPSミニゲームを完成させてみよう

  • 関連タイトル:

    Unreal Engine

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:12月21日〜12月22日