AutoTile
特殊な種類のタイルマップ
3x3の9sliceなタイルを使って、タイルを自動生成する.
(正確には自動ではないが)
Pros
ステージを素早く作れる
collisionの設定
閉鎖空間を自動でつくる
ナビゲーション
Cons
最初のセットアップがめんどくさい
最初のセットアップがめんどくさい
最初のセットアップがめんどくさい
AutoTile用のTileSetを作る
1. Scene > new > 2DNode
2. Add > Sprite
3. Atlas(マップチップが全部入った画像)をSpriteにセット
4. Scene > Convert > To TileSet
Tilesというフォルダを作ってそこにタイルセットを保存。(Sceneも)
TemplateLevel
Scene > new
Node2D
TileMap
TileSetに、先程作った.tres を配置
Levelsフォルダを作って保存する。
TileSetの切り分け
Atlasから切り分けて使うメリットは、省メモリ & メモリが連続するので効率的
Tilemap.TileSetをクリックすると、1つのAtlasからタイルセットを作ることができる
1. New TileSet > 使いたい領域をドラッグして選択
これでAutoTileセットが1つできる
2. インスペクタのName を Wallsとしておく
3. SnapとGridの表示を有効にする
タイルのグリッドサイズが間違っていたら
編集ボタンの右の矢印をクリック
右のインスペクタのStepをタイルのpixelに合わせる
32x32 -> 64x64
BitMask
https://gyazo.com/4d8c9f84531acbfa4d833b30ed407bef
(赤い部分に壁があるとする)
壁のある部分にbitmaskを塗る
すると、隅や端においたAutoTileは、壁をbitmaskで指定したものに自動で変わる
3x3 minimal
3x3 (3 by 3) のAutoTileの場合、すべてのbitmaskの組み合わせが必要
上にタイルがある
右に
左に
下に
上の組み合わせ
ただし、対角線にタイルがある場合を考える必要ない
(3x3 minimal)
AutoTileSetにBitmaskを設定
1. タイルセットを選ぶ
2. Bitmaskをクリック
3. インスペクタ > Autotile Bitmask > 3x3(minimal)
有効なエリアをドラッグして塗る
右クリ : 削除
左クリ : 塗る
https://gyazo.com/d5aecaca0b72ea78bf455e32ed81a03d
6. できたら、SceneTreeのTileMapを選択 > AutoTileをシーンに塗る
S : タイル上下反転
A : タイル左右反転
TileSheetのバリを消す
そのままやると、変な線が見える。
AtlasのTextureをインポートするときの設定が変なので、再インポートする
https://gyazo.com/5e7aab2467ef332f59ee7818f534f1b8
tilesheet.png > Filterをoff > 再インポート
Filterは、テクスチャをエッジをリアルにするために色を追加しようとする
TileSheetにすると変な線が入って汚いのでoffにする.
デフォルトの背景色を変更
プロジェクト設定 > 検索 : color > environment > Default Clear Color
https://gyazo.com/a3ee9d73d8ed1fcf5343a46dddee2650
床のタイルを使う
それぞれのタイルセットを作る
横フローリング
縦フローリング
1. TileMap > TileSet をクリック
2. New AutoTile
3. フローリングを横に5マスドラッグして選択
4. inspector > Selected Tile > Name を変更 "floor1"
出現頻度を設定
横フローリングはすべて壁のない床なので、ランダムにどれかが出てきてほしい
1. tileを選択 (クリック or 左右ボタン)
2. Priority をクリック
3. x / y となっているところを任意の分数にする
その確率で出る
残りのタイルは、残りの確率を均等に割られる
Icon
タイルセットを選択しているときに出る Icon を押したあと、
タイルセット内のタイルを選んでクリック
それがTileMapエディタのパレットのタイルセットアイコンになる
まとめ
AutoTile用のTileSetを作る
TileSetから、AutoTileSetを作る
Region (範囲)
Bitmap (有効エリア)
Priority (出現頻度)
Icon
https://gyazo.com/512fc7885a2d4f963b0c536b4b8ae033