作成情報/はじめてのMOD作り/その2?の続き
さあ、今回も頑張ってMOD作りを身につけましょう。…と、その前に。 そろそろ、XMLエディタを導入すべき時期です。(「既にXMLエディタを使ってるよ」という方は、次節まで進んでください。)
今まではXMLファイルの編集にテキストエディタを使ってきましたが、Civ4のXMLファイルはデータ量が膨大で構造も複雑です。今後、中規模以上のMOD作りを行うにあたっては、XMLファイルの編集に特化したXMLエディタを使うほうが良いでしょう。 XMLエディタのソフトは、有料・無料ともに多数存在しますので、好みのものを選んで導入してください。筆者は XMLEditor.NET を使っています。 XMLエディタなら、XML特有の階層構造を視覚的に把握しやすく、タグの閉じ忘れやスペルミスも減り、より効率よく作業できるようになります。…と今聞いてもピンと来ないでしょうが、使ってみれば実感できると思います。
本来XMLエディタの使い方はこの講座の範疇外…ですが、はじめてXMLエディタを使う人のために、XMLEditor.NETの使い方を少しだけ説明します。(他のXMLエディタを使う方は次節へどうぞ) 説明に従いXMLEditor.NETを導入・起動したら、この講座の最初に作ったKaitakuRunner MODのCIV4UnitInfos.xml を開いてください。*1 左側にツリーが表示され、"UnitInfos"フォルダを展開するとその下にたくさんの"UnitInfo"フォルダが出てきます。さらに、"UnitInfo"フォルダを展開すると、たくさんのフォルダが出てくるでしょう。
このフォルダと、画面右の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"と表示されます。
ここがKaitakuRunner MOD作成時に変更した箇所であり、
<iMoves>100</iMoves>
という部分に対応しています。 右上の"100"の部分を別の数字に書き換えれば、XMLファイルにおいても100の部分がその数字になるというわけです。
XMLエディタは、さほど扱いづらくないソフトだと思います…慣れさえすれば。
前回までに、ユニットのパラメータを変更するMODを2つ作りました。その手順をまとめると、次のようになります。
ここまで分かれば、もうユニットのパラメータ変更は自由自在にできるようになったはずです。*3
では、理解度チェックとXMLエディタの習熟を兼ねて、練習問題を出してみることにします。 以下の通り、斧兵の生産コストを増やすMODを作ってみてください。
できたら、以下の条件も付け加えてみます。
作成のヒントとしては、「斧兵ユニットのキーを把握してください」「生産コストに対応するタグをMOD/作成情報/XMLの編集/ユニットから見つけてください」といったところでしょうか。 これを自力で作れたなら、前回までの内容をしっかり理解できていると言えるでしょう。
答え合わせ用?というわけではないですが、筆者が作ったものを置いておきます。
余談:筆者はCiv4の斧兵が強過ぎると感じているので、こんな条件にしてみました。これで剣士などにもっと光が当たるようになればいいのですが。テストプレイはしていないのでバランスがどうなっているかは分かりません。
いよいよ、今回の本題に入ります。 今まではユニットのパラメータを変更するということに絞って、いくつかのMODを作ってきました。 ここからは、ユニット以外のさまざまなパラメータも変更していきましょう。
と言っても、ここまで学習してきた人にとっては、もうそれほど難しいことではないのです。というより、このWikiは情報が充実しているので、それを活用すれば十分に幅広いMODを作れるようになっている、と言ったほうが良いですかね。
ユニットに関する変更は、MOD/作成情報/XMLの編集/ユニットをもとに行いました。 ユニット以外のどんなパラメータでも、ユニットとほぼ同じ考え方で編集できます。つまり…、
SuperWarrior MODの場合は、上記のうち2でユニットの編集を選び、4で XML\Units\UnitInfos.xml を選び、5で例えばケチュア戦士ユニットのキーを調べ、6で戦闘力を表すタグを調べ、とやっていました。 ユニット以外の編集でも、考え方は同じなのです。
実際に、ユニット以外のパラメータ変更MODを試みてみましょう。 今回は指導者の志向を変更します。 誰の志向をどう変えるべきかは、色々とアイディアや議論があるでしょうが、今回はシャルルマーニュを、攻撃志向・組織志向に変更というのを試してみます。*6
前節「一般論」に従い、順にやっていきましょう。 MOD名は"CharlemagneTraits"、対応バージョンはBtSとします。MOD名フォルダ*7を作ります。
MOD/作成情報の目次を見ると…、当てはまるのは、指導者の編集ですね。以下、そのページとここを見比べつつ進めてください。
次に行うのは、編集すべきファイルを把握することです。 説明を読むと、指導者に関するファイルは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
では、編集作業に入りましょう。 XMLエディタで、CIV4LeaderHeadInfos.xml ファイルを開きます。
このファイルも、ユニットのファイル CIV4UnitInfos.xml 同様、 LeaderHeadInfos の下に多くの LeaderHeadInfo があるという構造をしています。一つ一つの LeaderHeadInfo の下に、一人一人の指導者の情報が詰まっているのでしょう。
次にやるのは、キーの調査。今回でいえば、指導者シャルルマーニュのキーを調べることです。 英語シヴィロペディアを調べる等により、シャルルマーニュのスペルは"Charlemagne"だと分かります。 CIV4LeaderHeadInfos.xml の内部を "CHARLEMAGNE"*10で検索すると…ヒットしました。上から9番目の LeaderHeadInfo に、LEADER_CHARLEMAGNE という文字列があります。これは <Type> タグの中にある文字列であり、 指導者の編集?を見ると Type が指導者のキーであることが確認できます。
指導者シャルルマーニュのキーはLEADER_CHARLEMAGNEであり、この部分を編集すれば良いことが分かりました。
では、彼の志向を変更しましょう。 さっき既に判明した通り、志向を表すタグは <Traits> です。 この部分を調べると、次のようになっています。
<Traits> <Trait> <TraitType>TRAIT_IMPERIALIST</TraitType> <bTrait>1</bTrait> </Trait> <Trait> <TraitType>TRAIT_PROTECTIVE</TraitType> <bTrait>1</bTrait> </Trait> </Traits>
XMLEditor.NET の画面だと、こうです。
内容は、直観的に分かるのではないでしょうか。Traitsの下の Trait タグが一つの志向を表しており、TraitType タグの内容 "TRAIT_IMPERIALIST" が志向を表しています(大文字とアンダーバーを使っているので、志向を表すキーなのでしょうね)。 bTrait というタグはよく分かりませんが、そういう場合はそのままにして放っておきましょう。*11
さて、TRAIT_IMPERIALIST が何志向を意味するのか。逆に、攻撃志向はどんなキーで表されるのか。それを自分で調べてみてもいい*12のですが、前回書いたように、キー一覧・志向に既にまとめられているので、それに頼りましょう。
シャルルマーニュの帝国主義志向・防衛志向を、攻撃志向・組織志向に変更します。つまり、XMLファイルの上記部分の…、
TRAIT_IMPERIALIST と TRAIT_PROTECTIVE を、それぞれ TRAIT_AGGRESSIVE と TRAIT_ORGANIZED に変更しましょう。
そしてファイルを上書き保存すれば、めでたく CharlemagneTraits MOD の完成です!
いつも通り、CivModChooser等からMODを起動してみましょう。
指導者シャルルマーニュを選んでゲームスタートすると…。
はい、この通り。攻撃・組織志向のシャルルマーニュとなりました。
興味があればプレイしてみてください。獲物を見つけたら多少遠くても、ランツクネヒトラッシュでガシガシ制圧していきましょう。組織志向でラートハウス建設速度は2倍です。維持費はどうとでもなるでしょう。
例によって、筆者の作ったものを置いておきます。
指導者変更のMOD作り、理解いただけたでしょうか。復習として、練習問題を出してみることにします。
元ネタは、AIコロスケはなぜ弱い?? です。 パカル2世は決して弱い指導者ではないのに、AIが使うと、彼の特性を生かせず、弱くなってしまう。彼のAI思考ルーチンを内政屋に変更すれば強くなるだろう。という主旨です。 具体的なパラメータ変更内容まで示してくれていますので、それに沿って、以下のように定めます。この仕様で、MODを作ってみてください。
筆者としては、これにさらに以下を付け加えると良いと思います(技術交換を積極的にするため。技術取引の条件を参照)。
AIの思考ルーチンというのはシヴィロペディア等の表面に現れないデータであるため、分かりづらいかもしれません。*13よく知らない方は、このWiki内にある以下のデータを参考にしてください。
筆者が作成したものは、これです。(テストプレイはしていません)
これでもう君はコロスケじゃない。立派なパカルだ!(意味不明)
ユニットの編集、指導者の編集について、今まで説明してきました。 それを応用することで、Civ4のあらゆる分野においてXMLによるパラメータの変更ができるでしょう。 要は、やりたいことに対応した MOD/作成情報 の情報を見て、キーを調べて、それを編集すればよい、ということです。
筆者の感想としては、豪快なMODを作った前々回、前回に比べ、今回はMODの内容が地味でインパクトが今一つだったのが心残りですが…。 次回では、新指導者の追加方法を説明しようと思います。
はじめてのMOD作り その4?に続く