今日も気づいたら夜

技術メモとか。Civ:BEのMOD作成についてとか。

Civ:BE 世界遺産の追加MOD

MOD/MODの作り方/国家遺産を追加してみよう - Civ5 Wikiを参考に世界遺産を追加するMODを作成する。


1. 作成する世界遺産を決める。
今回追加するのは「モノリス」。高度に発達した巨大なコンピュータという設定。
テクノロジー「コンピューティング」を研究することで作れるようになる。
生産コストは500、簡単のため性能は科学+2、科学+10%とする。


2. プロジェクト作成
作成したプロジェクトに新規xmlを追加する。


3. CivBEBuildings.xmlから基本性能をコピー
0から書くのは大変なので適当な世界遺産をコピーして作成する。今回は量子コンピュータのデータをコピーする。
Civ:BEをインストールしたフォルダの「\assets\Gameplay\XML\Buildings」にあるCivBEBuildings.xmlを開いてみる。

<GameData>
(中略)
  <Buildings>
(中略)
    <Row>
      <Type>BUILDING_QUANTUM_COMPUTER</Type>
      <BuildingClass>BUILDINGCLASS_QUANTUM_COMPUTER</BuildingClass>
      <Cost>1050</Cost>
      <ConquestProbability>100</ConquestProbability>
      <PrereqTech>TECH_FIELD_THEORY</PrereqTech>
      <Description>TXT_KEY_BUILDING_QUANTUM_COMPUTER</Description>
      <Help>TXT_KEY_BUILDING_QUANTUM_COMPUTER_HELP</Help>
      <Civilopedia>TXT_KEY_BUILDING_QUANTUM_COMPUTER_PEDIA</Civilopedia>
      <Quote>TXT_KEY_BUILDING_QUANTUM_COMPUTER_QUOTE</Quote>
      <ArtDefineTag>QUANTUM_COMPUTER</ArtDefineTag>
      <HurryCostModifier>-1</HurryCostModifier>
      <FreeTechs>1</FreeTechs>
      <DisplayPosition>4</DisplayPosition>
      <IconAtlas>BW_ATLAS_2</IconAtlas>
      <PortraitIndex>13</PortraitIndex>
      <WonderSplashImage>Wonder_Quantum.dds</WonderSplashImage>
      <WonderSplashAudio>AS2D_WONDER_SPEECH_QUANTUM_COMPUTER</WonderSplashAudio>
    </Row>
(中略)
  <Buildings>
(後略)

<Type><BuildingClass><PrereqTech><Description><Help><Civilopedia><ArtDefineTag><HurryCostModifier><IconAtlas><PortraitIndex>はCiv5にもあったので説明は省略。

<Cost>は500に、<PrereqTech>はTECH_COMPUTINGに、<Type><BuildingClass><Description><Help><Civilopedia>はQUANTUM_COMPUTERをMONOLITHに置き換える。
量子コンピュータの「無償のテクノロジーを与える」のような特別な性能を持つわけではないので<Help>は削除。
<ArtDefineTag><HurryCostModifier><IconAtlas><PortraitIndex>はそのまま。

Civ5にない(あるかもしれないが)のは<ConquestProbability><Quote><FreeTechs><DisplayPosition><WonderSplashImage><WonderSplashAudio>あたり。
このうち、<FreeTechs>は完成時に無償で与えられるテクノロジー数だろう。今回はいらないので削除。
<ConquestProbability>は獲得確率と訳せる。他の世界遺産の<ConquestProbability>を見ると軒並み100となっている。CPがどれくらいの確率でこの建物を作るのかという確率だろう。他の世界遺産と同様に100のまま。
<Quote>は、完成時に表示される格言集の部分。他のテキスト部分と同じく、QUANTUM_COMPUTERをMONOLITHに置き換える。
<DisplayPosition>は何を表しているかわからないのでそのまま。
<WonderSplashImage><WonderSplashAudio>は完成したときに表示される画像、および流れる音声についてだろう。<WonderSplashImage>は量子コンピュータのものを流用するためそのまま、<WonderSplashAudio>は音声を作らないため削除。


4. 建設された場合の補正値を作成
モノリス」を作成した場合のボーナスは、科学+2、科学+10%とする。
CivBEBuildings.xmlを見てみる。

<GameData>
(中略)
  <Building_YieldChanges>
(中略)
    <Row>
      <BuildingType>BUILDING_QUANTUM_COMPUTER</BuildingType>
      <YieldType>YIELD_SCIENCE</YieldType>
      <Yield>5</Yield>
    </Row>
(中略)
  </Building_YieldChanges>
  <Building_YieldModifiers>
(中略)
    <Row>
      <BuildingType>BUILDING_MANTLE</BuildingType>
      <YieldType>YIELD_SCIENCE</YieldType>
      <Yield>10</Yield>
    </Row>
  </Building_YieldModifiers>
(後略)

Civ5と同様なので省略。
それぞれ、<BuildingType>を先ほど設定したBUILDING_MONOLITHにする。
<Building_YieldChanges>の中にある<Yield>を2にする。
<Building_YieldModifiers>の中にある<Yield>については、今回は変更する必要はない。


5. CivBEBuildingClasses.xmlからコピー
CivBEBuildings.xmlと同じフォルダにあるCivBEBuildingClasses.xmlを見てみる。

<GameData>
(中略)
  <BuildingClasses>
(中略)
    <Row>
      <Type>BUILDINGCLASS_QUANTUM_COMPUTER</Type>
      <DefaultBuilding>BUILDING_QUANTUM_COMPUTER</DefaultBuilding>
      <Description>TXT_KEY_BUILDING_QUANTUM_COMPUTER</Description>
      <MaxGlobalInstances>1</MaxGlobalInstances>
    </Row>
(中略)
  </BuildingClasses>
</GameData>

建物を追加するためのクラスを追加する。<Type><DefaultBuilding><Description>にあるQUANTUM_COMPUTERをMONOLITHに置き換える。


6. エイリアンがモノリスを作成できないようにする
「\assets\Gameplay\XML\Civilizations」にあるCivBECivilizations.xmlを見てみる。量子コンピュータに関する記述はないが、下記のような記述がある。

<GameData>
  <Civilization_BuildingClassOverrides>
    <Row>
      <CivilizationType>CIVILIZATION_ALIEN</CivilizationType>
      <BuildingClassType>BUILDINGCLASS_HEADQUARTERS</BuildingClassType>
      <BuildingType />
    </Row>
  </Civilization_BuildingClassOverrides>
</GameData>

これによってエイリアンが司令部を作成できないようにしているらしい。念のためモノリスにもこの記述を追加する。<BuildingClassType>のHEADQUARTERSをMONOLITHに変更。


7. テキストを追加
最後に実際に表示されるテキストを追加する。


8. 完成
以上の記述を追加した、作成したxmlは次のようになる。

<?xml version="1.0" encoding="utf-8"?>
<GameData>
	<BuildingClasses>
		<Row>
			<Type>BUILDINGCLASS_MONOLITH</Type>
			<DefaultBuilding>BUILDING_MONOLITH</DefaultBuilding>
			<Description>TXT_KEY_BUILDING_MONOLITH</Description>
			<MaxGlobalInstances>1</MaxGlobalInstances>
		</Row>
	</BuildingClasses>
	<Buildings>
		<Row>
			<Type>BUILDING_MONOLITH</Type>
			<BuildingClass>BUILDINGCLASS_MONOLITH</BuildingClass>
			<Cost>1</Cost>
			<ConquestProbability>500</ConquestProbability>
			<PrereqTech>TECH_COMPUTING</PrereqTech>
			<Description>TXT_KEY_BUILDING_MONOLITH</Description>
			<Civilopedia>TXT_KEY_BUILDING_MONOLITH_PEDIA</Civilopedia>
			<Quote>TXT_KEY_BUILDING_MONOLITH_QUOTE</Quote>
			<ArtDefineTag>QUANTUM_COMPUTER</ArtDefineTag>
			<HurryCostModifier>-1</HurryCostModifier>
			<DisplayPosition>4</DisplayPosition>
			<IconAtlas>BW_ATLAS_2</IconAtlas>
			<PortraitIndex>13</PortraitIndex>
			<WonderSplashImage>Wonder_Quantum.dds</WonderSplashImage>
		</Row>
	</Buildings>
	<Building_YieldChanges>
		<Row>
			<BuildingType>BUILDING_MONOLITH</BuildingType>
			<YieldType>YIELD_SCIENCE</YieldType>
			<Yield>3</Yield>
		</Row>
	</Building_YieldChanges>
	<Building_YieldModifiers>
		<Row>
			<BuildingType>BUILDING_MONOLITH</BuildingType>
			<YieldType>YIELD_SCIENCE</YieldType>
			<Yield>10</Yield>
		</Row>
	</Building_YieldModifiers>
	<Civilization_BuildingClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_ALIEN</CivilizationType>
			<BuildingClassType>BUILDINGCLASS_MONOLITH</BuildingClassType>
			<BuildingType />
		</Row>
	</Civilization_BuildingClassOverrides>

	<Language_EN_US>
		<Row Tag="TXT_KEY_BUILDING_MONOLITH">
			<Text>Monolith</Text>
		</Row>
		<Row Tag="TXT_KEY_BUILDING_MONOLITH_PEDIA">
			<Text>A monolith is an advanced computer.</Text>
		</Row>
		<Row Tag="TXT_KEY_BUILDING_MONOLITH_QUOTE">
			<Text>"It's wonderful. This is what we've been desiring."[NEWLINE]- Unknown</Text>
		</Row>
	</Language_EN_US>
	<Language_JA_JP>
		<Row Tag="TXT_KEY_BUILDING_MONOLITH">
			<Text>モノリス</Text>
		</Row>
		<Row Tag="TXT_KEY_BUILDING_MONOLITH_PEDIA">
			<Text>モノリスは高度に発達した巨大なコンピュータだ。</Text>
		</Row>
		<Row Tag="TXT_KEY_BUILDING_MONOLITH_QUOTE">
			<Text>「素晴らしい。これが我々の求めていたものだ」[NEWLINE]- 作者不明</Text>
		</Row>
	</Language_JA_JP>
</GameData>

建物を更新するMODのため、プロパティの「Mod Info」にある「Systems」の「Reload Landmark System」にチェックを入れ、「Actions」に作成したxmlを追加してビルドすれば世界遺産モノリス」を追加するMODができる。


9. 実際に遊んでみる
ゲームを起動し、「MOD」から作成したMODを適用してゲームを始めから開始し、テックウェブを見ると「コンピューティング」の欄に作成したモノリスが追加されているのがわかる。
f:id:fallinsky:20141106225608j:plain
スタンダード以外だと生産コストに補正がかかるので注意。
シヴィロペディアにも追加されている。
f:id:fallinsky:20141106225630j:plain