Tiledの使い方
※結果として、現在はもうTiledは使っていません。
理由1:ファイルの連携とデータの読み取りにつまづいたこと。
理由2:そもそもGodotのマップエディタが最初から高機能で、わざわざTiledを導入しても手間が増えただけで生産性は特に上がらなかったこと。
Tiledとは
マップエディタ。
フリー。
多数のゲームで利用された実績。
マップチップを破綻の無いように勝手に接続してくれる「地形ブラシ」が便利。
レイヤー機能があり、敵やアイテムやイベントエリアも配置できる。
各種ゲームエンジンで利用できる形にエクスポートする機能。
xml,csv,js,json,lua,GameMaker向けroom.gmx,そしてGodot向けtscnなど。プラグインで増やせる。
保存と同時にエクスポートや、外部EXE呼び出しなど、作業してすぐゲームエンジンで試せるようになっている。
環境設定
「インターフェイス」タブの「OpenGLで高速描画」、「マウスホイールで拡大縮小」はオンにしておくのがおすすめ。
「Middle mouse button uses auto-scroolling」はお好みでオンにしてもいいが個人的にはオフのほうが良いと思う
プロジェクトの作成
ファイル>新規>New Projectからプロジェクトファイルを作成。
新規フォルダを作ってそれを作業フォルダに設定する。既存のフォルダを使うのはおすすめしない
ファイル>新規>新しいタイルセット。マップチップ画像を指定して読み込む。
とりあえずお試しでプログラムフォルダ/Tiled/examples/tmw_desert_spacing.pngを開いてみるのが良いが、この画像は1pxのギャップ(隙間)があるので注意。忘れずに「タイル間の余白」を設定すること。
左右(上下)反転させたものも使いたいとき: タイルセット>プロパティで変形を許可>横反転(あるいは縦反転)にチェックを入れる。
エクスポート時のexportAlternatesプロパティの設定もわすれずに。(後述)
当たり判定の編集
タイルマップを開いた状態で、ツールバーから「タイルの当たり判定エディタ」を開く。
タイルごとに当たり判定のポリゴンを置いていく。
「四角形を追加」ツールは最初に四角が表示されるのでスタンプのように置いていくのかなと思ってしまうが、無視して範囲選択ツールのようにドラッグしてしまって良い。
複雑な地形は「多角形を追加」ツールで描く。この2つでだいたいなんとかなる
「隣のタイルに続く」当たり判定のポリゴンは、タイルの縁ギリギリではなく、若干はみ出すように設置するのがコツ。
マップの編集
ファイル>新規>新しいマップでマップ作成。
サイズはあとで再設定できるのでとりあえず「無限」でいいと思う。
画面上のツールバーでスタンプ(Bキー)を選ぶ。その後画面右のタイルセットパネルを開き、先ほど読み込んだタイルセットから適当に選んでマップ上に置いていく。
B: スタンプ
左クリック:タイルを置く。
右クリック:スポイト。マップ上のタイルを拾って現在のタイルにする。
右ドラッグ:コピー。範囲選択ではないので注意。コピーしたタイルはクリックでペーストできる。再度右クリックで解除。
SHIFTキーおしながら:直線を描く。
CTRL+SHITおしながら:円を描く。あまりつかわない。
E: 消しゴム。選択してDELETEキーでも削除できる。
F: 塗りつぶし。クリックしたパネルと隣接するパネルを塗りつぶす。
P: 図形塗りつぶし。指定した四角形の範囲を塗りつぶす。
R: 矩形選択。まとめで削除できるほか、選択されている内部のみ編集可能になるのではみ出し防止できる。解除するには矩形選択ツールのままクリックするか、Ctrl+Shift+A
W: 自動選択。隣接する同じ種類のタイルを一度に選択する。
S: 同じタイルを選択。隣接していなくてもマップ上のすべての同じタイルを一度に選択する。主に差し替え用。逆に間違って使ってしまうと大惨事になるので注意
X: 左右反転。/ Y:上下反転 / Z:回転
なお、これらのショートカットをすべて覚えてしまったあとに、TABキーを押して「禅モード」に入るとマップ以外何も表示されなくなり、作業に集中できる。
地形ブラシの設定
タイルセットを開き、ツールバーのTerrain SetsのアイコンをクリックしてTerrainSetパネルを開く
+ボタンを押してTerrain Setを新規作成する。名前はUnamed Setで問題ない
さらに地形タブの下の+を押して地形を作る。例えば「地面」とする。
ひとつのタイルは上半分/下半分/右半分/左半分にわかれており、接続させたいタイルが同じ色になるように塗り分ける。空白タイルを許容するならその方向に色を塗らない。
必要最低限のタイルを設定すること。接続可能性が複数ある場合はTailedはすべてのパターンを生成しようとする。地形ブラシは大まかな形を作るのに利用して細かいのは手作業でタイルを置こう
一応出現割合はタイルセットのプロパティで設定はできる…が手作業のほうがいいだろう
タイルに反転や回転の必要がある…例えばタイルに左端があるのに右端のタイルが用意されてない…ような場合でも、自動的に反転/回転して埋めようとしてくるので問題ない。(タイルセットのプロパティで縦/横反転/回転にチェックが入っている場合のみ)
Godotへのエクスポート
出力されるtscnファイルは、GodotでいうところのTileMapノードである。ステージシーンを作成してから、インスタンス作成(鎖マーク)ボタンを押してこのファイルを指定する。
左右(上下)反転機能を使っているなら、exportAlternatesプロパティを設定する必要がある
タイルセットを開き(マップではない)、メニュー>タイルセット>タイルセットのプロパティをひらく
カスタムプロパティを展開し、下の+ボタンを押す
exportAlternatesという名前のブール値のプロパティを追加する
最後にそのプロパティをチェックして保存
なおGodot上で何が起きるかというと、上下左右反転された代替タイルが生成される。Godot4では代替タイルは不要なのでちょっとモヤるが、まあ問題なく動くので良いだろう。
tscnファイルを上書きするとGodotを開いていれば即時反映される。が、キャッシュの関係で更新されていないように見える。更新するには一旦タイルマップシーンそのものをエディタで開きなおせば良い。あるいはそのまま実行してしまって問題ない。くれぐれも更新されてない状態で変更を加えたり上書き保存したりしないように。