はじめてのMOD作り その3

MOD/作成情報/はじめてのMOD作り その3
Last-modified: 2009-04-16 18:56:38

MOD/作成情報/はじめてのMOD作り その3 †

MOD/作成情報/はじめてのMOD作り その2の続き


XMLエディタの導入 †

さあ、今回も頑張ってMOD作りを身につけましょう。…と、その前に。
そろそろ、XMLエディタを導入すべき時期です。(「既にXMLエディタを使ってるよ」という方は、次節まで進んでください。)

今まではXMLファイルの編集にテキストエディタを使ってきましたが、Civ4のXMLファイルはデータ量が膨大で構造も複雑です。今後、中規模以上のMOD作りを行うにあたっては、XMLファイルの編集に特化したXMLエディタを使うほうが良いでしょう。
XMLエディタのソフトは、有料・無料ともに多数存在しますので、好みのものを選んで導入してください。筆者は XMLEditor.NET を使っています。 XMLエディタなら、XML特有の階層構造を視覚的に把握しやすく、タグの閉じ忘れやスペルミスも減り、より効率よく作業できるようになります。…と今聞いてもピンと来ないでしょうが、使ってみれば実感できると思います。

XMLエディタを使ってみる †

本来XMLエディタの使い方はこの講座の範疇外…ですが、はじめてXMLエディタを使う人のために、XMLEditor.NETの使い方を少しだけ説明します。(他のXMLエディタを使う方は次節へどうぞ)
説明に従いXMLEditor.NETを導入・起動したら、この講座の最初に作ったKaitakuRunner MODのCIV4UnitInfos.xml を開いてください。*1
左側にツリーが表示され、"UnitInfos"フォルダを展開するとその下にたくさんの"UnitInfo"フォルダが出てきます。さらに、"UnitInfo"フォルダを展開すると、たくさんのフォルダが出てくるでしょう。

ModTutorial19.png

クリックで拡大画像が出ます(以下同)

このフォルダと、画面右のXML文を見比べてみてください。

<Civ4UnitInfos xmlns="x-schema:CIV4UnitSchema.xml">
  <UnitInfos>
    <UnitInfo>
      <Class>UNITCLASS_LION</Class>
      <Type>UNIT_LION</Type>
  (以下略)

さらに、UnitInfos.xmlのいちばん最後の方を見ると、次のようになっています。

  (中略)
    </UnitInfo>
  </UnitInfos>
</Civ4UnitInfos>

最初の開始タグ<UnitInfos>から終了タグ</UnitInfos>までの間にいろいろなタグやデータが詰まっています。このことを、左側のフォルダ一覧では、"UnitInfos"という名前の親フォルダの中にたくさんの子フォルダやデータが詰まっている、という形で表現したわけです。
その下の"UnitInfo"(最後のsがない、単数形)フォルダが、XML文では<UnitInfo>から次の</UnitInfo>までの部分を表しており、この部分で特定の1種類のユニットのパラメータ群が入っている、というわけです。
UnitInfox.xmlの大まかな構造と、左のフォルダツリーの意味、ご理解いただけたでしょうか。

XMLエディタには、検索機能もあります。開拓者ユニットのキーである"UNITCLASS_SETTLER"で検索する*2と、左ツリー画面でいえば上から5番目の"UnitInfo"フォルダ内でヒットすることが分かるでしょう。その下の多数のフォルダの中から"iMoves"を選択すると、右上のボックス内に"100"と表示されます。

ModTutorial20.png

ここがKaitakuRunner MOD作成時に変更した箇所であり、

<iMoves>100</iMoves>

という部分に対応しています。
右上の"100"の部分を別の数字に書き換えれば、XMLファイルにおいても100の部分がその数字になるというわけです。

XMLエディタは、さほど扱いづらくないソフトだと思います…慣れさえすれば。

前回までの復習 &dagger;

前回までに、ユニットのパラメータを変更するMODを2つ作りました。その手順をまとめると、次のようになります。

ここまで分かれば、もうユニットのパラメータ変更は自由自在にできるようになったはずです。*3

練習課題1:ExpensiveAxe MOD(斧兵増額) &dagger;

では、理解度チェックとXMLエディタの習熟を兼ねて、練習問題を出してみることにします。
以下の通り、斧兵の生産コストを増やすMODを作ってみてください。

できたら、以下の条件も付け加えてみます。

作成のヒントとしては、「斧兵ユニットのキーを把握してください」「生産コストに対応するタグをMOD/作成情報/ユニットの編集から見つけてください」といったところでしょうか。
これを自力で作れたなら、前回までの内容をしっかり理解できていると言えるでしょう。

答え合わせ用?というわけではないですが、筆者が作ったものを置いておきます。

fileExpensiveAxe.zip

余談:筆者はCiv4の斧兵が強過ぎると感じているので、こんな条件にしてみました。これで剣士などにもっと光が当たるようになればいいのですが。テストプレイはしていないのでバランスがどうなっているかは分かりません。

ユニット以外の編集 &dagger;

いよいよ、今回の本題に入ります。
今まではユニットのパラメータを変更するということに絞って、いくつかのMODを作ってきました。
ここからは、ユニット以外のさまざまなパラメータも変更していきましょう。

と言っても、ここまで学習してきた人にとっては、もうそれほど難しいことではないのです。というより、このWikiは情報が充実しているので、それを活用すれば十分に幅広いMODを作れるようになっている、と言ったほうが良いですかね。

一般論 &dagger;

ユニットに関する変更は、MOD/作成情報/ユニットの編集をもとに行いました。
ユニット以外のどんなパラメータでも、ユニットとほぼ同じ考え方で編集できます。つまり…、

  1. 今まで同様の下準備をする。(MOD名決定、対応Ver決定、MOD名フォルダ作り)
  2. 何に関する編集を行うのか、MOD/作成情報の中から選ぶ
  3. それに関する変更説明記事を見る。
  4. 変更を要するファイルを把握し、それをMOD名フォルダ内にコピーする。
  5. パラメータを変える対象物のキーを調べる。
  6. 変更説明ページで、変えたいパラメータを表すタグを調べる。
  7. そのキーを持つ対象物の、そのパラメータを変更する。

SuperWarrior MODの場合は、上記のうち2でユニットの編集を選び、4で XML\Units\UnitInfos.xml を選び、5で例えばケチュア戦士ユニットのキーを調べ、6で戦闘力を表すタグを調べ、とやっていました。
ユニット以外の編集でも、考え方は同じなのです。

CharlemagneTraits MOD(シャルルマーニュの志向変更) &dagger;

実際に、ユニット以外のパラメータ変更MODを試みてみましょう。
今回は指導者の志向を変更します。
誰の志向をどう変えるべきかは、色々とアイディアや議論があるでしょうが、今回はシャルルマーニュを、攻撃志向・組織志向に変更というのを試してみます。*6

作成開始 &dagger;

前節「一般論」に従い、順にやっていきましょう。
MOD名は"CharlemagneTraits"、対応バージョンはBtSとします。MOD名フォルダ*7を作ります。

MOD/作成情報の目次を見ると…、当てはまるのは、指導者の編集ですね。以下、そのページとここを見比べつつ進めてください。

編集対象のファイルを調べ、コピー &dagger;

次に行うのは、編集すべきファイルを把握することです。
説明を読むと、指導者に関するファイルは7つ存在します。ただし、7つ全部を変更する必要はありません。今回は志向を変更するだけなのですから、それに関するファイルが何なのかを見極めます。
CIV4LeaderHeadInfos.xmlの下のほうに、<Traits>|指導者の志向とあります(今回も目立つように黄色枠で示してくれてます)。これですね。
したがって、このMODで変更するファイルはCIV4LeaderHeadInfos.xml一つだけ、ということが分かりました。

このファイルを、MODフォルダ以下にコピーしましょう。CIV4LeaderHeadInfos.xmlは、
C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Civilizations\CIV4LeaderHeadInfos.xml
に存在します。*8これと、Assets以下のフォルダ構造とを、MODフォルダにコピーしましょう。*9

ModTutorial21.png

このようなフォルダ構造になればOKです。

指導者のキーを調べる &dagger;

では、編集作業に入りましょう。
XMLエディタで、CIV4LeaderHeadInfos.xml ファイルを開きます。

ModTutorial22.png

このファイルも、ユニットのファイル CIV4UnitInfos.xml 同様、 LeaderHeadInfos の下に多くの LeaderHeadInfo があるという構造をしています。一つ一つの LeaderHeadInfo の下に、一人一人の指導者の情報が詰まっているのでしょう。

次にやるのは、キーの調査。今回でいえば、指導者シャルルマーニュのキーを調べることです。
英語シヴィロペディアを調べる等により、シャルルマーニュのスペルは"Charlemagne"だと分かります。
CIV4LeaderHeadInfos.xml の内部を "CHARLEMAGNE"*10で検索すると…ヒットしました。上から9番目の LeaderHeadInfo に、LEADER_CHARLEMAGNE という文字列があります。これは <Type> タグの中にある文字列であり、 指導者の編集を見ると Type が指導者のキーであることが確認できます。

ModTutorial23.png

指導者シャルルマーニュのキーはLEADER_CHARLEMAGNEであり、この部分を編集すれば良いことが分かりました。

志向を変更する &dagger;

では、彼の志向を変更しましょう。
さっき既に判明した通り、志向を表すタグは <Traits> です。
この部分を調べると、次のようになっています。

  <Traits>
    <Trait>
      <TraitType>TRAIT_IMPERIALIST</TraitType>
      <bTrait>1</bTrait>
    </Trait>
    <Trait>
      <TraitType>TRAIT_PROTECTIVE</TraitType>
      <bTrait>1</bTrait>
    </Trait>
  </Traits>

XMLEditor.NET の画面だと、こうです。

ModTutorial24.png

内容は、直観的に分かるのではないでしょうか。Traitsの下の Trait タグが一つの志向を表しており、TraitType タグの内容 "TRAIT_IMPERIALIST" が志向を表しています(大文字とアンダーバーを使っているので、志向を表すキーなのでしょうね)。 bTrait というタグはよく分かりませんが、そういう場合はそのままにして放っておきましょう。*11

さて、TRAIT_IMPERIALIST が何志向を意味するのか。逆に、攻撃志向はどんなキーで表されるのか。それを自分で調べてみてもいい*12のですが、前回書いたように、キー一覧・志向に既にまとめられているので、それに頼りましょう。

シャルルマーニュの帝国主義志向・防衛志向を、攻撃志向・組織志向に変更します。つまり、XMLファイルの上記部分の…、
TRAIT_IMPERIALIST と TRAIT_PROTECTIVE を、それぞれ TRAIT_AGGRESSIVE と TRAIT_ORGANIZED に変更しましょう。

ModTutorial25.png

完成 &dagger;

そしてファイルを上書き保存すれば、めでたく CharlemagneTraits MOD の完成です!
いつも通り、CivModChooser等からMODを起動してみましょう。
指導者シャルルマーニュを選んでゲームスタートすると…。

ModTutorial26.png

はい、この通り。攻撃・組織志向のシャルルマーニュとなりました。
興味があればプレイしてみてください。獲物を見つけたら多少遠くても、ランツクネヒトラッシュでガシガシ制圧していきましょう。組織志向でラートハウス建設速度は2倍です。維持費はどうとでもなるでしょう。
例によって、筆者の作ったものを置いておきます。

fileCharlemagneTraits.zip

練習問題2: AIPacal MOD(AIパカル強化) &dagger;

指導者変更のMOD作り、理解いただけたでしょうか。復習として、練習問題を出してみることにします。

元ネタは、AIコロスケはなぜ弱い? です。
パカル2世は決して弱い指導者ではないのに、AIが使うと、彼の特性を生かせず、弱くなってしまう。彼のAI思考ルーチンを内政屋に変更すれば強くなるだろう。という主旨です。
具体的なパラメータ変更内容まで示してくれていますので、それに沿って、以下のように定めます。この仕様で、MODを作ってみてください。

筆者としては、これにさらに以下を付け加えると良いと思います(技術交換を積極的にするため。技術取引の条件を参照)。

AIの思考ルーチンというのはシヴィロペディア等の表面に現れないデータであるため、分かりづらいかもしれません。*13よく知らない方は、このWiki内にある以下のデータを参考にしてください。

これを自力で作れれば、指導者の編集はほぼマスターしたと言えるでしょう。
できあがったら、ライバル文明にパカル2世を指定してプレイし、その強さを味わってください。(初期Rで潰しちゃうのは無しということで・笑)

筆者が作成したものは、これです。(テストプレイはしていません)

fileAIPacal.zip
btn_lh_maya_pacalii.jpg

これでもう君はコロスケじゃない。立派なパカルだ!(意味不明)

まとめ &dagger;

ユニットの編集、指導者の編集について、今まで説明してきました。
それを応用することで、Civ4のあらゆる分野においてXMLによるパラメータの変更ができるでしょう。
要は、やりたいことに対応した MOD/作成情報 の情報を見て、キーを調べて、それを編集すればよい、ということです。

筆者の感想としては、豪快なMODを作った前々回、前回に比べ、今回はMODの内容が地味でインパクトが今一つだったのが心残りですが…。
次回では、新指導者の追加方法を説明しようと思います。

はじめてのMOD作り その4に続く


(コメント欄跡地)


*1 ファイルを開くときに、ファイルサイズが大きいのでモノクロで開く旨の情報メッセージが出るかもしれませんが、問題ありません
*2 検索するキーワードによっては複数ヒットすることもありえます
*3 実はまだ解説していない点も多いので、昇進や特殊能力などの変更を試みて迷うことも多いと思います。このやり方を基本に試行錯誤する精神でいきましょう
*4 BtSを持っていない人は無印でもいいです
*5 生産コストとは、速度普通の場合において生産に必要となる生産力(ハンマー)の数です
*6 2ch Civ4スレvol.102 257よりアイディアをいただきました。筆者は世界史に疎いんですが、彼(カール大帝)は生涯を通し50回以上軍事遠征をし広大な領土を治め、また各地方を巡回して中央集権を目指したそうなので、似合った志向ではないでしょうか。
*7 忘れていませんよね? Vistaなら ドキュメント\My Games\Beyond the Sword(J)\MODS\Charlemagne です
*8 詳しくは編集対象ファイル参照。『XMLファイルなんだからXMLフォルダにあるだろう。指導者というのは文明に付随するものだから、文明(Civilizations)フォルダにあるだろう』というふうに推定で探り当てることもできます。
*9 CIV4LeaderHeadInfos.xmlは無印/WLのAssetsフォルダ配下にもありますが、BtS用MODなのでBtSのAssets配下のものをコピーする、という点を間違えないでください。
*10 その2で書いた通り、Civ4のXMLにおいてキーは大文字で記されます。キーを検索するときは大文字がお勧め。
*11 Civ4において、bで始まるタグは、何かの有無を表す際に用いられることが多いです。値が0ならば無し(無効)、1ならばあり(有効)と、だいたい決まっています。b というのは booleanの略でしょう。ここに入るのは0か1(FalseかTrue)だよ、という意味です。
*12 よければ挑戦してみてください。調査の過程で、 C:\Program Files\CYBERFRONT\Sid Meier's Civilization 4(J)\Warlords(J)\Assets\XML\Text\CIV4GameText_Warlords.xml などのファイルを調べていくことになるでしょう
*13 そのため、このMODを説明のメインに据えることを諦め、練習問題ということにしました。