Top / MOD一覧 / MOD製作 / TECH

MOD製作/TECH

MOD製作

(英語版Wiki、http://www.paradoxian.org/hoi2wiki/index.php/Modding_tech_filesより訳出)

イントロダクション

techファイルの構造は、HOIとHOI2とではいささか異なる。技術のシステムが大きく変更されたからだ。しかしながら、techファイルは依然としてMODりやすい。

基本的な構造

techファイルの主な内容は、個々の技術の効果だ。例えば初期型歩兵師団だとこんな感じだ。

application = { # Early Infantry Division
	 id  = 1020								ID
   	 name  = TECH_APP_INFANTRY_2_NAME						Name
   	desc = TECH_APP_INFANTRY_2_DESC
		
   	 position  = { x = 24 y = 48 }						Position
   	 year  = 1936								Year

	 component  = { # Service Rifle						Components
     		id = 1021
     		name = TECH_CMP_INFANTRY_2_1_NAME
     		type = general_equipment
     		difficulty = 5
   	}
 
	 ##four more components 

	 required  = { 1010 }							Prerequisites
	 effects  = {								Effects
	  	command = { type = new_model which = infantry value = 1 }
      		command = { type = scrap_model which = infantry value = 0 }
      		command = { type = activate_unit_type which = police }
	}
}

ID

すべての技術は固有のIDを持つ。使いやすいように、IDはパラドックスがやってるのと同じやり方でいくべきだろう。すべてのIDは、以下の規則に従う。

最初の桁は1から9まで、その技術がどこに属するかを決めている。(1が歩兵、2が装甲、3が艦船、4が航空機、5が産業、6が陸軍ドクトリン、7が秘密兵器、8が海軍ドクトリン、9が空軍ドクトリン)

つぎの2桁が、その技術がファイルのどこにあるかを決めている。
たとえば「初期型歩兵師団」はinfantry_tech.txtファイルの2個目の技術で、値は02になっている。

最後の桁はソフトの仕様で0と決まっている。

....以下翻訳中

Name

ゲーム内部で使われる技術名を指定するのはここだ。これが各国語対応のために、config\tech_names.csvファイルの中で使われている。

Example:

  name = "TECH_APP_INFANTRY_2_NAME"

The name can also be inserted right into the file. However, there is also a short name for each tech found in config/tech_names.csv and that is the one that'll be displayed on the buttons. It has the same string name as the complete description prefixed with a "SHORT_"

Example:

  name = "Basic Infantry Division"

この書き方は使われてない。これはHoI1時代の遺物だ。

Position

Positionは技術ツリー画面上での位置を、画面の左上から何ドット(何ピクセル)ずつ離れているかで書く。

Example:

  position = { x = 24 y = 48 }

海軍ドクトリンのページでやってるように、複数の場所に一つの技術を表示させることもできる。その場合は単にpositionを指定する行をもう一つ追加するだけでいい。

Historical Year

The historical year factors heavily into research if you try to get a tech ahead of its historical date. Your research speed will be divided by (1 + d × m) with d being the number of days you are away from January 1st of the historical year and m being the multiplier in misc.txt . Researching one year ahead of time will give you a penalty of 54%. Note however that this is calculated component-wise, so the later components suffer less penalty than the earlier ones.

Components

各技術は5個のcomponentが含まれている。

Example:

component = { # Great War Tank Prototype Tests
	 id  = 2015				ID
	 name  = TECH_CMP_ARMOR_1_5_NAME	Name
	 type  = technical_efficiency		Type
	 difficulty  = 5			Difficulty
	 double_time  = yes			Double Time
}

(実際には一行だが、ここでは項目毎に改行してコメントを付加した)

Component ID

componetには、それぞれidが設定されている。最初の3桁がその技術と共通。最後の一桁が、componentの通し番号で1から5までになる。

Component Name

これはcomponent(小研究)のゲーム内部での名前だ。

Example:

  name = TECH_CMP_ARMOR_1_5_NAME

ゲーム内で実際に表示される名前は、config\tech_names.csv内に入っている。ファイルを使う代わりに、ここで直接書くこともできる。

Example:

  name = "Great War Tank Prototype Tests"

要するに参照名で指定する代わりに、ダブルクォーテーション " を付けて直接名前を書けばいい。

Component Type

各小研究は34の専門分野(type)のいずれかに属する。研究するチームが対応する分野の特性を持っていた場合、研究速度は持たないチームより50%早くなる。

Component Difficulty

各小研究には難易度が設定されている。これは正の整数で指定する。ゲームでは3から10の間で設定しているが(訳注:後述のDouble Timeの影響で「20」と表示されてるものはある)、その範囲外に設定してみることも可能だ。なお、難易度は線形(正比例)というわけではないので、例えば8の難易度の研究が4の研究の2倍時間がかかるという意味ではない。

Double Time

Double timeってのは、名前で分かるとおりの効果だ。それを研究するのに必要な時間を2倍にする。これは主に車両や航空機や艦船のプロトタイプ(翻訳だと「試作試験」)に使われている。もしこれを使いたくない場合は、単にこの行を書かなければいい。

Prerequisites

これはその技術を研究するにあたって必要とされる技術を指定するところだ。ここに何も書かないこともできるし、好きな技術を何でも書くこともできる。しかしながら、違ったページにある技術を書くと、画面で関係を表示できないことになる。だから、必要な技術は同じページにしておく方が見やすいし、そうすれば技術ツリー画面の画像をいじって、技術の関係を示すようにもできる。

Example: 1010の技術が研究のために必要ならば
required = { 1010 }

もう一つ違う書き方
何種類かの技術を指定して、そのうちの一つだけでもあれば開発できるようにする、という場合にはまた別の書式が必要になる。これはさらに、別の技術が必要な場合とも組み合わせることができる。たとえ空っぽ(前提技術が必要ない技術)の場合でも、requiredは常に書いておく必要がある。

Example: (Tech 8160が必要で、かつ、8180か8080のどちらか一つが必要な場合)

OR_required = { 8180 8080 }
required = { 8160 }

Effects

各技術は1個か複数の効果を持つ。
これはイベントコマンドからコピー&ペーストしたものだ(書式は後でまとめてある)

コンバットイベントの確率

これには7種類のコマンドがある。(breakthrough, ambush, assault, counterattack, delay, encirclement, tactical_withdrawal)は、それぞれ対応するコンバットイベントの発生する確率に作用する。valueで指定した数が加算される。
Example:

type = counterattack value = 4

これで、counterattack(反撃)の発生率が4%増える。

司令部の効果

  • 司令部の補給修正
    司令部師団はプロヴィンスにいる全ユニットの補給効率にボーナス修正を与える。このボーナス値は技術によって変わる。
    type = hq_supply_eff value = X
    これで、司令部による補給効率のボーナスが、Xパーセント・ポイント増加する。
  • 司令部のコンバットイベント修正
    type = sce_frequency value = X 
    コンバットイベントの確率を倍数で変化させる。デフォルト値は1.0

その他

  • 新しい任務を指令可能にする
    type = enable_task which = [task type] 

Task Typeで指定可能な値は以下の通り。いずれもゲーム中のユニットへのコマンドに対応

[attack, rebase, strat_redeploy, support_attack, support_defense, reserves, anti_partisan_duty, air_superiority, ground_attack, runway_cratering, installation_strike, interdiction, naval_strike, port_strike, logistical_strike, strategic_bombardment, air_supply, airborne_assault, convoy_raiding, asw, naval_interdiction, shore_bombardment, amphibous_assault, sea_transport, naval_combat_patrol]
  • 既存の師団・旅団の上位モデルを出す(普通は艦船以外はアップグレード可能)
    command = { type = [新しいモデル] which = [division or brigade type] value = [現在のモデル] } 
  • 新しい師団・旅団タイプを製造可能にする(ゲームでは「〜をオンにする」とか書かれているもの)
    command = { type = activate_unit_type which = [division or brigade type] } 
  • 師団・旅団をタイプを製造不可能にする
    command = { type = deactivate_unit_type which = [division or brigade type] } 
  • 核兵器をミサイルに搭載可能にする
    command = { type = nuclear_carrier which = [flying_bomb/flying_rocket] } 
  • ミサイルを潜水艦に搭載可能にする
    command = { type = missile_carrier which = [submarine] } 

ユニットの値

ユニットの値には、以下のような物がある
 ・[unit value] = soft_attack/hard_attack/ground_defense/air_attack/air_defense/build_cost/build_time/manpower/speed/max_organization/transport_weight/supply_consumption/fuel_consumption/speed_cap_art/speed_cap_eng/speed_cap_at/speed_cap_aa
 ・
原注:私の見るところ、この中のいくつかは時代遅れになっている。ground_defenseはdefensivenessへと変更されているようだ。他にも同じように変わっているようだ。

  • 地上ユニットのボーナス
    command = { type = [unit value]
    which = [land/division type/brigade type]
    value = [additive value modifier] } 
  • 航空ユニットのボーナス
     ・Air unit bonuses
    command = { type = [air_attack/strategic_attack/tactical_attack/naval_attack/air_defense/build_cost/build_time/manpower/speed/surface_detection/air detection/transport_capacity/supply_consumption/fuel_consumption/range]
    which = [air/division type/brigade type]
    value = [additive value modifier] } 
  • 海軍ユニットのボーナス
    command = { type = [naval_attack/air_attack/shore_attack/naval_defense/air_defense/build_cost/build_time/manpower/speed/surface_detection/air detection/visibility/transport_capacity/supply_consumption/fuel_consumption/range] 
    		which = [naval/division type/brigade type]
    		value = [additive value modifier] } 

生産時間と生産コストは、フィールドに「where = relative」と書くことができる。
そうすると、絶対値指定する代わりに、修正値(%)で指定できる。
これをやる場合、基準となる値はどのモデルを対象としてもモデルの0番を使う。
そこで「value = -10」と指定した場合、その10%というのはモデルの0番の値の10%分下げるということだ

 ・
 ・UNIT COMBAT MODIFIERS
 ・
 ・Terrain combat modifiers

command = { type = [desert_attack/desert_defense/mountain_attack/mountain_defense/hill_attack/hill_defense/forest_attack/forest_defense/swamp_attack/swamp_defense/urban_attack/urban_defense/river_attack/shore_attack/paradrop_attack]
which = [division type/brigade type]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Terrain movement modifiers

command = { type = [desert_move/mountain_move/hill_move/forest_move/swamp_move/urban_move/river_crossing]
which = [division type/brigade type]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Weather land-combat modifiers

command = { type = [frozen_attack/frozen_defense/snow_attack/snow_defense/blizzard_attack/blizzard_defense/rain_attack/rain_defense/storm_attack/storm_defense/muddy_attack/muddy_defense]
which = [division type/brigade type]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Weather land-movement modifiers

command = { type = [frozen_move/snow_move/blizzard_move/rain_move/storm_move/muddy_move]
which = [division type/brigade type]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Weather air-combat modifiers

command = { type = [snow_attack/rain_attack]
which = [interceptor/escort/multi_role/strategic_bomber/tactical_bomber/torpedo_plane]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Weather air-movement modifiers

command = { type = [snow_move/blizzard_move/rain_move/storm_move]
which = [interceptor/escort/multi_role/strategic_bomber/tactical_bomber/torpedo_plane/transport_plane]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Weather naval-combat modifiers

command = { type = [snow_attack/rain_attack]
which = [battleship/cruiser/destroyer/carrier/submarine/transports]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Weather naval-movement modifiers

command = { type = [snow_move/blizzard_move/rain_move/storm_move]
which = [battleship/cruiser/destroyer/carrier/submarine/transports]
value = [X] # Modifier in percent (+10 = 10%) } 

 ・Night modifiers

command = { type = night_move/night_attack/night_defense
which = [division type/brigade type]
value = [X] # Modifier in percent (+10 = 10%) } 

#

# SPECIAL UNIT BONUSES

#

# Minisubs (BBs and CVs attack ships in harbors with this bonus added to their sea attack value)
command = { type = minisub_bonus

			value = [X] # NOT INCREMENTAL. This is the new value.

}

 ・
 ・GLOBAL MODIFIERS
 ・
 ・Surprise modifiers

command = { type = surprise
which = [naval/land/air]
value = [X] # Modifier in percents } 

 ・Intelligence Operation modifiers

command = { type = intelligence
which = [us/them]
value = [X] # Modifier in percents } 

 ・Army Detection modifiers

command = { type = army_detection
which = [us/them]
value = [X] # Modifier in percents } 

 ・Provincial AA batteries

command = { type = AA_batteries
value = [X] # Modifier in percents } 
  • 工業修正
  • 変換効率
    例えば、energy_to_oilを4にすると、4エネルギーで1石油を製造できる。0.5だと、1エネルギーで2石油製造できる。
command = { type = industrial_multiplier
which = [energy_to_oil/oil_to_rare_materials]
value = [X] } 
  • 工業修正(加算)
    「total」は、基礎ICから実効ICへの計算の時に使う
    「supplies」は、物資生産に投じたICから実際に生産される物資量を修正するのに使う
command = { type = industrial_modifer which = [total/supplies] value = [X] # Percents } 

[Building Types]で指定可能な値
: [ic, coastal_fort, land_fort, flak, infrastructure, air_base, naval_base, radar_station, nuclear_reactor, rocket_test]

[Resource Types]で指定可能な値
: [oil, metal, energy, rare_materials, supplies, money]

Retrieved from "http://www.paradoxian.org/hoi2wiki/index.php/Modding_tech_files"


Top / MOD一覧 / MOD製作 / TECH