自然遺産強制配置

チューナーでの自然遺産配置

既存パネルのWorldBuilder.ltpMap.ltpにある特徴設置システムでは
複数タイル使う自然遺産の向きを指定する配置や、配置条件を無視した強制配置などが難しい

マップ作成用のシステムでは強制配置できる

■強制配置用の関数

TerrainBuilder.SetMultiPlotFeatureType({PlotID配列}, 自然遺産ID);

■{PlotID配列}

  • 配置する自然遺産に必要なタイルの全てのタイル番号(PlotID)を
    配列(Luaのテーブル)にまとめる

上図の数値はそれぞれのタイルのタイル番号(PlotID)なので
この3タイルに配置する場合、配列は{1529,1530,1590}になる

■自然遺産ID

  • IDは自然遺産データでのIndex
    三角形の3タイルなのでここにエベレストを配置するとした場合、通常では10

■強制配置

TerrainBuilder.SetMultiPlotFeatureType({1529,1530,1590}, 10);

  • なので上の関数を実行することで、海の上に上向き三角のエベレストを強制配置することができる
  • 3D表示への反映は、一度ロードし直す必要がある

■Index取得

自然遺産IDはわかりやすく数値を直接記述しているが
IndexはDLCやMODの導入状況で変動するので、Featuresデータから取得した方が良い

TerrainBuilder.SetMultiPlotFeatureType({1529,1530,1590}, GameInfo.Features["FEATURE_EVEREST"].Index);

PlotID

■タイル番号の数え方

ゲームマップのタイルは、マップの一番左下を0として右に行くごとに1増え
右端に行くと次は上の段に行くようにしてインデックスが割り振られ
そのインデックスをタイル番号(PlotID)としている

タイル x,y インデックス
一番左下のタイル x:0, y:0 0
左下から右に4のタイル x:4, y:0 4
極小マップ最下段から5段目
右に4のタイル
x:4, y:5 304

極小マップでは1列が60タイルなので (y:5) x 60 + (x:4) = 304

■ゲーム中の確認方法

AppOptionEnableDebugPlotInfoの項目をオンにすると
ゲーム中にカーソル下のタイルツールチップを表示した際にPlotIDが記載されるようになる


※ツールチップの最下部の#847がPlotID。(7,14)がx:7 y:14を示してる

AppOptionのファイルは

Sid Meier's Civilization VI
 ├ Logs
 ├ Mods
 ├ Saves
 ├ (他のフォルダ)
 ├ AppOptions.txt
 ├ GraphicsOptions.txt
 ├ UserOptions.txt
 └ (他のフォイル)

セーブデータのあるSavesフォルダやMODの手動格納場所のModsと同じ場所にあるAppOptions.txt
メモ帳などのテキストエディタで開いて、ファイル内のEnableDebugPlotInfoの0を1に書き換える

EnableDebugPlotInfo 0 EnableDebugPlotInfo 1

■PlotID関係の関数

ゲーム中ではタイルを数える以外にもPlotIDを割り出す関数がいくつかあるので
それらを利用しても配置に必要なPlotIDを取得できる

Map.GetPlotIndex(X, Y);

  • タイルの横位置Xと縦位置Yからタイルのインデックスを計算してくれる

UI.GetCursorPlotID();

  • マウスカーソルの下にあるタイルのPlotIDを取得する

Map.GetAdjacentPlot(X, Y, direction);

  • 横位置Xと縦位置Yのタイルからdirectionの方向に隣接するタイルのplotデータを取得する

plotデータ:GetIndex();

  • 取得済みの1タイルのplotデータからPlotIDを取り出す