はじめに

このサイトは、Civ4のMOD開発情報を発信していくブログです。

主に、いままで日本語情報が少なかったPython、SDK、グラフィック、サウンドなどの
MODを作る際の情報を筆者の備忘録がわりに書き留めています。

MODを作りたい人向けの情報であり、MODで遊んだり導入したりしたい人向けではないことを
あらかじめご了承ください。

講座シリーズ

はじめてPythonを触る人向けの講座風コンテンツです。
PythonでもMODやりたいけどどこからはじめたらいいかよくわからない……
という方はここから読むことをお勧めします。

第1期シリーズ・はじめてのPythonMOD

順番に読んでいけばPythonMODに入門できる、そんな内容を目指しました。

  • その1
    PythonでMOD作成する準備 ~ 図書館自動建設
  • その2
    えこひいき図書館・首都だけ/マリだけ・if文・Player・CivilizationInfo
  • その3
    防衛志向・ユニット生成・関数の使い方/作り方
  • その4
    取得済み技術・and/or/else
  • その5
    ダン強化・都市上にいる全ユニットに昇進・for文
  • その6
    XMLで新しい建造物を作る
  • その7
    草原化・マップのラップ・Map・Plot・リストとforの応用

第2期シリーズ・それからのPython

もっと欲張りたい人のための、中級編です。

  • その1
    ゲーム画面にメッセージ表示・変数と値・型・Unicode文字列
  • その2
    年代の表示・フォーマット文字列・抽象化
  • その3
    クラス・メソッド・インスタンス・コンストラクタ
  • その4
    クラスの利用・ゲームの要素を操作する方法
  • その5
    毎ターン・駐留したユニット・変数のスコープ
  • その6
    PyPlayer・複数ファイル・モジュール・文明の持つ全ユニット
  • その7
    昇進の作成
  • その8
    オブジェクト・リスト操作・リスト内包表記・ジェネレータ式
  • その9
    クラス変数・リストの連結・filter()
  • その10
    スペル完成

XML詳説シリーズ

XMLを1ファイルずつ取り上げ、各タグの役割について解説する辞書的コンテンツです。

C++シリーズ

CvGameCoreDll.dllとか使って、なんかします。

MMD to Civ4 プロジェクト

なんとかもっといろいろなユニットをシド星に召喚できないかと
試行錯誤していくプロジェクトです。

CIV4GameSpeedInfo.xml

はじめに

CIV4GameSpeedInfo.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\GameInfo\CIV4GameSpeedInfo.xml

にあります。

<Civ4GameSpeedInfo>

ルートタグです。名前空間として、xmlns="x-schema:CIV4GameInfoSchema.xml"を指定します。

<GameSpeedInfo>

このタグ1つが、ゲーム速度の定義1つと対応しています。

以下<GameSpeedInfo>の中身です。

続きを読む →

CIV4ImprovementInfos.xml

はじめに

CIV4ImprovementInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Terrain\CIV4ImprovementInfos.xml

にあります。

<Civ4ImprovementInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4TerrainSchema.xml"を指定します。

<ImprovementInfo>

このタグ1つが、地形改善の定義1つと対応しています。

以下<ImprovementInfo>の中身です。

続きを読む →

CIV4BonusInfos.xml

はじめに

CIV4BonusInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Warlords(J)\Assets\XML\Terrain\CIV4BonusInfos.xml

にあります。

<Civ4BonusInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4TerrainSchema.xml"を指定します。

<BonusInfo>

このタグ1つが、資源の定義1つと対応しています。

以下<BonusInfo>の中身です。

続きを読む →

CIV4HandicapInfo.xml

はじめに

CIV4HandicapInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\GameInfo\CIV4HandicapInfos.xml

にあります。

難易度の影響範囲

各プレイヤー向け設定値
実は、難易度は人間・AI問わずすべてのプレイヤーに設定されています。
初期〈幸福〉や〈衛生〉などは、すべてのプレイヤーが、自分自身に設定されている難易度を参照します。
通常、AIプレイヤーの難易度は貴族で固定です。(これはGlobalDefines.xmlのSTANDARD_HANDICAPで変更可能です)
例:
難易度が高いほど自分の維持費が上昇する

ゲーム全体向け設定値
すべての人間プレイヤーの難易度を平均したものが「ゲーム全体の難易度」として設定されます。
(通常、「ゲーム全体の難易度」を直接確認することはできませんが、
シングルゲームなら人間プレイヤーが1人なので、
その人間プレイヤーが選んだ難易度がゲーム全体の難易度と一致します。)

AIプレイヤーや蛮族に作用する設定は、この「ゲーム全体の難易度」の設定値を参照します。
例:
ゲーム全体の難易度(=人間が選択した難易度)が高いほどAIがユニット作成コストに割引を得る

各タグの説明

<Civ4HandicapInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4GameInfoSchema.xml"を指定します。

<HandicapInfo>

このタグ1つが、難易度の定義1つと対応しています。

以下<HandicapInfo>の中身です。

続きを読む →

CIV4ProjectInfos.xml

はじめに

CIV4ProjectInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\GameInfo\CIV4ProjectInfos.xml

にあります。

<Civ4ProjectInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4GameInfoSchema.xml"を指定します。

<ProjectInfo>

このタグ1つが、プロジェクトの定義1つと対応しています。

以下<ProjectInfo>の中身です。

続きを読む →

CvGameCoreDll.dllの作り方(2018-05)

筆者の環境

  • Windows 10 64bit
  • Civ4 BtS 3.19 パッケージ版

必要なもの

Dawn of Civilizationの作者さんが全部入りパッケージを公開されています。
https://sourceforge.net/projects/beyond-the-sword-sdk/
ここから
/VS2010Express1.iso と
/Install Civ4 Microsoft Windows SDK Visual C Toolkit.exe を
両方ダウンロードします。

Install Civ4 Microsoft Windows SDK Visual C Toolkit.exeは
実行して指示に従いインストールします。

VS2010Express1.isoはマウントしてVC++2010 Express Editionをインストールします。
(それ以外のプログラミング言語は不要です。)
Setup.htaからVC++2010を選ぶか、 \VCExpress\setup.exe を直接実行します。

やってみる

続きを読む →

CIV4PromotionInfos.xml

はじめに

CIV4PromotionInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Units\CIV4PromotionInfos.xml

にあります。

<Civ4PromotionInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4UnitSchema.xml"を指定します。

<PromotionInfo>

このタグ1つが、昇進の定義1つと対応しています。

以下<PromotionInfo>の中身です。

続きを読む →

CIV4BuildingClassInfos.xml

はじめに

CIV4BuildingClassInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Buildings\CIV4BuildingClassInfos.xml

にあります。

遺産と建造物

遺産も一般建造物も、XML上ではどちらも建造物です。
違うのは、このファイルで指定する建造数制限だけで、
遺産ができることは一般建造物でもできますし、
(遺産並みの強力な効果を持ち、完成ムービーを持つ一般建造物をつくる など) 
逆に一般建造物ができることは遺産にもできます。
(遺産のUBをつくる など) 

各タグの説明

<Civ4BuildingClassInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4BuildingsSchema.xml"を指定します。

<BuildingClassInfo>

このタグ1つが、建造物クラスの定義1つと対応しています。

以下<BuildingClassInfo>の中身です。

続きを読む →

Civ4TraitInfos.xml

はじめに

Civ4TraitInfos.xmlの各項目について説明しています。

このファイルはBtSでは更新されていません。BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Warlords(J)\Assets\XML\Civilizations\CIV4TraitInfos.xml

にあります。

間違えやすい項目

建造物の倍速・建造物からの〈幸福〉は建造物のほうで指定します。
建造物のページの<ProductionTraits><HappinessTraits>も参照してください。

内容

<Civ4TraitInfos>

ルートタグです。名前空間として、"x-schema:CIV4CivilizationsSchema.xml"を指定します。

<TraitInfo>

このタグ1つが、文明の定義1つと対応しています。

以下<TraitInfo>の中身です。

続きを読む →

Civ4TechInfos.xml

はじめに

Civ4TechInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Technologies\CIV4TechInfos.xml

にあります。

一方向性

技術は放棄を選択できないという特性があります。
技術で設定した事項は文明全体に恒久的な影響を及ぼすことに注意してください。

各タグの説明

<Civ4TechInfos>

ルートタグです。名前空間として、"x-schema:CIV4TechnologiesSchema.xml"を指定します。

<TechInfo>

このタグ1つが、技術の定義1つと対応しています。

以下<TechInfo>の中身です。

続きを読む →

用語集

ちょっとわかりにくい言葉をあつめてみました。 これがない!という場合はお気軽にお知らせください。 大聖堂 音楽で解禁される、寺院3つを前提とするこ

続きを読む →

Civ4CivicInfos.xml

はじめに

Civ4CivicInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\GameInfo\CIV4CivicInfos.xml

にあります。

間違えやすい設定項目

  • 指導者の好む社会制度の設定は、各指導者のところにあります。

解説

<Civ4CivicInfos>

ルートタグです。名前空間として、"x-schema:CIV4GameInfoSchema.xml"を指定します。

<CivicInfo>

このタグ1つが、社会制度の定義1つと対応しています。

以下<CivicInfo>の中身です。

続きを読む →

Civ4CivilizationInfos.xml

はじめに

Civ4CivilizationInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Civilizations\CIV4CivilizationInfos.xml

にあります。

<Civ4CivilizationInfos>

ルートタグです。名前空間として、"x-schema:CIV4CivilizationsSchema.xml"を指定します。

<CivilizationInfo>

このタグ1つが、文明の定義1つと対応しています。

以下<CivilizationInfo>の中身です。

続きを読む →

灌漑

はじめに

みなさん、農場は好きですか?
なんだかんだ言って、やはり人口維持のために農場はなくてはならない存在ではあります。
ですが、灌漑というシステムの存在で、置ける場所や出力が大きく変わってしまいます。
それらの仕様についてみていきましょう。

続きを読む →

移動力と地形コスト

はじめに

みなさん、斥候は好きですか?
移動力2の彼らは、迅速な探索に、偵察に、となくてはならない存在ですよね。
でも、丘・森・道路・ヘリコプターなどが複雑に絡んでくると
いったいユニットってどこまで移動できるのかよくわからなくなりがちです。
今回はそんなユニットの移動についてのお話です。

続きを読む →

CIV4LeaderHeadInfos.xml

はじめに

CIV4LeaderHeadInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Civilizations\CIV4LeaderHeadInfos.xml

にあります。

<Civ4LeaderHeadInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4CivilizationsSchema.xml"を指定します。

<LeaderHeadInfo>

このタグ1つが、指導者の定義1つと対応しています。

以下<LeaderHeadInfo>の中身です。

続きを読む →

XMLキー一覧

文明 文明キー 文明 CIVILIZATION_AMERICA アメリカ CIVILIZATION_ARABIA アラブ CIVILIZATION_AZTEC アステカ CIVILIZATION_BABYLON バビロニア CIVILIZATION_BYZANTIUM ビザンチン CIVILIZATION_CARTHAGE カルタゴ CIVILIZATION_CELT ケルト CIVILIZATION_CHINA 中国 CIVILIZATION_EGYPT エジプト CIVILIZATION_ENGLAND イギリス CIVILIZATION_ETHIOPIA エチオピア CIVILIZATION_FRANCE フランス CIVILIZATION_GERMANY ドイ

続きを読む →

通常電力、きたない電力

はじめに

みなさん、工業化は好きですか?
工場に発電所、ハンマーがいっぱい……何をしようか、夢が広がりますね。
今回は不衛生と引き換えに圧倒的修正率をもたらす工業化の主役、電力のお話です。

そう、⚡マークのあれです。CyberFront公式訳では「エネルギー」と訳されていますが、
ここでは「電力」で統一します。指しているものは同じものです。

続きを読む →

CIV4BuildingInfos.xml

はじめに

CIV4BuildingInfos.xmlの各項目について説明しています。

BtSパッケージ版では

C:\Program Files (x86)\CYBERFRONT\Sid Meier's Civilization 4(J)\Beyond the Sword(J)\Assets\XML\Buildings\CIV4BuildingInfos.xml

にあります。

<Civ4BuildingInfos>

ルートタグです。名前空間として、xmlns="x-schema:CIV4BuildingSchema.xml"を指定します。

<BuildingInfo>

このタグ1つが、建造物の定義1つと対応しています。

以下<BuildingInfo>の中身です。

続きを読む →