置換機能の強化/FSM用テンプレデータ追加【自動装飾プラグイン】
マップ自動装飾プラグインのver1.36へのアップデートを行いました。
自動置換機能の強化と、公式DLCで販売されているFSMタイルセット用のテンプレートサンプルデータの追加を行いました。
本記事では、追加したテンプレートの解説をしながら新機能にも触れていきます。
初心者向け〜上級者向けの情報が混ざっているため、まずはテンプレートの使い方部分を読み進めることをおすすめします。
- テンプレートの使い方<初心者向け>
- 追加された置換機能の解説<中〜上級者向け>
(※FSMタイルセットは、手持ちのものをサンプルプロジェクトのimg/tilesetsフォルダに加えてください。また、データベースには通行判定など最低限しか設定していないので、必要に応じてタイルセットデータもコピーしてください。)
砂漠
新機能:崖のサブタイル種類の追加
崖フチ塗り分け用のサブタイルが複数登録できるようになりました。
- 崖縁メイン
- 崖壁
- 崖縁サブ1
- 崖縁サブ2
︙
(※4種あればどんなパターンでも塗り分けられるそうです!)
置換ルール解説:低い段差
高さ1の崖壁の上に適当なタイル(オートタイル以外)を重ねたものを、低い段差のB-Eタイルに置換してます。(※透明を含むタイルなので裏タイル補完)
↓(左側)低い段差は直角の縁部分が接続しないので専用タイルに置き換え
↑(右側)影の追加や置き換え。(B-Eタイルじゃない)影のみだと認識しないので「オブジェ空マス」も配置
置換ルール解説:オートタイル置換
適当なオートタイルで塗って、B-Eタイルに変換するテクニック
↓置換ルール。見やすいようにイベントは下に1マスずらしてます。
左9マスは基本の3x3サイズ。右4つは直角の内側の縁。
オートタイル置換には「A2タイルの右側」(床の上にさらに塗り重ねる2レイヤー使うタイプ)を使うように注意!
真ん中上&真ん中はタイルなしなので、オブジェ空マス。
すべてのイベントにはメモ欄に「<noAcc>」を記述してます。
置換パラメータ:装飾抽選無効<noAcc>
<noAcc>パラメータで置換されたマスは、床装飾抽選の対象になりません。
置換パラメータ:逆順処理<reverse>
異なる高さの壁が合流する地点では、B-Eタイルから丸みのないオートタイルに戻した方が自然だったりします。
↓ルール。イベントは1マス右にずらしてます。
上の画像のないイベントにはメモ欄に<reverse>を設定。
下の「シェイプ問わず」には<noErase>を設定。
(※下段中央の壁はあえてB-Eタイルに置換してません。)
通常、置換ルールはマップ一番上(y=0)の段の左端(x=0)が右端、次に2段め(y=1)の左から右……という順番で実行されます。
そのため、1つのルールを連鎖して上から下に複数回処理することができますが、逆に下から順に連鎖して処理することができませんでした。
新パラメータの<reverse>を設定することで処理順を逆転させ、最下段の右から左、1つ上の段の右から左…といった順に処理することができます。
今回のルールでは、「中央パターンの壁の上に、左右端パターンのB-E壁があれば丸みのないオートタイル壁に変更」という処理を連鎖させて崖の一番上の段まで連鎖置換しています。
流砂洞窟
かなりごちゃごちゃしてますが、鉄っぽい縁タイルが崖縁のサブタイル。
オートタイル置換を2種
置換ルール解説:穴と崖壁の接続
↑イベントは右に1マスずらしてます。
まず、左3つのルールで、「穴の上に崖1マスが合った場合にグラデ崖壁に置換」
(※イベントは「画像:シェイプ問わず」+「メモ欄<noErase>」で穴タイルは削除しないように)
次に、右6つのルールで、「置換したグラデ崖壁の上に通常の崖壁があれば置換」と2段階に分けてます。(※真ん中3つと右側3つが同じにみえますが、壁の上段と中段で別パターンとの接続ルールです。)
地下水道
細かなオートタイルの整形などをルールで自動化する例。
床の土台
↓通路の土台部分には壁を高さ1で配置し、A5タイルに置換。
↓ルールは水タイル(シェイプ問わず&<noErase>)の上に高さ1の壁があれば置換。
(※壁と同じタイルだとタイル切り替える手間がないのが👍)@span
橋桁
↓水の上に土台無しで直接床タイル配置で、下に橋桁を追加。
↓ルール。上2つのイベントはシェイプ問わず&<noErase>。1マス右にずらしてます。
床の壁方向との接続変更
床のオートタイルを壁方向にも接続するようにして境界をなくします。
↓ルール。イベントは1マス右にずらしてます。
左2つの「シェイプ問わず」は<noErase>。
置換パラメータ:床接続<connectFloor>
下の「オブジェ空マス」には<connectFloor>。
タイル自体は置換せず、そのマスに対して床(floor)が接続(connect)するようにフラグを追加しています。
右のベース床タイルの上の「シェイプ問わず」はメモ欄なし。
床タイルを削除して床タイルを配置しています。
かなり作為的な処理ですが、こうすることで床のシェイプを再計算させています。
これで壁・天井に対してオートタイル接続します。
水場のオートタイル整形
細かな水のオートタイルシェイプの整形。縁の黒ずみを調整してます。
置換パラメータ:接続固定<noConnect>
置換先の水タイルの上のイベントにはメモ欄に<noConnect>を記述しています。
これを忘れると、シェイプを整形しても自動的に接続パターンが修正されてしまいます。
斜め壁への置換
床の隅に目印となるタイルを配置することで、斜め壁に置換しています。
↓ルール。イベントはすべてメモ欄なし。(右側は見やすいようにイベントなし)
目印の床、壁、天井のパターンを検知して斜め壁に置き換えています。
…当然ですが実践的には、各ルールは複数回適用されないのであればルールを作らず直に配置・修正したほうが早いです。
ルールを作成するかどうかは以下を考慮して決めると良いでしょう。
- 必要な「マップサイズ x マップ数」がどれくらいか
- バランス調整などでマップを修正する可能性があるか
(バランス調整/レベル設計時に、地形のみを修正して細かな部分に意識を割かなくて済むのは大きなメリットかと思います)
以下の追加テンプレデータは、既存テンプレートとほぼ同じように使用できるバリエーションです。
岩の洞窟
水たまりや水没地形が特徴的な洞窟。
(※余力がある人は、水場と崖の接続ルールなどを作ると○)
秋の森
(色合いがとても綺麗!)
暗い森
(バリエーションは同じように使えるのに雰囲気全然違ってお得ですね)
明るい森・秋の森と違って、木の裏側の草むらが「ベース+装飾」の2タイルになっているためレイヤーがカツカツです。
↓背の高い木を配置すると…
マップオブジェクトプラグインをお持ちの方は、木をドラッグしてスプライト形式にすればOKです。
それ以外の方は、A2タイルを編集してベース床と草むらを合成したものを左半分に用意し、置換ルールの床部分を置き換えましょう!
(※レイヤー数が床+木の2レイヤーとなり、その上に葉っぱ陰が重なった状態でももう1レイヤー空きがでます。)