MODのススメ

Last-modified: 2016-01-08 (金) 22:45:01

注意!この文章は昔のバージョンの時に書かれたものです。最新バージョンではこの文章の内容は通用しません。注意してください。

このページはDwarf Fortressの世界を更に広げ、不満点を自分で調整することができるMODについて紹介するページの予定です。
ここでは導入程度に留めてあるので、より詳しくはhttp://dwarf.lendemaindeveille.com/index.php/Category:Modding
を参照のこと。

はじめに

df_**_***_***\raw\objectsには多数のテキストファイル群が置いてある。
DFの世界生成をする時に使われるデータはこのファイルなので、これらを編集した後に世界生成を行うと、
編集内容が適用された世界で遊べるようになる。これがDFでのMODの基本だ。
もちろん、ファイルの書き方はきちんと決まっているからそこから外れるような大掛かりな改造はできないし、
多くのアイテムが編集可能だが、家具や施設などはobjectからは読んでいないために編集できなかったりする。
小物を追加していくような感じで、肩の力を抜いて楽しもう。

なお、何々.txtを編集せよという文章が今後よく出るが、ゲーム要素の変更の場合は元ファイルのバックアップを確実に取っておいたほうがいい。
ゲーム要素の追加の場合は、別のテキストファイルを使って編集するのがスマートだ。
テキストファイルの一番最初にアイテムの場合なら[OBJECT:ITEM]、同様に生物は[OBJECT:CREATURE]、鉱物や植物などは[OBJECT:MATGLOSS]と定義されている。
この定義をしておけば複数のファイルから読み込んでくれるので、例えば植物を追加したい場合は新たにmatgloss_plant_mod.txtあたりの名前でテキストファイルを作って、そこに追加すると良いだろう。こうしておけば除去や新バージョンが出た時の移行がやりやすくなる。

アイテムの追加・変更

編集対象――item_***.txt、entity_default.txt
基本的にはデフォルトで存在するものをコピペして編集していくのが良い。防具(衣服)は項目の意味がわかりにくいが、英語wikiにまとめられている。以下参照のこと。
http://dwarf.lendemaindeveille.com/index.php/Armor_Tokens
なお、アイテムを追加する場合はentity_default.txtも編集しなければならないので注意。

生物の追加・変更

編集対象――creature_***.txt
デフォルトの内容でも充分な生物が登場するので、あまり生物に不満は感じないとは思うが、器官を自由に編集できるので面白い生物を作り出すこともできる。
筆者はちょっとデフォルトでは魚の種類が寂しかったので追加していったが、英wikiの投稿MOD一覧のページを見たら同じようなものがあったので驚いた。
http://dwarf.lendemaindeveille.com/index.php/List_of_mods
このページから、生物に限らず投稿されたMODをダウンロードすることができる。
生物訳(creature)?
身体部位訳(body_default)

自然の追加・変更

編集対象――matgloss_***.txt、reaction_standard.txt
鉱物や植物などの、自然の要素を編集することができる。こちらのページでも紹介されているように、あの憎いsandやRock crystalをマシにすることも可能だ。
合金など、Smelterでアイテムを組み合わせたり、加工するタイプのアイテムを追加・変更した場合はreaction_standard.txtを編集する必要があるので注意を。
また、わかりにくい植物の項目の編集は、やはり英wikiにまとめられている。
http://dwarf.lendemaindeveille.com/index.php/Plant_tokens
植物訳(matgloss_plant)

その他の編集

かなり大掛かりな編集になるが、entity_default.txtをいじると出現する種族(civ、文明)を追加・変更したり、そもそもMOUNTAIN_SETTLEMENTSをドワーフから入れ替えてしまえばドワーフ以外の種族でゲームをプレイすることが出来たりしてしまう。
英wikiではゴブリンを操作するMODや、文明すべてを入れ替えてローマ人やギリシャ人などが登場する世界にした(アイテムなども変更されている)MODがあるようだ。興味があったら遊んでみるのもいいかもしれない。

reaction_standard.txtをいじっていくのも面白い。このアイデアは非常に感心したし、ドワーフの技術力で木と石と金属など奇抜な組み合わせの新しい素材を作る!というのも面白いかもしれない。(合金で定義してAdamantineのように多用途に使えるようにすればいける・・・はず?)
完全にチートだが、Adamantineや木材を無から生み出したりするチートが英wikiで紹介されている。ストレスなくプレイできるのが一番なので、必要なら導入してみてもいいだろう。ゲームが面白くなくなる寿命が短くなるのは確実なので、ほどほどに。
なお、reaction_standard.txtのいじれる範囲は英wikiで考察されている。
http://dwarf.lendemaindeveille.com/index.php/Reactions
これによると今のところは作業施設はSmelter限定、最終生産物はPLANT, STONE, METAL, COAL, and WOODのようだ。木がないマップだから、石と布と革を組み合わせてBed作るよ!とか不遇のAlchemist laboで奇跡の合成システムだ!・・・なんてことはできない。将来のアップデートに期待しよう。

MOD追加の例

これらの内容を踏まえた上で、実際にMODを作成してみた。参考になればとても嬉しい。

銃の追加

ドワーフの技術力ならきっと銃も初歩的なものなら実用化できたに違いない・・・!と妄想してみました。すみません。
ほら、ドワーフの射手の名称がMarksdwarfだからイメージもぴったりだよ!すみません。
まずはitem_weapon_firearms.txtを作成。[OBJECT:ITEM]と定義する。とりあえず、MusketとPistolを追加してみよう。飛び道具なので、クロスボウの性能を参考にして数値をいじっていく。RANGEDの項目の3番目は撃つ弾を定義する。銃がArrowやBoltを発射していては苦笑いなので、同様に弾もBoltを参考にして定義しておこう。

以上の事をまとめた結果、item_weapon_firearms.txtは次のようなテキストファイルになった。

item_weapon_firearms
[OBJECT:ITEM]
[ITEM_WEAPON:ITEM_WEAPON_MUSKET]
[NAME:musket:muskets]
[DAMAGE:80:BLUDGEON]
[WEIGHT:90]
[SKILL:HAMMER]
[RANGED:CROSSBOW:ROUND]
[TWO_HANDED:0]
[MINIMUM_SIZE:5]
[MATERIAL_SIZE:4]
[ITEM_WEAPON:ITEM_WEAPON_PISTOL]
[NAME:pistol:pistols]
[DAMAGE:30:BLUDGEON]
[WEIGHT:20]
[SKILL:HAMMER]
[CRIT_BOOST:1]
[RANGED:CROSSBOW:ROUND]
[TWO_HANDED:0]
[MINIMUM_SIZE:3]
[MATERIAL_SIZE:1]
[ITEM_AMMO:ITEM_AMMO_ROUNDS]
[NAME:round:rounds]
[CLASS:ROUND]
[DAMAGE:150:PIERCE]

このように、武器と弾はデフォルトでは異なるテキストファイルで定義されているアイテムだが、同じ[OBJECT:ITEM]なので同一のファイルに書いても良い。
最後に、装備を追加したので使える文明をentity_default.txtで定義する。

略
	[WEAPON:ITEM_WEAPON_SPEAR]
	[WEAPON:ITEM_WEAPON_MACE]
	[WEAPON:ITEM_WEAPON_CROSSBOW]
		[AMMO:ITEM_AMMO_BOLTS]
	[WEAPON:ITEM_WEAPON_MUSKET]
		[AMMO:ITEM_AMMO_ROUNDS]
	[WEAPON:ITEM_WEAPON_PISTOL]
		[AMMO:ITEM_AMMO_ROUNDS]
略

弾の威力が高すぎて強すぎるし、こんな便利なものは広まっていくだろう・・・と考えて人間とゴブリンにも同様に銃装備を追加しておいた。

これで世界を生成すれば無事銃のあるゲームが楽しめるわけだが、遠隔攻撃武器と弾はデフォルトでは木・骨・金属で作成可能という点はいじることはできない(骨製のMusketが木弾を射撃するという珍妙な光景が出る)し、火薬という概念も当然ない。
このへんはもう、銃は金属のみ、弾は鉱石として硫黄と硝石を追加して、reaction_standard.txtを編集しchacoalと硫黄と硝石とleadを合成したgunpowder and lead合金?を設定し、gunpowder and lead roundしか弾に使わない!(敵や移民がぶちこわしてくれるが)とか存分に妄想して工夫していってほしい。

鉱石・金属・合金

やはりドワーフといえばMithrilでしょう。ということでMithrilとオマケでTitan、それらの合金のEog、IthilnaurとAdalkeaを追加してみました。
matgloss_stone_mineral.txtが鉱石で、matgloss_stone_metal.txtが金属を定義したファイルになっている。加えて、合金を設定するならreaction_standard.txtだ。
まずは、MithrilとTitanの鉱石を作ろう。ゲームバランスを考えてそれなりにレアにしたいところだ。とりあえず、Platinumを参考にした。TitanのほうはデフォルトでTitanの鉱石が既に存在する。Commentとして精錬するのは無理、と書かれているがここは華麗に無視*1だ。マグマさえすぐ近くまで行って利用できるドワーフには不可能はないのだ!すみません。

[MATGLOSS_STONE:MITHRIL]
[NAME:native mithril][STONE_NAME:mithril nuggets][COLOR:3:7:1][TILE:156]
[ENVIRONMENT:ALLUVIAL:CLUSTER_SMALL:100]
[ENVIRONMENT_SPEC:MICROCLINE:SMALL:100]
[ITEM_SYMBOL:'*']
[METAL_ORE:MITHRIL:100]
[SOLID_DENSITY:6500]
[VALUE:100]
a major titanium ore but can't refine through smelting (see e.g. Kroll process)
[MATGLOSS_STONE:ILMENITE]
[NAME:ilmenite][COLOR:0:7:1][TILE:'*']
[ENVIRONMENT_SPEC:GABBRO:CLUSTER_SMALL:100]
[ENVIRONMENT:IGNEOUS_ALL:CLUSTER_SMALL:100]
[SOLID_DENSITY:2307]
[METAL_ORE:IRON:100]
[METAL_ORE:TITAN:50]
[VALUE:30]
another titanium ore, same comment applies
[MATGLOSS_STONE:RUTILE]
[NAME:rutile][COLOR:5:7:0][TILE:'*']
[ENVIRONMENT:METAMORPHIC:CLUSTER_SMALL:100]
[ENVIRONMENT_SPEC:GRANITE:CLUSTER_SMALL:100]
[ENVIRONMENT:IGNEOUS_ALL:CLUSTER_SMALL:100]
[SOLID_DENSITY:2307]
[METAL_ORE:TITAN:100]
[VALUE:30]

鉱石を設定したら、次は金属だ。武器や防具にした場合の性能などはゲームバランスに直結するため、慎重に設定していきたいところだ。

[MATGLOSS_METAL:MITHRIL]
[NAME:mithril][ADJ:mithril][COLOR:3:7:1]
[VALUE:100]
[SPEC_HEAT:1500]
[MELTING_POINT:18000]
[BOILING_POINT:35000]
[WEAPON][WEAPON_RANGED][AMMO][DIGGER][ARMOR]
[DAMAGE_PERC:150]
[BLOCK_PERC:150]
[SOLID_DENSITY:5500]
[MATGLOSS_METAL:TITAN]
[NAME:titan][ADJ:titan][COLOR:0:7:1]
[VALUE:40]
[SPEC_HEAT:800]
[MELTING_POINT:15000]
[BOILING_POINT:25000]
[WEAPON][DIGGER][ARMOR]
[DAMAGE_PERC:133]
[BLOCK_PERC:133]
[SOLID_DENSITY:3200]
[MATGLOSS_METAL:EOG]
[NAME:eog][ADJ:eog][COLOR:0:7:1]
[VALUE:45]
[SPEC_HEAT:1000]
[MELTING_POINT:18000]
[BOILING_POINT:27000]
[WEAPON][ARMOR]
[DAMAGE_PERC:125]
[BLOCK_PERC:175]
[SOLID_DENSITY:5400]
[MATGLOSS_METAL:ITHILNAUR]
[NAME:ithilnaur][ADJ:ithilnaur][COLOR:7:7:1]
[VALUE:48]
[SPEC_HEAT:1200]
[MELTING_POINT:16000]
[BOILING_POINT:28000]
[WEAPON][ARMOR]
[DAMAGE_PERC:175]
[BLOCK_PERC:125]
[SOLID_DENSITY:4200]
[MATGLOSS_METAL:ADALKEA]
[NAME:adalkea][ADJ:adalkea][COLOR:0:7:1]
[VALUE:25]
[SPEC_HEAT:800]
[MELTING_POINT:12000]
[BOILING_POINT:20000]
[WEAPON][ARMOR]
[DAMAGE_PERC:150]
[BLOCK_PERC:150]
[SOLID_DENSITY:4000]

最後に、もう書かなくてもいいだろうがreaction_standard.txt。

[REACTION:EOG_MAKING]
[NAME:make eog bars]
[SMELTER]
[REAGENT:2:BAR:NO_SUBTYPE:METAL:TITAN]
[REAGENT:1:BAR:NO_SUBTYPE:METAL:MITHRIL]
[REAGENT:3:BAR:NO_SUBTYPE:METAL:STEEL]
[PRODUCT:100:6:BAR:NO_SUBTYPE:METAL:EOG]
[FUEL]
[REACTION:ITHILNAUR_MAKING]
[NAME:make ithilnaur bars]
[SMELTER]
[REAGENT:3:BAR:NO_SUBTYPE:METAL:TITAN]
[REAGENT:1:BAR:NO_SUBTYPE:METAL:MITHRIL]
[REAGENT:1:BAR:NO_SUBTYPE:METAL:ELECTRUM]
[PRODUCT:100:5:BAR:NO_SUBTYPE:METAL:ITHILNAUR]
[FUEL]
[REACTION:ADALKEA_MAKING]
[NAME:make adalkea bars]
[SMELTER]
[REAGENT:1:BAR:NO_SUBTYPE:METAL:IRON]
[REAGENT:1:BAR:NO_SUBTYPE:METAL:TITAN]
[PRODUCT:100:2:BAR:NO_SUBTYPE:METAL:ADALKEA]
[FUEL]

さて、これで実装は終わりなのだがここで非常に残念なお知らせだ。ここではレアで強力な金属・合金を設定してきた。が、実際に動かしてみたらゴブリンは誘拐者含めてどいつもこいつもIthilnaur武器だわ、ドワーフキャラバンは全員Eog防具セットだわ、移民のRangerはMithrilの弾を持ってきて惜しげもなく狩りをするわでたまげたことになった。どうも、Adamantineを除く最強の武装でこやつらは来るらしい。
これは・・・ちょっと妄想補完できませんね。一応、entity_default.txtの項目には[MINOR_METAL]という項目があり、デフォルトではコボルドについている。
この項目の効果はその文明が弱い(具体的に言うと銅)金属しか使えなくなるというものだが、さすがにこれを他の文明にも適用することはできない・・・。

DFのverupが世界を救うと信じて・・・!ご愛読ありがとうございました!


*1 含有量が少ないという設定にするなら、鉱石のレアさを緩和して対応金属を定義せずにreaction略で5つくらい鉱石を使って1つの金属棒にするレシピを設定するという手もある。難易度を表現するなら[PRODUCT:~の2番目の数字が多分成功率なので適当に落とせばよい。