#author("2020-01-09T23:11:01+09:00;2016-01-15T02:25:02+09:00","","") #author("2020-01-18T22:16:46+09:00;2016-01-15T02:25:02+09:00","","") [[MOD]] *イベントの作り方 [#d2ace715] ここではイベントの作り方について説明していきます。 #contents **イベントファイルの構造 [#qf1409a6] ***namespaceについて [#lefb4728] CK2やEU4のイベントファイルの多くには、最初にnamespaceの記述があります。 namespace = event_group_name CK2やEU4では、英数字を使ってイベントidをを独自に設定することが可能になっています。これによって、複数のMODを併用した時にイベントidが重複することはほぼなくなったといっていいでしょう。 イベントファイル冒頭のnamespaceは、こうした独自のイベントidを作るための項目です。 ***country eventとprovince event [#x41d76b7] EU4のイベントは特定の国家を対象にした国家イベント(country event)と特定の州を対象にした州イベント(province event)に大別されます。 ***イベントファイルの基本構造 [#ib3b8303] イベントファイルの基本的な構造は以下の通りです。 province_event = { # イベントの種類によって、province_eventまたはcountry_eventが入ります id = namespace.x # イベントid。(namespaceで設定した名前).(数字)で構成されます title = event_title # イベントタイトル。ローカライゼーションファイルで別途定義します desc = event_description # イベント文。ローカライゼーションファイルで別途定義します picture = event_picture # イベントグラフィック fire_only_once = yes # イベント発生が一回きりかどうか。史実の重大事件を反映した歴史イベントにはこのコードがよく使われます。なお、複数回発生するイベントの場合、この行そのものが必要ありません。 trigger = { # イベントの発生条件 } mean_time_to_happen = { # イベントの発生頻度。省略形のMTTHとして知られています。days、months、yearsを使用できます } immediate = { # 以下の選択肢に関係なくイベントが発生した時点で何らかの効果を与えたい場合に使用します } option = { # イベント選択肢 name = event_option_A # 選択肢テキスト。ローカライゼーションファイルで別途定義します ai_chance = { factor = 100 } # AIの選択確率。変数を使って細かく設定することも可能です } } **例題「織田氏の台頭」 [#fa84097b] ここでは、例題として、バニラでは自動的に登場することのない織田氏を独立させるイベントを作っていきます。 やり方としては、斯波氏から独立させる(つまり国家イベントとして扱う)方法と、尾張で独立させる(つまり州イベントとして扱う)方法の2種類が考えられます。 今回は後者の州イベントにします。 ***namespace、タイトルと本文、グラフィック、発生回数の指定 [#j361f42b] namespaceはflavor_sengokuとし、ローカライゼーションとイベントグラフィック関連のコードをそれぞれ記述します。 namespace = flavor_sengoku province_event = { id = flavor_sengoku.1 title = flavor_sengoku.EVTNAME1 desc = flavor_sengoku.EVTDESC1 picture = BATTLE_eventPicture また、今回の事例では、繰り返し織田氏が独立は図ることがないように、fire_only_onceコマンドを使って、イベント発生を一回のみにします。 fire_only_once = yes ***トリガー(trigger) [#a5dd82cc] イベントの発生条件にあたるトリガーとして、ここでは以下のように設定しました。 前述のようにポテンシャルは、「ディシジョンがゲームに登場する条件」です。 1.対象州は尾張(idは1030) 2.時代は信長の生存期間の1534年から1582年まで 3.織田氏が地図上で存在していない 4.尾張を所有する国の安定度が高くない 1については、province_id = (州の番号)で指定します。 この番号は、history/provincesフォルダなどで確認することができます。 province_id = 1030 # Owari 2については、ディシジョンの時と同様に、is_yearを使います。 is_year = 1534 NOT = { is_year = 1583 } 3については、国家タグとexisits = yes/noを使います。 ODA = { exists = no } 4については、州の所有者の諸状態をチェックする owner = { }を使います。 owner = { NOT = { stability = 1 } } これにより、「尾張を所有する国の安定度が1未満の時にイベントが発生する」ようになります。 これらのトリガーをまとめると以下のようになります。 trigger = { province_id = 1030 # Owari is_year = 1534 NOT = { is_year = 1583 } ODA = { exists = no } owner = { NOT = { stability = 1 } } } ***発生頻度(mean_time_to_happen) [#af8831e6] ***即座に発生する効果(immediate) [#mc69ddb6] ***選択肢 [#f424bd18] **イベントのコンセプトについて [#h67b202f] 私見ですが、EU4においてイベント作成のアプローチにはふたつのやり方があるように思います。 ひとつは、効果面からのアプローチです。「一定数のイベントを追加することでゲームに変化をもたらす」「バニラのバランスを新規イベントによって補正する」など、ゲームバランスを変化させるのに、イベントは非常に役立ちます。 もうひとつは、歴史面からのアプローチです。今回の事例のように、「○○という史実イベントをゲームに追加したい」という場合はこちらに属します。 イベントを作成するにあたり、前者の場合はイベントによる効果の設定は比較的楽に決まるのですが、それに合ったイベントテキストを考えるのが大変だったりします。また、後者の場合は、イベント文は史実を元に書けるものの、その史実をゲーム内効果としてどのように表現するかについては、バランス設定で試行錯誤することになるでしょう。 以下執筆中。