【第3回】超入門!Unityで2D脱出ゲームを作ろう!「タイトル画面の作成編」

タイトル画面の作成編
ゆくすぃ

ごきげんよう、Budding Lab.編集部のゆくすぃです!
APEX LEGENDSでは、ヒューズを愛用していました!

ゲームが大好きな皆さんなら、一度は「自分でゲームを作ってみたい!」と、思ったことがあるのではないでしょうか?

本連載では、ゲーム開発初心者のゆくすぃが、基礎的なスクリプトだけを使って、超入門・2D脱出ゲームの作り方を解説します!

本記事は、第3回「タイトル画面の作成編」です。

プログラミングの専門知識がなくたって、画像や音楽作成アプリが使えなくたって、案外、ゲームって作れるものです。興味が湧いたなら、ぜひ挑戦してみてください!

目次

プロジェクトを作成する

Unityでゲームを作るには、まず「プロジェクト」を新規作成する必要があります
エクセルやパワーポイントで、ブックやプレゼンテーションを新規作成するのと同じです。

Unityでプロジェクトを新規作成する手順
  1. Unity Hubを起動する。
  2. 「New project(新しいプロジェクト)」をクリックする。
  3. テンプレートを選ぶ。
  4. プロジェクト名を入力する。
  5. プロジェクトの保存先を指定する。
  6. Unity組織を選択する。
  7. 「プロジェクトを作成」をクリックする。

1.Unity Hubを起動し、2.開いた画面で「プロジェクト」を選び「New project(新しいプロジェクト)」をクリックします。

Unity Hub画面

Unity Hub画面

すると、次のような画面(=新しいプロジェクト作成画面)が開くので、新しいプロジェクトの設定を行います。

新しいプロジェクト作成画面

新しいプロジェクト画面

3.2Dゲームを制作するので、テンプレートで「2D [Built-in Render Pipeline]」を選択します。

4.プロジェクト名は、ゲームを保存するフォルダ名にもなるので、ゲームタイトルにしておくとわかりやすいです。今回は「CandyHouse」と入力します。

5.任意の保存場所を指定します。

6.Unity組織は、Unity IDの作成時に自動的に作成されます。デフォルトでは、アカウントのユーザー名と同じになります。複数のUnity組織がある場合は、任意の組織を選択します。

7.最後に「プロジェクトを作成」をクリックすると、指定したフォルダにプロジェクトが作成され、Unity Hub画面に戻ります。

「プロジェクト:CandyHouse」が作成される

CandyHouseプロジェクトが作成された

ブラウザゲーム用に設定を行う

まずは、ブラウザゲーム用にビルドするための設定を行います

ブラウザゲーム用にビルドする手順
  1. Build Settingウインドウを開く
  2. Platform欄で「WebGL」を選択する
  3. 「Switch Platform」ボタンをクリックする

Unity Hub画面で、プロジェクトをクリックして開きましょう。すると、次のような画面(=エディターウインドウ)が開きます。

Unityのエディターウインドウ

エディターウインドウ

1.ツールバーの「File」から「Build Settings」を選んでクリックすると、以下のような画面(=Build Settingsウインドウ)が開きます。

Build Settingsウインドウ

Build Settingsウインドウ

2.Platform欄から「WebGL」を選択して、3.「Switch Platform」ボタンをクリックします。設定が終わったら、右上の「×」をクリックして、Build Settingsウインドウを閉じます。

ゲームの画面サイズを設定する

次に、ゲームの画面サイズを設定します

ゲームビューの上部にある、ゲームビューコントロールバーでGameタブをクリックします。
デフォルトでは「Free Aspect」と表示されている部分(=Aspect Ratio:アスペクト比)をクリックすると、画像のようなドロップダウンリストが表示されます。

ゲームビューのアスペクト比リスト

ゲームコントロールバーのアスペクト比

VSync(Game view only)」にチェックを入れます。これは、ゲームビューでゲームを実行した際に、Unityがゲームを出力する速度とモニターの更新速度を合わせて、映像の表示がおかしくならないように調整する機能です。

次に、ドロップダウンリストの一番下にある「+」をクリックします。

「+」をクリックすると、自分でアスペクト比を追加できる

アスペクト比を追加する

今回、ゲームの画面サイズを「1080px*1920px」にしたいのですが、ドロップダウンリストに候補がないので、Addウインドウを開いてリストに追加します。

Aspect Ratioの追加
  • Label:任意のラベル名を入力する(「1080×1920」としました)。
  • Type:アスペクト比(=Aspect Ratio)で指定か、解像度(=Fixed Resolution)で指定か、を選べる。
  • Width & Height:横・縦のサイズをそれぞれ入力する。

最後に「OK」をクリックすると、ゲームの画面サイズが「1080px*1920px」に設定されます。

ゲームの画面サイズが「1080×1920」に設定される

ゲームの画面サイズが設定された

シーンを作成する

ゲームを制作する環境が整ったので、いよいよ、シーンから作っていきましょう!

プロジェクト、シーンとは?

プロジェクトとは、1本のゲーム作品全体を指します。ソースコードや画像・音・フォントといったゲームを構成するデータすべてが、プロジェクトの中に含まれています。

シーンとは、Scene(=場面)の名の通り、ゲーム作品を構成している場面と言えます。タイトル画面・ゲーム画面・クリア画面・・・と切り替わっていく場面を、シーンに分けて作ります。
※シーンは必ずしも切り替えなければならないものではありません。切り替える必要がなければ、一つのシーンでゲーム全体を作り切っても構いません。

プロジェクトとシーンの関係

それを踏まえて、今回は以下のように3つのシーンを作成します。

ゲーム「CandyHouse」を構成する3つのシーン
  • タイトル画面
    →「Game Start」ボタンを配置。ボタンをクリックすると、ゲーム画面に切り替わる。
  • ゲーム画面
    → 脱出ゲームのプレイ画面。脱出口をクリックすると、クリア画面に切り替わる。
  • クリア画面
    →「Play Again」ボタンを配置。ボタンをクリックすると、ゲーム画面に切り替わる。

シーンを作成する

では、満を持して、Unityのエディターウインドウに戻りましょう。

Projectウインドウ(プロジェクトウインドウ)に「Assetsフォルダ(アセットフォルダ)」があり、その中に「Scenesフォルダ(シーンフォルダ)」が収まっています。シーンや画像・音・フォントなどのゲーム作りに使われるアイテムは、すべてこの Assetsフォルダに保存します

Scenesフォルダは Assetsフォルダの中にある

プロジェクトウインドウのシーン

まずは、「シーン:TitleScene」を作ってみましょう。
Projectウインドウの中で右クリックすると、コンテキストメニューが表示されます。その中から「Create」を選び、追加で展開されるメニューの中から「Scene」を選んでクリックします。

Scenesフォルダを開き、Projectウィンドウの中で右クリック

Create→Sceneを選んでクリック

すると、新しいシーンが追加されるので、名前に「TitleScene」と入力して確定します。

「シーン:TitleScene」が作成される

シーン:TitleSceneを作成

同様に「シーン:GameScene」と「シーン:ClearScene」も作成しましょう。

TitleScene / GameScene / ClearScene ・・・ 3つのシーンを作成

3つのシーンを作成
ゆくすぃ

今、作成した3つのシーンは、まだ中身が空っぽです。
シーンごとに背景やボタンを作っていきましょう!

タイトル画面を作成する

まずは、これから作成する画面の構成を掴んでおきましょう。タイトル画面は、以下のようなレイヤー構造になっています

タイトル画面のレイヤー構造
  • 上:ボタンのテキスト
  • 中:ゲームタイトル、ゲームの説明文、お菓子の画像、ボタンの土台
  • 下:パネル(TitlePanel)

タイトル画面のレイヤー構造

画面のレイヤー構造

パネルを作成する

早速、タイトル画面を作っていきます。
ProjectウインドウのScenesフォルダから「シーン:TitleScene」を選んで、ダブルクリックしてください。「シーン:TitleScene」が開き、編集可能な状態となります
※Sceneフォルダに最初から入っている「シーン:SampleScene」は、この時点で削除して構いません。

どのシーンが開いているのかは、プロジェクト名の横で確認できる

シーン:TitleSceneを開いていることがわかる

Hierarchyウインドウ(ヒエラルキーウインドウ)の左上にある「+」をクリックすると、コンテキストメニューが表示されます。その中から「UI」を選び、追加で展開されるメニューの中から「Panel(パネル)」を選んでクリックします。

UI→Panelをクリックする

すると、Hierarchyウインドウに新しいパネルが追加されるので、名前を入力して確定します。今回は「TitlePanel」としました。
※「パネル:TitlePanel」作成と同時に「Canvas」と「EventSystem」が追加されます。これらは、パネルなどのUIを使う時に必ず一つ必要なものなので、削除しないでください。

「パネル:TitlePanel」が作成される

TitlePanelを作成

パネルの色を変える

HierarchyウインドウでTitlePanelを選択すると、エディターウインドウ右側にInspectorウインドウ(インスペクターウインドウ)が表示されます。このInspectorウインドウを使って、TitlePanelの色を変更します。

Inspectorウインドウの Imageコンポーネントで色を変更する

TitlePanelのInspectorウイドウのImageでColorを変える

InspectorウインドウのImageコンポーネントにあるColorプロパティをクリックすると、Colorウインドウが開きます。カラーピッカーから色を選ぶか、カラーコードを指定して色を変更しましょう。
「A(Alpha):透過度」が「255」以外の数値になっている場合は「255」に修正します。

TitlePanelの色を「#F2B45A」に変更した

TitlePanelの色が変わる

ゲームタイトル(=テキスト)を追加する

TextMeshProを日本語フォントに対応させる

パネル上にゲームタイトル(=テキスト)を追加する際、「TextMeshPro」というUIを使いたいのですが、これがデフォルトでは日本語フォントに対応していません。そこで、まずは以下の手順で、日本語を使えるように設定します
参考URL:初心者向け!TextMesh Proで日本語を使おう(Unity Learning Materials)

TextMeshProを日本語対応させる手順
  1. Google Fonts 等で利用可能なフォントデータを入手する。 参考URL:Google Fonts
  2. 入手したフォントデータをUnityのAssetsフォルダ内に保存する。
  3. Window>TextMeshPro >Font Asset Creatorで、フォントアセットを作成する。

1.まずは、Google Fonts 等で利用可能なフォントデータを入手します(Google Fontsは、商用利用可能な無料のフォントデータです)。zip形式でダウンロードされるので、使用する前に解凍しておきます。
※今回は「M PLUS 1p」というフォントデータを利用します。

2.UnityのAssetsフォルダの中にFontsフォルダを作成し、解凍したフォントデータ(拡張子が「.ttf」や「.otf」のファイル)を保存します。

3.エディターウインドウのツールバーでWindowを選び、開いたコンテキストメニューからTextMeshPro Font Asset Creatorをクリックします。

Font Asset Creatorをクリックする

すると、Font Asset Creatorウインドウが開くので、以下のように入力します。

Font Asset Creatorウインドウで設定する事柄
  • Source Font File:準備したフォントデータ(今回は「MPLUS1p-Bold」)
  • Sampling Point Size:Auto Sizing
  • Packing Method:Fast
  • Atlas Resolution:8192 / 8192
  • Character Set:Custom Characters
  • Custom Character List:日本語文字リストをコピペする
    こちらのURLでリストをコピーできます※Unity Learning Materialsからのリンク

以上の入力ができたら「Generate Font Atlas」をクリックします。すると、Unityがフォントアセットへの変換を開始します。なお、この処理にはしばらく時間がかかるので、焦らずに待ちましょう。

Font Asset Creatorウインドウ

Font Asset Creatorウインドウ

処理が済んだら、Font Asset Creatorウインドウ下部の「Save」をクリックし、Assetsフォルダ内のFontsフォルダにフォントアセット(拡張子が「.asset」のファイル)を保存します

フォントアセットを作成する
ゆくすぃ

以上で、TextMeshProでも日本語を使えるようになりました!
選べるフォントの種類が増えれば、表現の幅も広がりますね!

ゲームタイトル(Text – TextMeshPro)を追加する

では、早速、TitlePanel上にTextMeshProを使ってゲームタイトルを追加しましょう。

TitlePanel上にゲームタイトルを載せたいので、TitlePanelを選択した状態にしておきます
TitlePanelの上で右クリックすると、コンテキストメニューが表示されます。その中から「UI」を選び、追加で展開されるメニューの中から「Text – TextMeshPro」を選んでクリックします。

UIからText-TextMeshProを選択する

すると、Hierarchyウインドウに新しいTextが追加されるので、名前を入力して確定します。今回は「TitleText」としました。

TitlePanelパネルの上に「テキスト:TitleText」が作成される(親子関係)

TitleTextを作成

HierarchyウインドウでTitleTextを選択すると、エディターウインドウ右側にInspectorウインドウが表示されます。このInspectorウインドウを使って、TitleTextの表示テキストやフォントサイズ・フォント色、などを変更します。

InspectorウインドウのTextMeshPro – Text(UI)コンポーネントで設定する

TextMeshPro-Textの設定
InspectorウインドウのTextMeshPro – Text(UI)コンポーネントで設定する事柄
  • テキストボックス:表示したいテキストを入力(今回は「Candy House」)
  • Font Asset:使用するフォントアセットを選択(今回は「MPLUS1p-Bold SDF」)
  • Font Size:フォントサイズ(今回は「120」)
  • Vertex Color:フォント色(今回は「#ffffff:白」)
  • Alignment:テキストの配置(今回は中央揃え)

「ゲームタイトル:Candy House」が表示される

タイトル:CandyHouseを設定

タイトルをもう少し上に表示したいので、TitleTextの位置を変更します。

InspectorウインドウのRect Transformコンポーネントで位置を変更する

TitleTextの位置やサイズを変更する
オブジェクトの位置やサイズの変更
  • Pos X / Pos Y:X座標(水平方向の位置)/ Y座標(垂直方向の位置)(今回は(0, 500))
  • Width / Height:横幅 / 高さ(今回は(800,160))

ゲームタイトルの位置が決まった!

タイトルの位置を変更

ゲームの説明文(Text – TextMeshPro)を追加する

TitleTextと同じように、TextMeshProを使ってゲームの説明文を追加します

TitlePanelを選択した状態で右クリックし、コンテキストメニューから「UI > Text – TextMeshPro」を選んでクリックします。Hierarchyウインドウに新しいTextが追加されるので、名前を入力して確定します。今回は「Text」としました。
表示テキストを入力し、フォントサイズやフォント色・位置などを調整します。

ゲームの説明文を追加

行間はSpacing OptionsのLineで設定する

ゲームの説明文を作成
行間の設定はLineで行う

「を3つ探して」前の余白には、これからお菓子の画像を配置します。

お菓子の画像(=Image)を追加する

まずは、Assetsフォルダ内にImagesフォルダを作成し、お菓子の画像をその中へドラッグ&ドロップして保存します。「プロジェクト:CandyHouse」に使用する画像データはすべて、このImagesフォルダに保存します。

Assetsフォルダ内にImagesフォルダ(画像データの保存場所)を作成する

Imagesフォルダを作って画像を保存する

お菓子の画像もTitlePanel上に配置したいので、TitlePanelを選択した状態で右クリックし、コンテキストメニューから「UI > Image」を選んでクリックします。

UI>Imageを選択してクリックする

すると、Hierarchyウインドウに新しいImageが追加されるので、名前を入力して確定します。今回は「Candy」としました。

TitlePanelパネル上に「イメージ:Candy」が作成される(親子関係)

Candyを作成

HierarchyウインドウでCandyを選択すると、エディターウインドウ右側にInspectorウインドウが表示されます。このInspectorウインドウを使って、Candyにお菓子の画像(=Sprite)を設定します。

InspectorウインドウのImageコンポーネントで画像を設定する

Candyにお菓子の画像をセットする
InspectorウインドウのImageコンポーネントで設定する事柄
  • Source Image:クリックするとSelect Spriteウインドウが開く
  • Select Spriteウインドウ:ここで2Dゲーム用の画像(=Sprite)を選択する
  • Set Native Size:Image(今回は「Candy」)を元画像のサイズに合わせて表示する
    ※さらに、画像の表示サイズを調整したい場合は、Transformコンポーネントを使用します。

「イメージ:Candy」にお菓子の画像が設定される

イメージ:Candyが表示された

お菓子の画像を「を3つ探して」の前に配置したいので、Candyの位置を変更します。

TitleTextやTextは、InspectorウインドウのRect Transformコンポーネントで移動させましたが、今回は別の方法・・・移動ツールを使ってCandyを移動させてみます

上向き矢印(緑)は垂直方向、右向き矢印(赤)は水平方向の移動に使用する

移動ツールで画像を動かす

HierarchyウインドウのCandyを選択した状態で、Sceneウインドウ左端の「移動ツール」をクリックすると、「イメージ:Candy」に緑色の矢印と赤色の矢印が表示されます
緑色の矢印をクリック&ドラッグすると、Candyが垂直方向に移動します。
赤色の矢印をクリック&ドラッグすると、Candyが水平方向に移動します。

ゲーム説明文の一部となる「イメージ:Candy」の位置が決まった!

Candyの位置を調整
ゆくすぃ

タイトル画面完成まで、もうひと踏ん張りです!
頑張ってください!

「Game Start」ボタンを追加する

最後に、ボタンを追加します

Hierarchyウインドウの左上にある「+」をクリックすると、コンテキストメニューが表示されます。その中から「UI」を選び、追加で展開されるメニューの中から「Button – TextMeshPro」を選んでクリックします。

UIからButton-TextMeshProを選択する

すると、Hierarchyウインドウに新しいButtonが追加されるので、名前を入力して確定します。今回は「GameStart」としました。

TitlePanelパネル上に「ボタン:GameStart」が作成される(親子関係)

ボタン:GameStartを作成

Hierarchyウインドウで「ボタン:GameStart」を選択すると、エディターウインドウ右側にInspectorウインドウが表示されます。まずは、このInspectorウインドウを使って「ボタン:GameStart」の土台部分の色を変更します。

Inspectorウインドウの Buttonコンポーネントで色を変更する

GameStartのInspectorウイドウのButtonでColorを変える

InspectorウインドウのButtonコンポーネントにあるNomal Colorプロパティをクリックすると、Colorウインドウが開きます。カラーピッカーから色を選ぶか、カラーコードを指定して色を変更しましょう。今回は「#1CA5B8」にしました。

GameStartの色を「#1CA5B8」に変更した

ボタン:GameStartの土台部分の色を変更

次に、Hierarchyウインドウで「ボタン:GameStart」のテキスト部分にあたる「Text(TMP)」をクリックします。すると、エディターウインドウ右側にInspectorウインドウが表示されるので、TextMeshProコンポーネントで表示テキストやフォントサイズ・フォント色、などを設定します。

Text(TMP)=GameStartのテキスト部分

Text(TMP)のTextMeshProコンポーネント

ボタン:GameStartの表示テキストにあたるText(TMP)
GameStart-Buttonの設定
InspectorウインドウのTextMeshPro – Text(UI)コンポーネントで設定する事柄
  • テキストボックス:表示したいテキストを入力
  • Font Asset:使用するフォントアセットを選択
  • Font Size:フォントサイズ
  • Vertex Color:フォント色
  • Alignment:テキストの配置

「ボタン:GameStart」のテキストが設定され、タイトル画面が完成!

ボタン:GameStartのTextを設定
ゆくすぃ

遂に、タイトル画面が完成しました!
同じ要領でクリア画面も作ってみてください!

クリア画面を作ってみました!

クリア画面

プロジェクトを保存する

プロジェクトを閉じる前に、Unityで行った作業内容を保存しましょう。

Unity画面上部の「File」をクリックして表示されるメニューから「Save Project」をクリックします。

プロジェクトを保存する

まとめ

今回の記事では、タイトル画面の作成について解説しました。
画面サイズの設定や日本語対応など、下準備の工程に少し時間がかかりましたが、ここを乗り越えた経験は、ゲームを一本作り切るための力や自信に必ず繋がってくれるはずです!一緒に頑張りましょう!

次回は、【第4回】超入門!Unityで2D脱出ゲームを作ろう!「ゲーム画面の作成編」です。

以上、最後まで読んでいただき有難うございました!

よかったらシェアしてね!
  • URLをコピーしました!
目次