SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Godot Engine 2Dゲーム開発入門

【詳細解説】Godot Engineで始める2Dゲーム開発──公式サンプルを試してみよう

Godot Engine 2Dゲーム開発入門 第2回

9.ヘッドアップディスプレイの作成

HUDシーンの作成

 ゲームのメイン部分は前回まででできています。ここではヘッドアップディスプレイ(Heads-Up display / Head-Up Display / HUD)を作成していきます。

 ヘッドアップは注意喚起のような意味です。ヘッドアップディスプレイは、戦闘機などで視野に重ねた情報を指します。ゲームなら、体力ゲージやスコアなどが相当します。

 ここでは、次のものを作成します。

  • スコア
  • ゲームオーバーのメッセージ
  • リスタートボタン

 こうした、ゲーム画面に被せて描画するノードに最適なのは「CanvasLayer」です。他の領域とレイヤーを分けた表示領域を作ってくれます。

 新しいシーンを作り、「CanvasLayer」をルートノードにして、「HUD」という名前にします。

 画面上部のタブから「2D」を選び、2Dビューにします。サイドバーの表示は「インスペクター」ドックにします。

 トップメニューの「シーン」から「新規シーン」を選択します。

新規シーン
新規シーン

 「シーン」ドックの「ルートノードを生成」から「その他のノード」をクリックします。「Node を新規作成」ダイアログが開きますので、検索に「CanvasLayer」と入力して、「CanvasLayer」を選択して「作成」ボタンを押します。

「Node を新規作成」ダイアログ
「Node を新規作成」ダイアログ

 「シーン」ドックに「CanvasLayer」が現れますので「HUD」に名前を変えます。

「HUD」に名前を変更
「HUD」に名前を変更

 シーンが未保存なので「Ctrl+S」で保存します。「名前を付けてシーンを保存」ダイアログが表示されます。ファイルの名前は、デフォルトのhud.tscnのままにします。

「名前を付けてシーンを保存」ダイアログ
「名前を付けてシーンを保存」ダイアログ

 「ファイルシステム」ドックにhud.tscnが追加されました。

hud.tscn
hud.tscn

UI用のノードの作成

 作成したHUDシーンに、UI用のノードを追加していきます。

 UI部品の基本ノードは「Control」です。ボタンやラベル、メニューやパネルなど、各種のUI部品が子クラスに存在しています。

 ここでは、次のような種類と名前のノードをHUDノードに追加します。

種類 名前 用途
Label ScoreLabel 得点の表示
Label Message ゲームオーバーのメッセージ
Button StartButton リスタートボタン
Timer MessageTimer メッセージ用のタイマー

 「シーン」ドックの「HUD」を右クリックして「子ノードを追加」を選び、それぞれの種類のノードを追加して名前を変更します。

Label
Label
Button
Button
Timer
Timer
配置後
配置後

ScoreLabelの設定

 それでは「ScoreLabel」の設定をおこないます。

 「シーン」ドックの「ScoreLabel」を選択します。「インスペクター」ドックの「Label」>「Text」に「0」という数字を入力します。

「0」を入力
「0」を入力

 続いて、「インスペクター」ドックの「Control」>「Theme Overrides」>「Fonts」の「<空>」の部分に、「ファイルシステム」ドックのfonts/Xolonium-Regular.ttfをドロップします。そして「Ctrl+S」で変更を保存します。

Fonts ドロップ前
Fonts ドロップ前
Fonts ドロップ後
Fonts ドロップ後

 さらに、「インスペクター」ドックの「Control」>「Theme Overrides」>「Font Sizes」に「64」という数値を入力します。

Font Sizes
Font Sizes

 次はアンカーの設定です。「Control」ノードには位置とサイズとは別に、どこを基準にするかという「アンカー」の設定もあります。

 アンカーの操作をおこなうと、「インスペクター」ドックの、「Control」>「Layout」>「Transform」>「Position」の「x」と「y」が、指定した位置になるように変わります。

 2Dビューの上部に並ぶボタンの中から、「ビュー」ボタンの横の「丸にプラスのボタン」をクリックします。「アンカーのプリセット」のリストが表示されるので「中央上」の項目をクリックして選択します。

アンカーのプリセット
アンカーのプリセット

 「ScoreLabel」の表示位置が中央上に移動します。「Ctrl+S」で変更を保存します。

中央上
中央上

Messageの設定

 操作は、基本的には「ScoreLabel」と同じです。ここでおこなう操作をまとめます。

  • 「シーン」ドックの「Message」を選択します。
  • 「インスペクター」ドックの「Label」>「Text」に「Dodge the Creeps!」というテキストを入力します。
  • 「インスペクター」ドックの「Control」>「Theme Overrides」>「Fonts」の「<空>」に、「ファイルシステム」ドックのfonts/Xolonium-Regular.ttfをドロップします。
  • 「インスペクター」ドックの「Control」>「Theme Overrides」>「Font Sizes」に「64」という数値を入力します。
Messageの設定1
Messageの設定1

 続いて、次の操作もおこないます。「インスペクター」ドックでの作業です。

  • 「Label」>「Horizontal Alignment」を「Center」にします。
  • 「Label」>「Vertical Alignment」を「Center」にします。
  • 「Label」>「Autowrap Mode」を「Word」にします。
  • 「Control」>「Layout」>「Transform」>「Size」>「x」を「480」(ビューポートの横幅)にします。
Messageの設定2
Messageの設定2

 最後に「アンカーのプリセット」で「中央」を選択します。

Messageの設定3
Messageの設定3

StartButtonの設定

 「StartButton」の操作も、「ScoreLabel」と似ています。ここでおこなう操作をまとめます。

  • 「シーン」ドックの「StartButton」を選択します。
  • 「インスペクター」ドックの「Button」>「Text」に「Start」というテキストを入力します。
  • 「インスペクター」ドックの「Control」>「Theme Overrides」>「Fonts」の「<空>」に、「ファイルシステム」ドックのfonts/Xolonium-Regular.ttfをドロップします。
  • 「インスペクター」ドックの「Control」>「Theme Overrides」>「Font Sizes」に「64」という数値を入力します。
StartButtonの設定1
StartButtonの設定1

 続いて、次の操作もおこないます。

  • 「インスペクター」ドックの「Control」>「Layout」>「Transform」>「Size」>「x」を「200」、「y」を「100」にします。
  • 「アンカーのプリセット」で「中央下」を選択します。
  • 「インスペクター」ドックの「Control」>「Layout」>「Transform」>「Position」>「y」を「580」にします。
StartButtonの設定2
StartButtonの設定2

MessageTimerの設定

 「MessageTimer」の設定もおこないます。

  • 「シーン」ドックの「MessageTimer」を選択します。
  • 「インスペクター」ドックの「Timer」>「Wait Time」を「2」にします。
  • 「インスペクター」ドックの「Timer」>「One Shot」を「オン」にします。
MessageTimerの設定
MessageTimerの設定

次のページ
10.ヘッドアップディスプレイのスクリプトの作成

この記事は参考になりましたか?

Godot Engine 2Dゲーム開発入門連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/21370 2025/05/28 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー