このページの更新日: 2000年 11月 25日

ローカル インストラクション

この解説では、次のような形式でインストラクションの書式を表現しています。

インストラクション <数値もしくは定数>

"<"と">"で囲まれているのは、インストラクションが必要とする数値や定数です。 "<"と">"は解説を読みやすくするために使用しているだけですので、実際には記述されません。 "number_of_objects 10"といったように記述されます。 "set"で始まるインストラクションは数値や定数を必要としません。

数値は整数のみ使用できます。 小数点以下を指定しても、無視されたり正常に実行されない場合があります。

定数は必ず大文字で記述してください。 小文字で記述すると、無視されたり正常に実行されない場合があります。

インストラクションと数値・定数の間には、少なくとも空白かタブを1文字挿んでください。 インストラクションと数値・定数の前後には空白やタブを入れてインデントし、スクリプトを読みやすくすることもできます。

パートを示す語句は"<"と">"で囲む必要があります。

PLAYER_SETUPパート

プレイヤーの配置に関するインストラクションを記述するパートです。

インストラクション
random_placement

プレイヤーをランダムに配置します。 このインストラクションは必ず記述する必要があります。 公開されているインストラクションで、PLAYER_SETUPパートに記述できるローカル インストラクションは、これしかありません。

LAND_GENERATIONパート

ランドの配置に関するインストラクションを記述するパートです。

インストラクション
base_terrain <地形定数>

マップの基礎となる地形を指定します。 どのランドにも当てはまらない部分は、この地形になります。

生成インストラクション
create_player_lands {詳細インストラクション}

プレイヤー ランドを配置します。

create_land {詳細インストラクション}

ランドを配置します。

詳細インストラクション
terrain_type <地形定数>

ランドの地形を指定します。 省略した場合、そのマップの基礎地形は「草地 1」になります。

land_percent <パーセンテージ>

マップの総面積に対しての、ランドの割合を指定します。 プレイヤー ランドの場合は、この割合が各プレイヤーに分割されます。 1つのランドに、このインストラクションと"number_of_tiles"を記述しても、どちらかしか有効になりません。

number_of_tiles <タイル数>

ランドの面積をタイル数で指定します。 プレイヤー ランドの場合は、この割合が各プレイヤーに分割されます。 1つのランドに、このインストラクションと"land_percent"を記述しても、どちらかしか有効になりません。

base_size <タイル数>

ランドはどのような形になるのか分かりません。 このインストラクションは、ランドの中心タイルから指定したタイル数を半径とした範囲が必ずランドに含まれるようにします。

例えば、半径を3と指定した場合は下図の範囲がランドとして保証されます。 ■がランドの中心タイルで、□が保証されるタイルです。

□□□□□□□
□□□□□□□
□□□□□□□
□□□■□□□
□□□□□□□
□□□□□□□
□□□□□□□

もし、ランドの本来の面積がこれに満たない場合でも、この面積は確保されます。

clumping_factor <数値>

ランドの形の傾向を指定します。 数値の範囲は1〜15です。 数値が小さいほどランドは細長く曲がりくねった形になる傾向が強くなり、大きいほど円くまとまった形になる傾向が強くなります。

このインストラクションを記述しない場合は8を指定したものとして扱われます。

border_fuzziness <パーセンテージ>

このインストラクションで、ランド境界部分のタイルごとの、拡張が停止する確率が指定されます。 つまり、低い数値を指定するほどランドの境界線は不規則になり、現実の地形のようになります。

このインストラクションを記述しない場合、境界は直線的になります。

top_border <パーセンテージ>
bottom_border <パーセンテージ>
left_border <パーセンテージ>
right_border <パーセンテージ>

ランドとマップの端までの距離を百分率で指定します。 "top"は左上の辺、"bottom"は右下の辺、"left"は左下の辺、"right"は右上の辺に当たります。 マップの中央にランドを配置したい場合や、プレイヤー ランドを外周から離したい場合などに使用します。

land_id <ランドID>

ランドにランドID(ラベル)を割り当てます。 このIDを利用することで、オブジェクトを特定のランドだけに配置することができます。

zone <ゾーン>

ランドにゾーンを割り当てます。 同じゾーンを割り当てられたランドは重なることができます。

set_zone_by_team

プレイヤー ランドをチームごとにゾーン分けします。 通常、プレイヤー ランドは各プレイヤーごとにゾーン分けされますが、このインストラクションを利用すればチームごとにランドを分割することができます。

set_zone_randomly

プレイヤー ランドをプレイヤー単位でランダムにゾーン分けします。 同じチームのプレイヤー同士でゾーン分けされるかもしれませんし、敵対プレイヤー同士が同じゾーンを共有することになるかもしれません。 一人のプレイヤーにゾーンが割り当てられるかもしれません。

other_zone_avoidance_distance <タイル数>

ランドと他のゾーンとの距離を、最低でも指定したタイル数分だけは確保します。 このインストラクションを利用することで、ランド間を水域や森で隔てたりすることができます。

assign_to_player <プレイヤー番号>

ランドに特定のプレイヤーを割り当てます。 プレイヤー番号とは1〜8までの色分けされた数字のことです。 そのランドはプレイヤー ランドと同様に扱われます。 本来のプレイヤー ランドも存在している場合、割り当てられたプレイヤーは複数のプレイヤー ランドを所有しているかのように、各プレイヤーに配置されるオブジェクト(例えば、町の中心や町の人)を2組以上配置されることになります。

プレイヤーを割り当てたランドに"top_border"のようにランドの位置を指定するインストラクションを記述すれば、プレイヤーの開始位置を制御できるかと思いましたが、実行してみたところAOKが強制終了されました。 このインストラクションを記述されたランドはマップ外周付近に輪を描くように配置されますので、プレイヤー ランドとなんら変わらなくなります。

TERRAIN_GENERATIONパート

地形に関するインストラクションを記述するパートです。 このパートのインストラクションは記述した順序で実行されてゆきます。

生成インストラクション
create_terrain <地形定数> {詳細インストラクション}

指定された地形を配置します。

詳細インストラクション
base_terrain <地形定数>

"create_terrain"で指定された地形を、どの地形の上に配置するのか指定します。

このパートで生成する地形は、すでにある地形に被さるように配置されるのです。 例えば、森を作る場合は「草地 1」を指定するのが一般的ですし、浅瀬を配置する場合は「水域」を指定するのが一般的です。

land_percent <パーセンテージ>

配置する地形の面積をマップ全体の面積の割合で指定します。 1つの生成インストラクションに、このインストラクションと"number_of_tiles"を記述しても、どちらかしか有効になりません。

number_of_tiles <タイル数>

配置する地形の面積をタイル数で指定します。 1つの生成インストラクションに、このインストラクションと"land_percent"を記述しても、どちらかしか有効になりません。

number_of_clumps <分割する数>

地形を指定された数で均等に分割して配置します。

clumping_factor <数値>

地形の形の傾向を指定します。 数値の範囲は不明ですが、規定値は20となっています。 数値が小さいほど地形は細長く曲がりくねった形になる傾向が強くなり、大きいほど円くまとまった形になる傾向が強くなります。

set_avoid_player_start_areas

プレイヤー ランドの中心から、およそ10タイルほどの範囲を避けて地形が配置されます。 このインストラクションを利用すれば、町の中心が森に埋もれたりすることがなくなります。

spacing_to_other_terrain_types <タイル数>

他の地形(自らと同じタイプの地形も含みます)から、最低でも確保される距離をタイル数で指定します。 地形同士が繋がって壁になってしまうのを防いだりすることができます。 使い道が多いインストラクションです。

set_scale_by_groups

地形が分割される数をマップの拡大率によって変化させます。 "land_percent"で地形の面積を指定している場合、面積自体がマップによって変化しますから、このインストラクションも一緒に記述するのが一般的のようです。

set_scale_by_size

地形の面積をマップの拡大率によって変化させます。 "number_of_tiles"で地形の面積を指定している場合、このインストラクションで地形の広さをマップ サイズに合わせることができます。

height_limits <最低の段差> <最高の段差>

地形を配置する高さの範囲を制限します。 最低と最高の高さともに0〜8の範囲を指定できます。

set_flat_terrain_only

地形が同一の高さにだけ配置されます。 複数の高さに広がることがなくなりますので、水域などを配置する際に役立ちます。

OBJECTS_GENERATIONパート

オブジェクトに関するインストラクションを記述するパートです。 このパートのインストラクションは記述した順序で実行されてゆきます。 このパートを省略した場合でも、町の中心と町の人3ユニットは自動的に配置されますが、その位置は予測できません。

最初に記述した"create_object VILLAGER"は、オブジェクトの数を指定しなくとも3ユニットが配置されます。 グループ数を指定すると3倍の町の人が配置されるので注意してください。

生成インストラクション
create_object <オブジェクト定数> {詳細インストラクション}

指定されたオブジェクトを配置します。

詳細インストラクション
number_of_objects <オブジェクト数>

1グループあたりのオブジェクトの数を指定します。 このインストラクションを指定しない場合、1つのオブジェクトがグループごとのオブジェクト数になります。

number_of_groups <グループ数>

配置するオブジェクトのグループの数を指定します。 このインストラクションを指定しない場合、各オブジェクトが1つのグループとして扱われます。

オブジェクトはグループという単位で配置されます。 グループとは複数のオブジェクトをまとめたものと考えてください(1グループにつき1オブジェクトということもあります)。 例えば、"number_of_groups 2"、"number_of_objects 5"と記述している場合、オブジェクト5個の集団が2個所に配置されることになります。

group_variance <変動値>

オブジェクト数をグループごとに変化させます。 <変動値>に指定された数値を最大に±されます。

例えば、"number_of_objects 4"、"group_variance 2"と記述している場合、グループごとのオブジェクト数は2〜6の範囲で変動します(4±2)。 オブジェクトが3個のグループもあれば、4個や6個のグループもありえるのです。

set_scaling_to_map_size

グループ数がマップ サイズに応じて変化します。

set_scaling_to_player_number

グループ数がプレイヤー数に応じて変化します。

set_loose_grouping

オブジェクト同士の間に1〜2程度の間隔を空けてグループを配置します。 羊や鹿などを配置する場合などに、よく使用されるインストラクションです。

set_tight_grouping

オブジェクト同士の間に間隔を空けずにグループを配置します。 金鉱や石地を配置する場合などに、よく使用されるインストラクションです。

group_placement_radius <タイル数>

各グループのオブジェクトが配置される範囲の半径をタイル数で指定します。

例えば、半径を2と指定した場合は下図の範囲内に収まるようにオブジェクトが配置されます。 ■がグループの中心タイルで、□がオブジェクトが配置される可能性があるタイルです。

□□□□□
□□□□□
□□■□□
□□□□□
□□□□□

もし、オブジェクト数が指定された範囲に収まりきらない場合、その分は配置されないので注意してください。 上の例の場合は、25を超えるオブジェクト数が指定されていても、25までしか配置されません。

set_place_for_every_player

各プレイヤーに対してグループを配置します。

set_gaia_object_only

地の女神に属したオブジェクトになります。 つまり、どのプレイヤーにも属していない状態です。 ユニットや建物は、最初に発見したプレイヤーのものになります。 木や金鉱など、もともとプレイヤーがコントロールできないオブジェクトには、このインストラクションを記述する必要はありませんが、"set_place_for_every_player"を記述している場合は必要になりますので注意してください。

terrain_to_place_on <地形定数>

オブジェクトを指定した種類の地形の上だけに配置します。

place_on_specific_land_id <ランドID>

指定されたランドIDを持つランドに対してオブジェクトを配置します。

min_distance_to_players <タイル数>
max_distance_to_players <タイル数>

各プレイヤー ランドの中心タイルからのオブジェクトが配置される距離をタイル数で指定します。 "min_distance_to_players"は最小距離を、"max_distance_to_players"は最大距離を指定します。 これらのインストラクションが記述されない場合、オブジェクトはどこに配置されるのか予測できません。

例えば、"min_distance_to_players 4"、"max_distance_to_players 20"と記述している場合、そのオブジェクトはプレイヤー ランドの中心タイルからの距離4〜20タイルの範囲内のどこかに配置されることになります。

"place_on_specific_land_id"が記述されている場合、プレイヤー ランドではなく、そのランドの中心タイルからの距離になります。

min_distance_group_placement <タイル数>

グループ同士の距離を指定されたタイル数だけ確保します。

グループが明確にされていない場合、個々のオブジェクトに対して適用されます。

max_distance_to_other_zones <タイル数>

他のゾーンから、指定されたタイル数の距離を確保してグループを配置します。

ELEVATION_GENERATIONパート

高度に関するインストラクションを記述するパートです。 段差は地形より先に配置されることに注意してください。 プレイヤー ランドの中心から8〜9タイルほどの範囲には段差は造られません。

生成インストラクション
create_elevation <高度> {詳細インストラクション}

指定された高度の段差を配置します。 高度は1〜7の範囲で指定してください。

詳細インストラクション
base_terrain <地形定数>

段差を配置する地形を指定します。

number_of_tiles <タイル数>

段差の面積をタイル数で指定します。

number_of_clumps <分割する数>

段差を分割する数を指定します。

set_scale_by_groups

段差を分割する数をマップの拡大率によって変化させます。

set_scale_by_size

段差の面積をマップの拡大率によって変化させます。

CLIFF_GENERATIONパート

崖に関するインストラクションを記述するパートです。

インストラクション
min_number_of_cliffs <数値>
max_number_of_cliffs <数値>

これらのインストラクションは、マップに配置する崖の数を指定します。 "min_number_of_cliffs"は最小数を、"max_number_of_cliffs"は最大数を指定します。 これらの範囲内でランダムに崖の数が決定されます。

min_length_of_cliff <タイル数>
max_length_of_cliff <タイル数>

これらのインストラクションは、崖の長さをタイル数で指定します。 "min_length_of_cliff"は崖の最小長を、"max_length_of_cliff"は崖の最大長を指定します。 配置される崖の長さは、この範囲内で個別に決定されます。

cliff_curliness <パーセンテージ>

崖が折れ曲がる可能性を百分率で指定します。 高い数値を指定するほど、崖はギザギザになる傾向が強くなります。

min_distance_cliffs <タイル数>

複数の崖同士の間に確保される最小の距離をタイル数で指定します。

CONNECTION_GENERATIONパート

コネクションに関するインストラクションを記述するパートです。 コネクションがどのように配置されるのかは、何度かテストしてみて感覚を掴むことをお勧めします。

生成インストラクション
create_connect_teams_lands {詳細インストラクション}

同じチームのプレイヤーの間にコネクションを作成します。

create_connect_all_players_land {詳細インストラクション}

すべてのプレイヤー間にコネクションを作成します。

create_connect_all_lands {詳細インストラクション}

すべてランドとプレイヤーの間にコネクションを作成します。

詳細インストラクション
replace_terrain <地形定数(置き換え前の地形)> <地形定数(置き換え後の地形)>

ある地形を別な地形に置き換えます。 例えば、水域を浅瀬に置き換えたりすることでユニットの通路を作成します。 このインストラクションを複数記述することで、コネクションの経路上に存在する地形の種類すべてを置き換えることができます。

terrain_cost <地形定数> <コスト>

コネクション作成時に、その経路として指定した地形が選択される難易を指定します。 "replace_terrain"で指定した地形定数について、コネクションの経路として選択される難易を数値で指定します。 "コスト"が、その数値です。 高い値を指定するほど、経路として選ばれづらくなります。 数値の範囲は不明ですが、7〜15くらいの範囲で選ぶのが妥当なようです。

"replace_terrain"で指定されている地形それぞれについて、このインストラクションを記述することになるでしょう。

terrain_size <地形定数> <タイル数> <変動値>

コネクションの経路の幅を地形ごとに指定します。 置き換え前の地形、経路幅を決定するタイル数と、その変動値を指定してください。