「field 構造体(地形チップの設定)」の編集履歴(バックアップ)一覧に戻る

field 構造体(地形チップの設定) - (2021/09/26 (日) 15:03:09) のソース

**&color(green){概要}
戦場マップは&color(blue){MapMaker}で作成します。
MapMakerはfieldフォルダのマップチップ名(拡張子無し)を&color(blue){識別子}としてmapファイルに埋め込みます。
ゲーム内では&color(blue){識別子}と同名の&color(blue){field構造体}が該当チップになります。

**&color(green){エッジングについて(マップチップの境界線処理)}
エッジングとは周囲に合わせて自身を派生チップに置き換える事です。
エッジングをするには、N, NW, W, SW, S, SE, E, NE が末尾に付いた8個の派生チップを用意します。
grass なら以下の8個が必要となります。
grassN (上の荒地チップと隣接)
grassNW(左上の荒地チップと隣接)
grassW (左の荒地チップと隣接)
grassSW(左下の荒地チップと隣接)
grassS (下の荒地チップと隣接)
grassSE(右下の荒地チップと隣接)
grassE (右の荒地チップと隣接)
grassNE(右上の荒地チップと隣接)

**&color(green){コンテンツ}
:type = (文字列)|
|省略|普通の地形|
|coll|通行不可になる|
|wall|通行不可になる。飛び道具も貫通不可|
|wall2|通行不可になる。攻撃側の飛び道具のみ貫通不可|
:attr = (文字列)|
この地形の種類です(草原、海、山地など)。
:color = (R, G, B)|
ミニマップ上での表示カラーです。

:id = (文字列)|
エッジングの為の識別子です。省略時は構造体名になります。
エッジングはこのidで判定します。
少し違う草原チップ(grass1、grass2)をidでひとくくりにする為です。
:edge = (on/off)|
省略時はoff。
onでエッジングする。
&color(blue){エッジングとは周囲に合わせて自身をN,NW,W,SW,S,SE,E,NEの派生チップに置き換える事です。}
:joint = (隣接id)|
指定した&color(blue){id}を持つ地形チップと接した時にエッジングするようになる。
省略すると全ての異なる地形チップとの間でエッジングするようになる。
:joint = (隣接id, 描画field構造体, 隣接id, 描画field構造体, ‥)|
joint = grass, seaGrass、sand, seaSand、snow, seaSnow
こうすると海チップの周囲に合わせて草境界、砂境界、雪境界のfieldが自動的に描画されます。
seaGrass、seaSand、seaSnowにはN, NW, W, SW, S, SE, E, NE の派生チップが必要です。

:image = (文字列)|
画像。image.datにあるイメージ名を指定する。省略時は構造体名になります。
:add2 = (文字列, 文字列*数値, ‥)|
列挙されたイメージがランダムに表示されます。
:member = (文字列, 文字列*数値, ‥) |
このマップチップの上に乗せるobject構造体。列挙された中からランダムに表示されます。
空の識別子(object構造体名に無い適当な名前)を列挙する事で表示確率の調整も出来ます。
木や草をバラけさせたい時に有効です。
&color(blue){(例)member = wood*7, none*3} 木を70%の確率で表示する。

:alt = (数値)|
地形の高さ。低くする時は負の値を指定する。
&color(blue){(例)デフォルトシナリオでは、山岳 128、高い山岳 160、海 -48、となってます。}
:alt_max = (数値)|
地形をでこぼこにする為のデータです。
0以外の数値を記述すると高さが alt~alt_max 間のランダムになります。
:smooth = (on/off/step)|
|on|地形の高低を滑らかに描画します(デフォルト)|
|off|少し段差がつきます|
|step|周囲の高さに影響されずに正確にaltの数値の高さになります|
&color(red){step は城壁の天井部分を作る時に必ず用います。城壁オブジェクトと組み合わせて用います。}
.