マップデータを保存した場所に、同じ名前のluaファイルを用意すると
ゲーム開始時のマップデータが読み込まれる際に、luaファイルも一緒に読み込まれる
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()で出力してログから抜き出すという方法もある
SQLiteの編集ソフトなどで、マップのプロパティにもアクセスできるので
プロパティにTeaserを追加したり、依存MODを編集するなどもできなくはないが
変更・追加は自己責任で