差分

ナビゲーションに移動 検索に移動
ストーリーサイクルmodの日本語化
{{version|Timeless}}

※2025/10/6、英wikiよりkagi翻訳を通しました。機械翻訳なので一部不自然な日本語があるかもしれません。ぜひ編集してくれるとありがたいです。

ストーリーサイクルは、基本的には一定間隔でイベントを発火し、それらに関連する値を保存するイベントマネージャーです。

たとえば、ゲーム内のペット関連イベントは、ペットの年齢を追跡し、時おりそれに関するイベントを発火するストーリーサイクルによって処理されます。

ストーリーサイクルは、変数や変数リストの単なる保管場所としても使用でき、キャラクターの死亡後も保持させることができます。

== ストーリーサイクルの作成 ==
ストーリーサイクルは common/story_cycles/ フォルダ内の txt ファイルで定義します。

その後、スクリプト(イベント、ディシジョン等)で <code>create_story = story_cycle_name</code> というエフェクトを使い、あるキャラクターをオーナーとしてストーリーサイクルを作成します。

ストーリーサイクルの基本構造は以下のとおりです:<syntaxhighlight lang="perl6">
story_cycle_name = {
on_setup = {}
on_end = {}
on_owner_death = {}

effect_group = {
days/months/years = x

trigger = {}

triggered_effect = {
trigger = {}
effect = {}
}
}

effect_group = {}
effect_group = {}
...
}
</syntaxhighlight> <code>story_cycle_name</code> には任意の名前を付けられます。
* <code>on_setup</code> - ストーリー作成時に効果を実行します

ストーリーのオーナーに作用させたい場合は <code>story_owner</code> を使います。例: <code>story_owner = { trigger_event = my_event.1 }</code>

それ以外の場合、すべての効果はストーリースコープ自体に適用されます。

* <code>on_end</code> - ストーリー終了時に効果を実行します

ストーリーは <code>end_story = yes</code> で終了できます。これはスクリプトで手動終了することも、たとえばストーリーのオーナーが死亡したときなどに自動的に終了することもあります。

* <code>on_owner_death</code> - ストーリーのオーナーが死亡した際に効果を実行します(ただし on_action の on_death と同様に、当人がまだ生存中に発火します)

ここには <code>end_story = yes</code> を含めることが多く、ストーリーを終了して <code>on_end</code> ブロック内の効果を実行します。

あるいは、<code>make_story_owner = story_owner.primary_heir</code> エフェクトで相続人など別のキャラクターにストーリーを移したり、変数をコピーしたりする用途にも使えます。

* <code>effect_group</code> - x 日(または月/年)ごとに繰り返し発火し、トリガーが true の場合に効果を実行するパルスです。

<code>days = { 30 60 }</code> のようにランダム範囲を使えます。これにより 30~60 日ごとに発火します。

<code>chance = x</code> を使うと、1~100 の値で効果が発火する確率をランダム化できます。

<code>triggered_effect</code> は独自のトリガーも持てます。トリガーが true なら、その effect ブロック内の効果を実行します。

1 つのグループ内で複数の triggered_effect を使え、1 つのストーリーサイクルに複数の effect_group を置けます。

<code>first_valid</code> を使って複数の triggered_effect の中から 1 つを選ぶこともできます。例:<syntaxhighlight lang="perl6">
effect_group = {
days = 30
first_valid = {
triggered_effect = {
trigger = {} # このトリガーが true なら最優先でこの効果を選ぶ
effect = {}
}
triggered_effect = {
trigger = {} # そうでなければこちらをチェック
effect = {}
}
triggered_effect = {} # 以下同様
}
}
</syntaxhighlight>

{{Modding navbox}}
[[Category:Modding]]
98

回編集

案内メニュー