Skip to content

バーク(叫び)

特定の状況で、キャラクターが頭上に表示する専用の会話をトリガーします。

これらの会話は CharaText テーブルに記述され、キャラクターは idText セルに対応する会話IDを入力してリンクさせます。

セルcalmfovaggrodeadkill
トリガー冷静時視界内敵対時死亡時撃破時

各エントリに カスタム音声 タグを挿入することもでき、音声付きの叫びにすることができます。例えば、「通過できない!!<sound=gandalf,0.8>」 とすると、この叫びがトリガーされた際に、80%の確率でIDが gandalf のオーディオが再生されます。

会話

キャラクターと話すための会話を追加するには、LangMod/**/Dialog/ フォルダ内に dialog.xlsx ファイルを準備します。

img

このテーブルの形式はゲーム内の Elin/Package/_Elona/Lang/_Dialog/dialog.xlsx と同じですが、unique テーブルとキャラクターIDに対応する行のみが必要です。

ここでのIDはキャラクターIDと同一です。

シナリオ

シナリオは、複数選択肢の会話と追加アクションで構成される高度なインタラクションシステムです。

カスタムシナリオを定義するには、addDrama_シナリオテーブル名 タグを使用します。CWLは自動的に該当シナリオを参照します。

カスタムシナリオテーブルは LangMod/**/Dialog/Drama/ フォルダに配置し、ファイル名はタグと一致させる必要があります。例:addDrama_drama_example には Dialog/Drama/drama_example.xlsx を対応させます。

重要: あなたは 1 つのシナリオ表を提供するだけでよく、それは任意の言語のサブフォルダーに配置できます。CWLは、同じ表内で多言語のローカライズをサポートしています。

作成時はゲーム内蔵のシナリオテーブル Elin/Package/_Elona/Lang/_Dialog/Drama や、テンプレートを含む「Tiny Mita」サンプルを参考にしてください:

img

ホットリロード

シナリオテーブルはゲーム実行中に編集・保存後、ホットリロードが可能です。

基本構造

シナリオテーブルは上から順に実行され、複数の「シナリオユニット」行で構成されます。各ユニットは以下の列を持ちます(ヘッダー行で定義):

  • step:次のstepが現れるまでの実行範囲の起点
  • jump:実行時にジャンプするターゲットステップ
  • if/if2:実行条件。if2列が存在する場合は両条件を満たす必要あり
  • action:実行するアクション
  • param:アクションのパラメータ
  • actor:発言キャラクターID(複数キャラ会話用)。デフォルト tg。接尾辞 ? は名前 ??? を表示します
  • id:テキスト行の一意識別子(テキスト行のみ必須)
  • text_XX/text_JP/text_EN:実際の対話内容。XX は言語コードで、例えば text_CN, text_ZHTWtext 列は欠落している言語コードの代替として使用されます。

シナリオはステップで実行され、各ステップ内で会話/アクション/条件分岐を組み合わせられます。

main がデフォルト開始ステップ、end が終了ステップです。カスタムステップ名はアンダースコア _flag プレフィックスを避けてください。

シナリオアクション

テキスト行はプレイヤーの入力(クリック/キー操作)で次へ進み、アクション行(choice除く)は連続実行され、テキストと共存できません。

主なアクション:

アクションパラメータ説明
injectUnique「話す」オプションと汎用ステップを挿入
choiceテキストに選択肢を追加(textjumpと併用)
choice/byeデフォルトの別れオプションを追加
cancel右クリック/ESCキーの動作を設定(通常はendjump
setFlagflag, 値(省略可)flagを設定(デフォルト値1)
reloadストーリーを再読み込みし、現在のストーリーで行ったフラグの変更を適用します。通常はjumpと組み合わせて使用し、通常はmainです。これはホットリロードを指しているわけではなく、開発時のホットリロードはファイルの変更を保存し、再度ダイアログを開くだけで済みます
enableTone会話のトーン切り替えを有効化
addActorキャラクター識別子を追加(actor列に新ID入力時自動発動)
invokeメソッド名メソッドを呼び出し
setBG画像名(省略可)背景画像を設定(Textureフォルダのカスタムpng対応)、空で解除
BGMBGM IDBGMを変更(詳細はSound オーディオ/BGM参照)
stopBGMBGM停止
lastBGMBGM停止し、以前のBGMを復元
sound効果音ID効果音再生
wait秒数実行を一時停止(アニメーション待機用)
alphaIn秒数フェードイン効果
alphaOut秒数フェードアウト効果
alphaInOut秒数, 待機, 秒数フェードイン→待機→フェードアウト
fadeIn秒数, white/black画面を白/黒で徐々に表示
fadeOut秒数, white/black画面を白/黒で徐々に非表示
fadeInOut秒数, 待機, 秒数フェードイン→待機→フェードアウト
hideUI遷移時間UIを非表示(シナリオ終了時復元)
hideDialogダイアログを非表示(waitと併用)
endシナリオを終了
addKeyItemキーアイテムIDキーアイテムを付与
dropアイテムIDプレイヤー位置にアイテム生成
addResource資源タイプ, 数量ホーム資源追加
shake画面振動
slapシナリオ所有者を平手打ち
destroyItemアイテムID指定アイテムを削除
focusカメラをシナリオ所有者に即時フォーカス
focusCharaキャラID, 速度同マップ内キャラにカメラ移動
focusPC速度(省略可)プレイヤーにフォーカス
unfocusカメラリセット
destroyキャラID同マップ内キャラを削除
saveセーブ
setHour時間数ゲーム内時間を設定

複数パラメータはカンマ区切り(スペースなし)。

トリガー条件

if/if2列で条件を追加:

条件パラメータ説明
hasFlagflagプレイヤーが非ゼロ値のflagを所持
!hasFlagflagプレイヤーがflag未所持または値ゼロ
hasMelilithCurseプレイヤーがメリリスの呪い所持
merchantプレイヤーが商人ギルド所属
fighter戦士ギルド所属
thief盗賊ギルド所属
mage魔術師ギルド所属
hasItemアイテムID指定アイテム所持
isCompletedクエストIDクエスト完了済み

条件フォーマットは 条件,パラメータ。拡張式も可能:

=,test_flag,1
>,flag,5
,counter,20
!,flag,69

基本的に if 列のみ使用。複雑な条件は if2 列を追加。

条件判定

if 列はストーリー表が読み込まれる際に一度だけ判定されます。これは、行を動的に有効/無効にすることができないことを意味します。reload または CWL の invoke* 拡張条件を使用してください。

拡張機能

スクリプトテーブル内蔵の action を使用して期待した効果が得られませんでしたか?追加の条件チェックが必要ですか?CWL は、DLL にカスタム拡張メソッドを追加し、スクリプトテーブル内でそれらを呼び出すことを許可します。

Mod Help集成

有时、プレイヤーにいくつかのヒントを提供して、あなたの素晴らしいストーリーをより良く体験してもらいたいと思うことがあります。CWLを使用してモジュールを作成することで、Mod Helpを利用してカスタマイズされたヘルプページを提供できます。