Rule タイル
寄稿者: johnsoncodehk、DreadBoy、AVChemodanov、DoctorShinobi、n4n0lix
Terrain タイル や Pipeline タイル、Random タイル、Animated タイル など、他のタイルの基になる汎用のビジュアルタイルです。タイルマップのグリッドタイプ ごとに、特定のタイプの Rule タイルがあります。デフォルトの Rule タイルは、デフォルトの 矩形グリッド タイプで使用されます。Hexagonal Rule タイルは 六角形グリッド タイプ、Isometric Rule タイルは アイソメトリックグリッド タイプで使用されます。各種 Rule タイルのプロパティは同じです。
プロパティ

Terrain タイルの Rule Tile エディター
| プロパティ | 機能 |
|---|---|
| Default Sprite | 新しい Rule を作成する際に設定するデフォルトのスプライト。 |
| Default GameObject | 新しい Rule を作成する際に設定するデフォルトのゲームオブジェクト。 |
| Default Collider | 新しい Rule を作成する際に設定するデフォルトのコライダータイプ。 |
Tiling Rules

Tiling Rules プロパティ
| プロパティ | 機能 |
|---|---|
| Rule | この Rule の Rule タイプ。 |
| GameObject | この Rule に適合するタイルのゲームオブジェクト。 |
| Collider | この Rule に適合するタイルのコライダータイプ。 |
| Output | この Rule に適合するタイルの出力。出力タイプごとに独自のプロパティがあります。 |
Output: Fixed
| プロパティ | 機能 |
|---|---|
| Sprite | この Rule に適合するタイルのこのスプライトを表示します。 |
Output: Random
| プロパティ | 機能 |
|---|---|
| Noise | タイルを配置する際の パーリンノイズ ファクター。 |
| Shuffle | タイルの配置時に適用されるランダム化されたトランスフォーム。 |
| Size | ランダム化する際に元となるスプライトの数。 |
| Sprite | この Rule に適合するタイルのスプライト。タイルの配置時に、この中からランダムにスプライトが選択されます。 |
Output: Animation
| プロパティ | 機能 |
|---|---|
| MinSpeed | アニメーション再生の最低スピード。 |
| MaxSpeed | アニメーション再生の最高スピード。 |
| Size | アニメーション内のスプライトの数。 |
| Sprite | この Rule に適合するタイルのスプライト。スプライトはリストの順番に沿って表示されます。 |
エディターのプロパティ
| プロパティ | 機能 |
|---|---|
| Extend Neighbor | このプロパティを有効にすると、3x3 のボックスを超えて隣接する範囲が拡大されます。 |
Rule タイルの設定
Rule Tile エディター で、必須ルールを使用して Rule タイルを設定します。Rule Tile エディターでは、Tiling Rules リストの Rule を変更、追加、複製、削除することができます。+ または - ボタンをクリックすると、Rule を追加または削除できます。Rule を選択した状態で + ボタンをクリックすると、新しい Rule を追加するか、選択されている Rule を複製するかを選択できます。新規作成した Rule は、現在選択されている Rule の後に配置されます。各行の左上をクリックしたまま、上か下にドラッグすることで、リスト内の Rule の順序を変更できます。

Rule Tile エディター
新しい Rule を追加する際、Rule エディターには、Rule のプロパティのリスト、設定した Rule の動作を可視化する 3x3 のボックス、選択したスプライトのプレビューを表示するスプライトセレクターが表示されます。

3x3 のボックスは、タイルの隣接範囲を表します。中心がタイルそのものを表し、それに隣接する 8 つのセルは、タイルとの相対的な位置を基準とした隣接タイルです。各隣接セルは、Don't Care、This、Not This の 3 つのオプションのいずれかに設定できます。このオプションによって、こうしたタイルに対する Rule タイルの動作を定義します。この 3x3 のボックスを編集して、タイルがマッチする必要がある Rule を設定します。
| オプション | Rule タイルの動作 |
|---|---|
| Don't Care | Rule タイルがこのセルのコンテンツを無視します。 |
| This | Rule タイルが、このセルのコンテンツがこの Rule タイルのインスタンスになっているかチェックします。インスタンスである場合はルールに適合したことになり、インスタンスではない場合はルールに適合しなかったことになります。 |
| Not This | Rule タイルが、このセルのコンテンツがこの Rule タイルのインスタンスになっていないかチェックします。インスタンスではない場合はルールに適合したことになり、インスタンスである場合はルールに適合しなかったことになります。 |
Rule タイルに隣接するすべてが、それぞれの方向で設定されたオプションに一致した場合は、Rule に一致したと判断され、他の Rule プロパティが適用されます。
Fixed に設定されている Rule は、その隣接に設定されている条件に厳密にマッチする必要があります。以下の例では、左と右に同じ Rule タイルがある場合のみマッチします。

Rule が Rotated に設定されていると、Rule がマッチしなかった場合に、その都度 3x3 のボックスが 90 度回転され、回転された 3x3 のボックスで再度マッチするか判定されます。回転後に Rule にマッチした場合は、その Rule のコンテンツが、Rule のマッチに必要な回転とともに適用されます。回転が可能なときに、4 回の 90 度回転で Rule のマッチを判定したい場合は、これを使用します。

Rule が Mirror X、Mirror Y、または Mirror XY に設定されていると、Rule がマッチしなかった場合に、その都度 3x3 のボックスが対象の軸を基準に反転され、反転された 3x3 のボックスで再度マッチするか判定されます。反転後に Rule にマッチした場合は、その Rule のコンテンツが、Rule のマッチに必要な反転とともに適用されます。反転が可能なときに、反転した位置で Rule のマッチを判定したい場合は、これを使用します。

Rule タイルの出力をランダム化する場合は、Output を Random に設定します。これにより、ランダムに選ぶ元になる入力スプライトの数を指定できます。Shuffle プロパティを変更することで、スプライトの回転もランダム化できます。

Rule タイルの出力をスプライトのアニメーションにする場合は、Output を Animation に設定します。これにより、連続で表示してアニメーション化するスプライトの数を指定できます。Speed プロパティを変更することで、アニメーションのスピードもランダム化できます。

Extend Neighbor を有効にすると、3x3 のボックスを拡大して、隣接のマッチング範囲を広げることができます。トランスフォームルールのマッチング (Rotated、Mirror など) は、拡大された隣接範囲に適用されます。

Tile Palette ツールを使用した、他のタイルと同じ方法での Rule タイルによるペイント。

最適化のため、最も使用頻度が高い Rule を Rule リストの最上部に設定し、以降、使用頻度が高い順に Rule を並べてください。タイルの配置時に Rule のマッチングを行う際、Rule タイルのアルゴリズムは、まず 1 つ目の Rule をチェックしてから、その次の Rule をチェックしていきます。