#author("2017-07-07T23:34:26+09:00","","")
#author("2017-07-07T23:58:58+09:00","","")
#contents

** 新しい存在を追加する [#te3cd26a]
前回までは、Civ4ですでに存在するもの(ユニット、指導者など)のパラメータを変更するMODについて説明してきました。~
最終回となる(はずの)今回は、そこから一歩踏み出して、''新しい存在を追加する''MODを作ろうと思います。~

*** 一般論 [#z69ef9e5]
文明の追加、ユニットの追加、指導者の追加、テクノロジーの追加、宗教の追加、志向の追加…。MODによって、さまざまなものを追加することができます。わくわくしますね。

一般論としては、どれも同じような考え方で追加することができます。~
新しい○○を作りたいと思ったら、○○について記述したXMLファイルに、''新しいものの情報をワンセット追加''するのです。今までのパラメータ変更MODのようにXMLファイルの一部を「書きなおす」のではなく、''書き足せばよい''わけです。

ただし、情報を追加するXMLファイルは一つだけとは限りません。○○そのものの情報だけでなく、各国語での名称やシヴィロペディアやグラフィックに関する情報も追加しなければならないことが多いです。~
''編集すべきファイルが多岐にわたる''という点において、新しいものを追加するMODは、既存のパラメータを変更するMODよりも作成が難しいと言えるでしょう。

しかし、恐れることはありません。そのためのガイドは、すでにこのWikiに存在します。ここまで読んだ人なら、すでにお気づきでしょうか。~
''[[作成情報の「XML編集」>MOD/作成情報]]を活用すればよい''のです! 各ページに、編集すべきファイルと、その関係や各パラメータの意味がまとめられています。先人の知恵をありがたく活用しましょう。~
新しい文明を追加したいなら[[文明の編集>MOD/作成情報/XMLの編集/文明]]を、新しい宗教を追加するなら[[宗教の編集>MOD/作成情報/XMLの編集/宗教]]を見ればよい、という寸法です。

能書きはこのぐらいにして、実践に入るとしましょう。

** 信長MOD (新指導者の追加) [#qba7a1fa]
''「織田信長」を、新指導者として追加する。''~
いまから作るMODは、これです。~
&ref(Odanobunaga.jpg);

MODの名称は"Nobunaga"、対応バージョンはBtSとします。いつも通り、MODのためのフォルダ"Nobunaga"を新規作成((ドキュメント\My Games\Beyond the Sword(J)\MODSの下に Nobunaga フォルダを作るのですよ。忘れていませんよね?))し、MOD作成を始めましょう!~
&ref(ModTutorial29.png);

*** 編集対象ファイルを把握し、コピー [#s7649d89]
新しい指導者を追加するためには、何を作ればいいのか。前節「一般論」で述べた通り、それを[[作成情報>MOD/作成情報]]の中から該当するページを見れば、それを知ることができます。~
今回は指導者追加MODなので、見るのは、[[指導者の編集>MOD/作成情報/XMLの編集/指導者]]。必要な情報は、ここにほぼ網羅されています。

さて、今回編集するのはどのファイルでしょうか。 [[編集対象ファイル>MOD/作成情報/XMLの編集/指導者]] を読みましょう。ただし、そこに注意されている通り、BtSの場合やMODの置き場所次第で読みかえが必要になります。~
今回の場合、コピー元のファイルは以下の通りとなります。

+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Civilizations\CIV4LeaderHeadInfos.xml
→ドキュメント((「その1」で説明した通り、Windows XP以前なら"My Documents"です))\My Games\Beyond the Sword(J)\MODS\Nobunaga\Assets\XML\Civilizations\CIV4LeaderHeadInfos.xml としてコピーを配置 (2以降も同様にコピーします)
+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Civilizations\CIV4CivilizationInfos.xml
+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Civilizations\CIV4CivilizationInfos.xml
+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Text\CIV4GameText_Objects_BTS.xml((無印とBtSとでファイル名が違うことに注意。5,6も同様))
+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Text\CIV4GameText_Civilopedia_BTS.xml
+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Text\CIV4GameText_DiplomacyText_BTS.xml
+ C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Art\CIV4ArtDefines_Leaderhead.xml

基本的な考え方は今までと同じで、難しいことではありません。「BtSインストールディレクトリ内のAssets以下にあるファイルのうち、MODによる変更・追加を行うものを、MODS\Nobunaga以下にディレクトリ構造を保ったままコピーする」ということです。

'''ただし、Textフォルダ内のファイル(4~6番目)については、コピーしたものを改変するのではなく、別ファイルを作ってしまうという変則的な方法をとります。詳しくは次回説明します。'''

*** パラメータの検討 [#h7703ca1]
次に、織田信長のデータを作っていきます。

指導者のデータは大きく分けて、人間プレイヤーが使うときのものと、AI指導者である場合のみ使われる思考傾向等のパラメータとがあります。~
まずは、プレイヤーが信長を使う場合を考えてみましょう。といっても、考える項目は少ないです。彼が率いる文明と、志向だけですね。~
文明は言うまでもなく''日本''です。したがってユニークユニットは侍、ユニーク建築物はシェール油精製施設((違和感を感じる人は、このMODが完成したあとで、日本文明を編集して別のUBを作りましょう))となります。((今回のMODは「新指導者の追加」であって「新文明の追加」ではありません。したがって、文明によって決定されるユニークユニットなどは考えなくてよいのです。))

信長の志向は…何でしょうか。歴史マニアならずとも、人それぞれのこだわりがあるところでしょう。筆者((理系出身で、歴史はド素人です))なりに、Civ4に織田信長がいたらどんな指導者だろうかと想像すると…

- 「天下布武」。武力をもって天下統一を志す
- 能力主義。有能な家臣を数多く従えていた
- 海外・先進技術の導入、活用に積極的。火縄銃など
- 「楽市・楽座」。経済振興策を推進。

そこで今回は、織田信長の志向を次のように決めます。((異論も多くあるでしょう。強い家臣団を大将軍になぞらえて帝国にしましたが、当初は攻撃にするつもりでしたし、カリスマ等も合うと思われます。本記事を参考に、読者独自の指導者信長をデザインし、あなたなりのMODを作っていただければと思います))

- ''帝国主義志向''
- ''金融志向''

プレイヤーが使う場合、必要なデータはこれだけです。一方、AIが使う場合は、その思考ルーチンに関わる何十ものパラメータを決めなければなりません。~
それらのデータを行き当たりばったりで作るのもちょっと面白みに欠ける気がします。一般論としてですが、研究も軍事も遺産も何にでも手を出そうとすると、特徴のない指導者になってしまったり、前回紹介した「AIコロスケはなぜ弱い?」のようなちぐはぐな物になってしまう場合があります。~
せっかく信長という個性的な人物を使うのですから、AIにも信長らしい個性を持たせてみましょう。信長を連想させるようなAI、大まかな方向性としては…。

- ''平和志向度は低め''。侵略戦争も辞さない
- ''技術取得にも熱心''。軍事・経済のテクノロジーを好む
- 対外交易に積極的。AIの''好む社会制度は自由市場''((主従制も信長らしいと思いますが、今回は研究が速いという特徴をつけることを重視しました))
- 遺産、宗教には関心が薄め((史実の織田信長は安土城を建てたり、囲碁・相撲などの文化を好んだりもしていましたが、AIとしての特長・メリハリをつけるために、今回はこういう設定にします))

制覇に向けた戦争とテクノロジーを重視。「帝国・金融」という志向を活かすという意味でも、こういう方向性でAIを作ることにします。

*** お手本データのコピー [#s22e117a]
信長の志向とAIの概要が決まったところで、いよいよXML編集に入りましょう。\MODS\Nobunaga フォルダにコピーした7つのファイルを編集していきます。まずは CIV4LeaderHeadInfos.xml から手をつけていきますが…。

新指導者のデータを入力するにあたって、XMLのタグと内容をすべて自分の手で入力するという方法は良いとは言えません。時間もかかりますし、必要なタグを入力し忘れたりタグ名の打ち間違いも起こりがちです。~
こういう場合、''既存の指導者ひとりのデータをコピーしてファイル内に貼り付けたあと、データを修正する''という方法が、効率・正確性の点で良いでしょう。

XMLエディタで、MODS\Nobunaga フォルダ内の CIV4LeaderHeadInfos.xml を開きましょう。前回説明した通り、このファイル内では、<LeaderHeadInfo>がたくさん並列に並んでおり、一つひとつの<LeaderHeadInfo>~</LeaderHeadInfo>の間(左のツリーででは"LeaderHeadInfo"フォルダに相当します)にそれぞれ一人の指導者のデータが詰まっています。~
そこで、指導者のうち適当な一人を選んで、そのデータコピーします。コピー元は誰でもよく((どうせ信長のデータに書き換えるわけですから))、同じ日本の徳川家康でもよいと思いますが、今回は、先ほど述べたAI信長の特徴(戦争屋だが研究も早い)に近いと思われるハンニバルを選びました。'''AI用パラメータの編集は項目が多くて大変なため、新指導者を作るにあたっては、性向が近いと思われるAIのデータを下敷きにすることをお勧めします。'''~
&ref(ModTutorial31.png);~
XMLEditor.NET を使っている場合、ハンニバルのデータが入った LeaderHeadInfo フォルダ((発見するにはHANNIBALでファイル内検索します))を右クリックして「コピー」します(上のスクリーンショット)。~
&ref(ModTutorial32.png);~
そして、最後のLeaderHeadInfoフォルダを右クリックして「貼り付け(次ノード)」((1階層上の LeaderHeadInfos フォルダを右クリックして「貼り付け(子ノード末尾)」を選んでも同じことです))。

これで、このファイルの末尾に、ハンニバルのデータが入ったもう一つの LeaderHeadInfo ができあがりました。
あとは、このデータを織田信長のものに書き換えていくだけです。

*** データ入力 [#cb28f00b]
[[指導者の編集・CIV4LeaderHeadInfos.xml>MOD/作成情報/XMLの編集/指導者]] の表の内容とにらめっこして、XMLファイルの中を書き換えていきましょう。

最初は、表で黄色く塗られている<Type>,<Description>, <Civilopedia>,<ArtDefineTag> の4つです。~
まず<Type>タグの内容を、''LEADER_HANNIBAL''から''LEADER_NOBUNAGA''に変更します。他の3つも、HANNIBALの部分をNOBUNAGAに書き換えます。~
&ref(ModTutorial33.png);~
これらは「キー」です。~
キー、つまり識別するための記号ですから、全体での整合性さえ保たれていれば、キー自体は何でもかまいません。「徳川家康の指導者キーが "LEADER_TOKUGAWA" ですから、信長も "LEADER_ODA" にしたほうが良いのでは?」と思う人は、その通りにしてください。重ねて言いますが、他の場所での内容と整合するよう注意!

次に、信長の''志向''を入力しましょう。
やり方は、前回のシャルルマーニュの時に説明しました。<Traits>タグの下にある2つの<TraitType>を、次のようにします。

- ''TRAIT_FINANCIAL(金融志向)はそのまま''
- TRAIT_CHARISMATICは''TRAIT_IMPERIALIST(帝国主義志向)に変更''

&ref(ModTutorial35.png);

*** データ入力・AI関連 [#c025fcbd]
この節では、AIが信長を担当する場合の思考に関するデータを入力します。~
'''ここは、手間のかかる部分です。「AI信長の性格にはこだわらない。ハンニバルのままでも別によい」という方は、ここを飛ばして、次項以降に進んだほうが良いかもしれません。'''~
'''AI部分を抜きにしていったん完成させ、信長を操作してテストプレイしたあと、ここに戻って、以下の修正を施す、という方法をとるのも良いでしょう。'''

順番が前後しますが、[[指導者の編集・CIV4LeaderHeadInfos.xml>MOD/作成情報/XMLの編集/指導者]] の表で、今まで手を付けていなかったところを編集します。~
項目がたくさんあって大変ですね。表の説明だけでは数値が分かりづらいでしょうから、具体例として、Civ4に実在する指導者のパラメータを [[指導者の性格>データ/指導者]] ((外部サイトですが、BtS版の表はhttp://www2.k-rent.net/~CIV4/CIV4LeaderHeadInfos.htmにあります))で見て参考にすると良いでしょう。

AIハンニバルのパラメータを下敷きにして、以下の点を変更することにします。'''先に述べた方向性を踏まえて、「ハンニバルよりも技術取引に積極的」、「国教にこだわらない」の2点を意識しています。'''

- iNoTechTradeThreshold を 10 から 15 に変更 (対技術ブローカー寛容度)
- iTechTradeKnownPercent を 30 から 10 に変更 (技術秘匿度)
- iMaxGoldTradePercent を 5 から 20 に変更 (総収入に対する比率:国庫備蓄量の設定ライン)
- iBuildUnitProb を 30 から 35 に変更 (ユニット生産割合)((ハンニバルのカリスマ志向は精鋭軍。信長はそれより多少軍量を重視しました))
- iSameReligionAttitudeChangeLimit を 4 から 1 に変更 (同宗教による態度補正の最大値)
- iDifferentReligionAttitudeChange を -1 から 0 に変更 (異宗教の態度補正で一度に変化する態度の単位)

'''余談:たくさんあるAIパラメータの中でも、特に重要なのは以下の6つだと思います。内政屋、戦争屋といった性格づけに大きく作用しますので、今後AIをデザインする際にはこれらに注意してください。(宗教などの態度ボーナス・ペナルティなど、他にも重要なものがありますが…)'''
- '''遺産建造度(iWonderConstructRand)'''
- '''平和志向度(iBasePeaceWeight)'''
- '''乱数がこの値を超えると理由なく宣戦(iMaxWarRand)'''
- '''ユニット生産割合(iBuildUnitProb)'''
- '''好みの社会制度(FavoriteCivic)'''
- '''研究フレーバー(Flavors)'''

DemandTributeAttitudeThreshold以降のタグの内容は、外交において態度が○○以上であれば云々、という条件を記述したものです。[[取引に必要な態度]]を参考にしてください。態度を表すキーは[[キー一覧・外交態度>MOD/作成情報/キー一覧]]の通りです。~
これを、次のように変更します。

- MapRefuseAttitudeThreshold を ATTITUDE_ANNOYED から ATTITUDE_PLEASED に変更
&ref(ModTutorial34.png);

これは、地図交換に応じる態度に関するパラメータです。~
'''注意すべきなのは、これは地図交換を「拒否」する態度だということ。つまりATTITUDE_PLEASED(不満はない)ではダメで、「親しみを感じている」相手にしか信長は地図を提供してくれません。'''((学習のため、一度ぐらいは態度キーの変更を行っておこうと思いました。ちょっと無理やりですが、情報の重要性を知る信長なら簡単に地図を渡さないだろうとの推測。))

次は、AIの好む社会制度・<FavoriteCivic>です。~
信長が好む社会制度は自由市場。したがって、''<FavoriteCivic>タグの値はCIVIC_FREE_MARKETのまま''にしておきます。

次の<Flavors>は、[[AIの好む技術]]です(前回のAIパカルMODでも触れました)。~
ハンニバルの好みは軍事5、経済2。信長もこのままにしておきます。

その後、 <ContactRands> から <MemoryAttitudePercents> までは外交の行い方および各種態度ボーナス・ペナルティに関する値のようですが、項目が非常に多いため、今回は変更せずにハンニバルのデータをそのまま採用します。((値の増減による影響度がよく見えないため設定しづらいという理由もあります))~
次の<NoWarAttitudeProbs>、<UnitAIWeightModifiers>、<ImprovementWeightModifiers>の3つについても、意味および挙動が十分に解明されていないため、変更しないでおきます。~
'''だんだんグダグダになってきてますね…(笑)。'''

*** 音楽 [#tbbd1e36]
CIV4LeaderHeadInfos.xmlの編集も大詰めです。~
最後に、 <DiplomacyIntroMusicPeace> から <DiploMusicWarEra> までは、外交に使われる音楽を決めるものです。~
和風音楽が相応しいと思いますので、この部分は''徳川家康の同位置のデータをコピー''しましょう。~
徳川家康の中の <DiplomacyIntoMusicPeace> をコピーします。(("LEADERHEAD_TOKUGAWA"を検索して、そのツリーの下の DiplomacyIntoMusicPeace フォルダを選んでコピー))~
&ref(ModTutorial36.png);~
そして、信長の <DiplomacyIntoMusicPeace> に貼り付け(次ノード)をします。~
&ref(ModTutorial37.png);~
そうしたら、もともとの信長の <DiplomacyIntoMusicPeace> (ハンニバルからコピーしてきたもの)を削除してしまいましょう。~
次の <DiplomacyMusicPeace> についても同様にします。~
あとの<DiplomacyIntroMusicWar>と<DiplomacyMusicWar>については、徳川とハンニバルとで差が無いようなので、この作業を省略していいでしょう。

これでようやく、CIV4LeaderHeadInfos.xml の書き換え作業が完了しました!ファイルを保存しましょう。

** 次回予告 [#y81d3aad]
…「その4」が最終回のはずだったのですが…終わりませんでした。ごめんなさい。慣れれば簡単なはずのことですが、丁寧に説明しているため長くなってしまったようです。

信長MODはまだ完成していません。次回こそ完成させ、MODの公開などについて説明したうえで、「はじめてのMOD作り」を完結させるつもりです。~
お読みくださり、ありがとうございました。ではまた次回!

[[「はじめてのMOD作り その5」>MOD/作成情報/はじめてのMOD作り/その5]]に続く

トップ   編集 差分 バックアップ 添付 複製 ページ名変更 リロード   新規 ページ一覧 単語検索 最終更新   スマホ版表示に変更   最終更新のRSS