mieki256's diary



2020/10/28(水) [n年前の日記]

#2 [godot] Godot EngineでHUDシーンを作成

Godot Enigne 3.2.3 x64 の勉強を兼ねて、Apple Catcher っぽいゲームを作成中。

今回は、スコア、ゲームタイトル、スタートボタンの表示を担当するシーンを作成してみる。ちなみに、スコア表示などをする部分はHUD(Head-Up Display)と呼ばれているらしい。

HUDシーンを作成。 :

HUDシーンを新規作成。シーン → 新規シーンを選択。

godot_tuto12_layout_hud_ss01.png


Godot Engine は、スコアやタイトルなどを画面に表示する場合、CanvasLayerノードを使うことになっているらしい。「その他のノード」を選択。

godot_tuto12_layout_hud_ss02.png


「CanvasLayer」を選んで「作成」。

godot_tuto12_layout_hud_ss03.png


CanvasLayerノードがルートノードとして追加された。左上のプラスマークをクリックして子ノードを追加していく。

godot_tuto12_layout_hud_ss04.png


文字列表示を担当する Labelノードを2つ、ボタンを担当する Buttonノードを1つを、CanvasLayerの子ノードとして追加した。

godot_tuto12_layout_hud_ss05.png


分かりやすいように名前を変更しておく。
Hud (CanvasLayer)
    │
    ├─ Message (Label) : ゲームタイトルや「GAME OVER」の表示に使う。
    │
    ├─ Score (Label) : スコア表示を担当。
    │
    └─ StartButton (Button) : スタートボタンを担当。

godot_tuto12_layout_hud_ss06.png


シーンを保存。シーン → 名前を付けてシーンを保存、を選択。

godot_tuto12_layout_hud_ss07.png


res://assets/ の下に、Hud.tscn として保存する。

godot_tuto12_layout_hud_ss08.png

テキスト内容を指定。 :

Messageノードにゲームタイトル名を表示させる。Messageノードを選択。

godot_tuto12_layout_hud_ss09.png


Textプロパティに、今回のゲームタイトル「NEWTOTOTONE」を入力。また、Align と Valign を Center にしておく。これで文字列が中央揃えで表示される。

godot_tuto12_layout_hud_ss10.png

表示位置を調整。 :

「レイアウト」をクリックして「中央水平伸長」を選択。ある程度位置合わせをしてくれる。

godot_tuto12_layout_hud_ss11.png


小さい赤丸をドラッグして縦幅を調整。

godot_tuto12_layout_hud_ss12.png

フォントファイルをプロジェクトにインポート。 :

これで表示文字列の指定とレイアウトはできたけど、文字が小さい。これでは読めない…。

ちゃんとした表示にするためには、フォントファイルが必要になる。Godot Engine はフォントファイルとして ttfファイルやotfファイルが使えるので、入手してインポートすればいい。

しかし、一般的にフォントファイルはライセンスが指定されていて、ものによってはゲームに同梱することが許されてなかったりする。

ここは比較的自由に使えるラインセンスのフォントを入手しないといけないわけだけど…。ありがたいことに、ドットコロンさんがいくつかのフォントファイルをCC0ライセンスで公開してくれているので、感謝しつつ使わせてもらうことにする。マジ助かります…。ありがたや…。

_ドットコロン
_Aileron | ドットコロン
_CC0について ― “いかなる権利も保有しない” | クリエイティブ・コモンズ・ジャパン
_CC0の日本語版が公開されました | 著作権のネタ帳

今回は Aileronフォントを使わせてもらうことにした。ダウンロードして解凍すると、中に otfファイルが入ってるので、今回は以下の2つを利用。
  • Aileron-Black.otf
  • Aileron-Bold.otf

エクスプローラ等からフォントファイルをGodot Engineのエディタ画面にドラッグアンドドロップ。これでフォントファイルがプロジェクトフォルダ内にコピーされる。

godot_tuto12_layout_hud_ss13.png


res://直下にコピーされてしまった。ドラッグして resourcesフォルダ内に移動。

godot_tuto12_layout_hud_ss14.png


resourcesフォルダ内に入った。

godot_tuto12_layout_hud_ss15.png

フォントを指定。 :

インポートしたフォントを利用する。Messageノードの Custom Fontsプロパティをクリックして、「空」の部分をクリック。「新規DynamicFont」を選択。

godot_tuto12_layout_hud_ss16.png


「DynamicFont」の部分をクリックして、「Font Data」の「空」の部分をクリック。「読込み」を選ぶ。

godot_tuto12_layout_hud_ss17.png


Aileron-Black.otf を選んで、「開く」。

godot_tuto12_layout_hud_ss18.png


フォントが適用された。見た目が変わっている。これなら読めそう。

godot_tuto12_layout_hud_ss19.png

フォントサイズその他を設定。 :

フォントサイズその他を設定する。
  • Custom Fonts → Font → Settings → Size を 96 に。文字の大きさが変わる。
  • Custom Fonts → Font → Settings → Use Filter を有効に。文字が少し滑らかに表示される。
  • Custom Colors → Font Color Shadow を有効に。フォントに影がつく。
  • Custom Constants → Shadow Offset X, Y を 12 に。影の位置をずらせる。

godot_tuto12_layout_hud_ss20.png

これらの指定で、イイ感じの表示になってきた。

スコア表示の見た目を調整。 :

スコア表示の文字列と見た目を調整する。Scoreノードを選択。

godot_tuto12_layout_hud_ss21.png


Textプロパティに「SCORE: 0」と入力。

godot_tuto12_layout_hud_ss22.png


Messageノードと同様の手順でフォントを指定する。見た目がイイ感じになればOK。

godot_tuto12_layout_hud_ss23.png


表示位置を少し調整。Rect の Position や Size を変更してもいいし、GUIでキャンバス(?)上のノードをドラッグして位置調整してもいい。

godot_tuto12_layout_hud_ss24.png

スタートボタンの見た目を調整。 :

スタートボタンの文字列と見た目を調整する。StartButtonノードを選択。

godot_tuto12_layout_hud_ss25.png


Text に「START」を入力。

godot_tuto12_layout_hud_ss26.png


フォントやフォンサイズ等を指定。

godot_tuto12_layout_hud_ss27.png


位置やサイズを調整する。グリッドスナップを有効にすれば作業がしやすくなる。

godot_tuto12_layout_hud_ss28.png


それらしい位置に配置できた。

godot_tuto12_layout_hud_ss29.png


F6キーを押して実行してみる。

godot_tuto12_layout_hud_ss30.png

それっぽい表示になった。

次回はこのHUDシーンにスクリプトを追加して、スコア表示の更新や、スタートボタンを押したときの処理を追加していく。

以上です。

過去ログ表示

Prev - 2020/10 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project