作ったあるいは英語版から移植したMODが上手く動かないと言う方へ。
英語版の Civ4 は通常 Firaxis Games\Sid Meier's Civilization 4 という構成になっていますが、日本語版では CYBERFRONT\Sid Meier's Civilization 4(J) という構成に変更されています。この為、英語版用の MOD 内で参照パスが指定されている場合、インターフェース関連が全く表示されなくなってしまいます。
2chのMODスレ428氏が解決方法をあげてくださっています。
SevoMod に限らず、日本語版でその現象が出る多くの理由は config を読み込むMODで、\python\INIParser などにある CvPath.py のレジストリ指定が英語版のものになっているためだと思われます。
レジストリの指定を日本語版に変更すればいいようです。
def _getInstallDir(): return __getRegValue(_winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE¥CYBERFRONT¥Sid Meier's Civilization 4(J)", "INSTALLDIR")
Sevomodの場合はそれに加えて、\Assets\res\font のフォントファイルを変更しないとハンマーなどが化けます。
日本語版の MOD を英語版で使うときは、逆に
def _getInstallDir(): return __getRegValue(_winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE¥Firaxis Games¥Sid Meier's Civilization 4", "INSTALLDIR")
に変え、\Assets\res\font フォルダに英語版用のフォントファイルに変更する。
他に考えられる原因として、パスに2バイト文字が含まれていると(ユーザ名等)、同様の不具合が出ることがあります。
その場合は、ユーザー名の変更や MOD を別の場所に入れる等して、パスに2バイト文字が含まれないようにしてください。
XML ファイルのテキスト定義に <Japanese> を追加してやるとうまくいくケースもあるみたいです。 もっともテキスト定義は数が多くなるので全部追加するのは難しいですが・・・
XMLファイルの例: <Civ4GameText xmlns="http://www.firaxis.com"> <TEXT> <Tag>TXT_KEY_AIAUTOPLAY_CANCEL</Tag> <English>Cancel</English> <French>Cancel</French> <German>Abbrechen</German> <Italian>Cancel</Italian> <Spanish>Cancel</Spanish> <Japanese>Cancel</Japanese> <!-- この行を追加する --> </TEXT> </Civ4GameText>
下記例は日本ユニット変更
まずhttp://www.civfanatics.com/等から画像を拾います、
http://stack-style.org/SidGame/?off=75 ここにいっぱいあります
次にその画像ファイルを\Art\Unitsに置きます
次に\XML\Civilizations\CIV4CivilizationInfos.xmlのJAPANを見てみると、
ユニットアートスタイルがASIANになっています、これをJAPANに変更します、
しかしJAPANスタイルなどまだできてないので、次に\XML\Art\CIV4ArtDefines_Unit.xmlを開きます、
新しいユニットを追加していきます、弓兵なら弓兵をコピペして、名前(例ART_DEF_UNIT_ARCHER_JAPAN)と、
関連画像ファイル<NIF>、アニメファイル<KFM>、??<SHADERNIF>の位置指示文字を変えます。
位置は最初に置いたフォルダの位置です、*.kfmが入っていない場合、どのアニメーションファイル(*.kfm)を
使用するか考えて指示しましょう、他のユニットのもの、場所を指示しても問題ありません。<SHADERNIF>は<NIF>と同じ指示でOK。
次に同フォルダCIV4UnitArtStyleTypeInfos.xmlを開き、JAPANスタイルを作ります、例JAPANなら、まずはアジアンスタイルなどをコピペして、必要なユニットだけ、追加、変更すればよいでしょう、で、完了のはずです。
アニメーション設定のKFMファイル内部でデフォルトのNIFファイル名が指定されています。
ユニットを非選択状態でスクロール等を行ったりするとユニット画像が元のものに戻ってしまいます(ユニットを再度選択すれば差し替えた画像に戻る)。
これを解消するには差し替えたNIFファイルと同じフォルダにKFMファイルをコピーし、且つNIFファイルの名前を「KFM内部で指定されているデフォルトNIFファイル名」と同じ名前に変更することで解決できます。
「KFM内部で指定されているデフォルトNIFファイル名」を調べるにはKFMファイルをメモ帳などのテキストエディタで開き「.nif」で検索すれば簡単にわかります。
なお、KFMファイルをコピーしてくる場合は一緒に「.KF」ファイルもコピーする必要があります。
※ 注意:~_freeze~.kfはコピーしないほうがいいです。(どうやら”停止中”のアニメーション画像のようです)。
コメントはありません。 Comments/MOD/作成情報?