固定マップ+スクリプト

同名スクリプト

マップデータを保存した場所に、同じ名前のluaファイルを用意すると
ゲーム開始時のマップデータが読み込まれる際に、luaファイルも一緒に読み込まれる

Saves
WorldBuilder
│ ├ hoge.Civ6Map
│ ├ hoge.lua
│ └ piyo.Civ6Map
(他フォルダ)

WorldBuilderフォルダにhogeというマップを作成した場合
同じくWorldBuilderフォルダにhoge.luaという名前で置けば一緒に読み込まれる

スクリプト例

ワールドビルダーにて、地形だけで森や熱帯雨林などの特徴がない固定マップを作り

--'hoge.lua'
include "MapUtilities"
include "FeatureGenerator"

featuregen = FeatureGenerator.Create();
featuregen:AddFeatures(true, true);
featuregen:AddFeaturesFromContinents();

上記のようなluaを同名のスクリプトで読み込ませると
地形は固定で、特徴はゲームごとに変化するようなマップになる


※特徴の設置条件は地形にかなり左右されるので、おおまかには似たような形になる

他にも資源や原住民の集落など、固定マップの中にランダム性も持たせることができる

固定マップのスクリプト化

逆にスクリプトでのマップ生成に固定要素を入れる場合
ワールドビルダーで作成してからそれを、スクリプトに落とし込む方法もある

Civ6Mapファイルの中身はSQLiteのデータベースなので
閲覧・編集できるソフトなどで中を確認できる

地形はPlotsテーブル、川はPlotRiversテーブルなどにPlotIDとごとに記録されているので
必要な要素を取り出して、luaのテーブルに変換してマップスクリプトに導入すれば
完全に手打ちするよりかは手間でなくなる


local plotCount = Map.GetPlotCount();
for plotIndex = 0, plotCount-1, 1 do
	local pPlot = Map.GetPlotByIndex(plotIndex);
	local featureType = pPlot:GetFeatureType();
	if featureType ~= -1 then
		print("{" .. plotIndex .. "," .. featureType .. "},"); 
	end
end

またマップを保存までせず、ワールドビルダーで作成中に
FireTunerでマップ情報をprint()で出力してログから抜き出すという方法もある


Civ6Map(SQLite)

SQLiteの編集ソフトなどで、マップのプロパティにもアクセスできるので
プロパティにTeaserを追加したり、依存MODを編集するなどもできなくはないが
変更・追加は自己責任で