mieki256's diary



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

#1 [godot] Godot EngineでBGを追加

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

今回はゲーム画面に背景画像(BG, Background)を追加してみる。まずは簡単に、1枚絵を表示してみる。

背景画像として以下を使う。

_bg02a.png (1280x720)

Pixabayからダウンロードさせてもらって、GIMP 2.10.22 Portbale x64 samj版で加工してみた。

_Pixabay
_家 庭 牧草地 - Pixabayの無料写真

背景画像のインポート。 :

Godot Enigneのエディタ画面にエクスプローラ等から pngファイルをドラッグアンドドロップしてインポートする。

godot_tuto16_add_bg_ss01.png


res://resources/ 以下に画像を置いた。

godot_tuto16_add_bg_ss02.png


bg02a.pngを選択した状態でインポートタブをクリック。Filter のチェックを外して無効にして「再インポート」。2Dゲームを作る時は、Filter のチェックを外しておいたほうが良い。

godot_tuto16_add_bg_ss03.png

あ。しまった。このスクリーンショット、「再インポート」に丸をつけるのを忘れてるなあ…。「再インポート」をクリックしないと反映されないので注意。

BG表示用にSpriteノードを追加。 :

Mainノードの下に Spriteノードを追加。このSpriteノードにBG画像の表示を担当してもらう。

godot_tuto16_add_bg_ss04.png


分かりやすくするために、「Bg」にリネーム。

godot_tuto16_add_bg_ss05.png


Playerノードの上にドラッグアンドドロップして移動する。これでプレイヤーの後ろに表示される状態になる。

godot_tuto16_add_bg_ss06.png

テクスチャ画像を指定。 :

Bgノード(Sprite)のテクスチャを指定。Textureプロパティの「空」の部分をクリック。「読込み」を選択。

godot_tuto16_add_bg_ss07.png


res://resources/ の中にある bg02a.png を選択して「開く」。

godot_tuto16_add_bg_ss08.png


BG画像が表示された。

godot_tuto16_add_bg_ss09.png

BG画像の位置調整。 :

BG画像の表示位置がずれてるので調整する。「Offset」の「Centered」のチェックを外すと、基準点が左上になってBG画像がゲーム画面を覆うような位置に表示される。

godot_tuto16_add_bg_ss10.png

Centered にチェックを入れると基準点が画像の中央になる模様。チェックを外すと左上になる。基準点の位置をずらしたい時は Offset x,y の値を調整する。

動作確認。 :

F6キーを押して動作確認。

godot_tuto16_add_bg_ss11.jpg

背景画像(BG画像)が表示された。

これはこれでいいのだけど、せっかくの2Dゲームだから、タイルマップを使ってBG表示してみたい。次回は TileMap を使って同じことをしてみる。

#2 [godot] Godot EngineでTileMapを使ってBGを追加

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

ゲーム画面の背景として1枚絵を表示することはできたけど、今回はタイルマップ(TileMap)を使って同じことをしてみる。

利用するタイルマップ画像は以下。1タイルが 32 x 32 ドット。8 x 2個のタイルが収めてある画像。CC0 / Public Domain ってことで。

bgchip.png
_bgchip.png

タイルマップ画像をインポート。 :

Godot Enigneのエディタ画面に、エクスプローラ等から bgchip.png をドラッグアンドドロップしてインポート。

godot_tuto17_add_bg_tilemap_ss01.png


res://resources/ 以下に bgchip.png を移動した。

godot_tuto17_add_bg_tilemap_ss02.png


bgchip.pngを選択した状態でインポートタブをクリック。Filterのチェックを外して「再インポート」。

godot_tuto17_add_bg_tilemap_ss03.png

Tilemapを使うシーンを用意。 :

シーンを新規作成。シーン → 新規シーン。

godot_tuto17_add_bg_tilemap_ss04.png


「その他のノード」を選択。

godot_tuto17_add_bg_tilemap_ss05.png


「tile」と打ち込んで絞り込み検索。TileMapノードを選択して「作成」。

godot_tuto17_add_bg_tilemap_ss06.png


TileMapノードが追加された。

godot_tuto17_add_bg_tilemap_ss07.png

タイルセットを作成。 :

タイルマップ(TileMap)を使うには、タイルセット(TileSet)が必要になる。Tile Setプロパティの横の「空」をクリック。「新規 TileSet」を選択。

godot_tuto17_add_bg_tilemap_ss08.png


更に、TileSet と表示されている部分をクリック。

godot_tuto17_add_bg_tilemap_ss09.png


タイルセットを設定していくためのウインドウが、Godot Engine エディタ画面の下のほうに表示された。

godot_tuto17_add_bg_tilemap_ss10.png

タイルセットの設定。 :

タイルセットの設定をしていく。bgchip.png をドラッグアンドドロップして、タイルセットの画像リスト(?)の中に入れる。

godot_tuto17_add_bg_tilemap_ss11.png


タイルセットが使う画像として、bgchip.png を登録できた。今回使う画像は各タイルがビッシリと詰まっているので、右上のほうにある「新しいアトラス」をクリック。

godot_tuto17_add_bg_tilemap_ss12.png


どのタイルからどのタイルまでを使うのかを指定するけれど、グリッドにスナップさせながら作業したほうが楽なので、「スナップとグリッドの表示を有効にする」ボタンをクリック。有効になると青色で表示される。

godot_tuto17_add_bg_tilemap_ss13.png


左上から右下までドラッグして、使う範囲を指定する。

godot_tuto17_add_bg_tilemap_ss14.png


もし、タイルサイズが合わない時は、インスペクタウインドウ内の Step x,y を設定するといいかもしれない。今回は最初から (32, 32) が入ってた。

godot_tuto17_add_bg_tilemap_ss15.png

タイルを並べていく。 :

TileMapノードをクリックして選択すると、キャンバス上でタイルを並べていくモードになる。右のほうに使えるタイルの一覧が表示されているので、使いたいタイルをクリックしてからキャンバス上で並べていく。もしかすると、Cell → Size x,y を調整しないといけないかもしれない。今回は1タイルが 32 x 32ドットなので、Size x,y も (32, 32) にした。

godot_tuto17_add_bg_tilemap_ss16.png


上のほうに、鉛筆、バケツツール(塗り潰し)、セルを取得、選択範囲作成、のツールが並んでいるので、その都度切り替えつつタイルを並べていく。

godot_tuto17_add_bg_tilemap_ss17.png

ちなみに、鉛筆ツールは左クリックでタイル配置、右クリックでタイル消去になっている。また、Shift+左クリックで線を引いたり、Ctrl + Shift + 左クリックで長方形塗り潰しもできる。

それらしく配置した。

godot_tuto17_add_bg_tilemap_ss18.png

シーンを保存。 :

TileMapノードを BgTileMap にリネーム。

godot_tuto17_add_bg_tilemap_ss19.png


シーン → 名前を付けてシーンを保存。res://assets/ 以下に BgTileMap.tscn として保存する。

godot_tuto17_add_bg_tilemap_ss20.png

メインシーンに組み込む。 :

メインシーンに組み込む。Main.tscn を開いて、BgTileMap.tscn を子ノードにして Playerノードの上に位置するように配置。

godot_tuto17_add_bg_tilemap_ss21.png

動作確認。 :

F6キーを押して動作確認。

godot_tuto17_add_bg_tilemap_ss22.png

それらしい表示になった。

次回は…。スタートボタンをキーボード操作で押せるようにしたり、ゲームウインドウを最大化した際に表示も追随するように設定する予定。

#3 [godot] Godot EngineでボタンショートカットやStretchを設定

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

ボタンへのショートカットキーを設定。 :

ゲームを実行するとスタートボタンが表示されるけど、一々マウスクリックして先に進むのが面倒臭い。キーボード操作で押せるようにしたい。

HUDシーン(Hud.tscn)を開いて、StartButtonノードを選択。

godot_tuto18_add_shortcutkey_ss01.png


Shortcutプロパティの右の「空」をクリック。「新規ShortCut」を選択。

godot_tuto18_add_shortcutkey_ss02.png


「ShortCut」をクリックして、その下の「Shortcut」の「空」をクリック。「新規InputEventAction」を選択。

godot_tuto18_add_shortcutkey_ss03.png


「InputEventAction」をクリックして、その下の「Action」に「ui_accept」と入力。

godot_tuto18_add_shortcutkey_ss04.png

「ui_accept」には、プロジェクト設定でいくつかのキーが ―― デフォルトではEnterキーやSpaceキーが割り当てられてる。

これで、ゲーム実行直後、スタートボタンが表示されている状態で、EnterキーやSpaceキーを叩けば先に進むことができるようになった。

Stretchについて設定。 :

現状では、ゲームウインドウの最大化ボタンをクリックすると以下のような妙な表示になってしまう。

godot_tuto19_stretch_ss01.png

最大化した時はそれらしく表示してほしい。プロジェクト設定の Stretch設定を変更すれば対応できる。

プロジェクト設定を開く。上のほうのメニューから、プロジェクト → プロジェクト設定。Dispaly → Window → Stretch と辿り、Mode に viewport、Aspect に keep を指定して「閉じる」。

godot_tuto19_stretch_ss02.png


これで、最大化時に表示が追随してくれる状態になった。

godot_tuto19_stretch_ss03.png


次回は、林檎を取った時に「+10」みたいなエフェクト?を表示させてみたい。

以上、1 日分です。

過去ログ表示

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