Godot4のTileMapのAlternative Tilesを使ってみたい!
概要
今回の記事では、Godot4のTileMapのAlternative Tilesを使う手順を掲載する。
仕様書
環境
- Gogot 4.2.1
手順書
「Alternative Tilesの概要」と「Alternative Tilesの使い方」と「スクリプト編」の3部構成だ。
Alternative Tilesの概要
TileMap
とTileSet
にある「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
が戻り値で返ってくる。
まとめ(感想文)
ファイルサイズの削減になりそうだと思う今日この頃。