【Godot4】TileMapのAlernative Tilesとは

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Godot4】TileMapのAlernative Tilesとは

2024-2-2 | , ,

Godot4のTileMapのAlternative Tilesを使ってみたい!

概要

今回の記事では、Godot4のTileMapのAlternative Tilesを使う手順を掲載する。

仕様書

環境

  • Gogot 4.2.1

手順書

「Alternative Tilesの概要」と「Alternative Tilesの使い方」と「スクリプト編」の3部構成だ。

Alternative Tilesの概要

TileMapTileSetにある「Alternative Tiles」を使ってみる。

「Alternative」っていうことで「代替」的な意味なんだけども、どういうことかというと下記の「Base Tiles」があるとして

こんな感じに画像を反転や回転して

TileMapに配置できるようにする機能が「Alternative Tiles」だ!

Alternative Tilesの使い方

Sceneの中にあるTileMapを選択した状態で、「TileSet」->「Setup」を開き、「Base Tiles」から「Alternative Tiles」にしたいセルの上で右クリックする。「Create an Alternative Tile」を左クリック。

そうすると「Alternative Tiles」に追加したセルが表示される。

追加したセルを選択して

「Select」を開く。
「Rendering」の項目で水平反転(Flip H)、垂直反転(Flip V)、Transpose(反時計回りに90度回転)して、代替のセルを作る。
「Flip H」を有効にして水平反転させた例。

「Alternative Tiles」の右の+アイコンを左クリックすると「Alternative Tile」が追加される。
「Rendering」の項目の組み合わせで他のパターンも作ってみた。

別の「Base Tile」も「Alternative Tiles」に追加してみる。
新しい行に追加される。

「Transpose」を有効にして反時計回りに90度回転させた例。

こちらも「Rendering」の項目の組み合わせで他のパターンも作ってみた。

![]/wp-content/uploads/godot4-alternative-tiles-10.png)

実際にTileMapに配置してみた例。

左の部屋は「Alternative Tiles」を使わずに赤いカーペットを、右の部屋は「Alternative Tiles」を使って青いカーペットを表現した。

スクリプト編

get_cell_atlas_coordsで「Alternative Tiles」を使ったセルのTileSetの座標を取得すると「Base Tile」の座標が返ってくる。

座標のセルが「Alternative Tile」なのか判定するにはget_cell_alternative_tileを使う。

var alternative_tiles_id:int = get_cell_alternative_tile(0, Vector2i(7, 4))

第1引数はレイヤー番号、第2引数はセルの座標をVector2iで指定する。
戻り値は「Alternative Tiles」という「Base Tiles」のIDとは別の独立したIDが返ってくる。「Alternative Tiles」ガ使われない場合は0が返ってくる。

水平反転、垂直反転などを判定するにはget_cell_tile_dataを使う。

var tile_data:TileData = get_cell_tile_data(0, Vector2i(7, 4))

if tile_data.flip_h:
    print("flip_h")
if tile_data.flip_v:
    print("flip_v")
if tile_data.transpose:
    print("transpose")

第1引数はレイヤー番号、第2引数はセルの座標をVector2iで指定する。
セルの情報が入ったクラスTileDataが戻り値で返ってくる。

まとめ(感想文)

ファイルサイズの削減になりそうだと思う今日この頃。