☑️

# Specification

# 本システムの仕様について

# 目次

## 表示名の指定について

- 以下のUDBのデータ名指定で裏技を使用できます。
  - 主人公ステータス
  - 職業設定
  - スキル
  - 戦闘コマンド
  - パッシブスキル
  - アイテム
  - 武器
  - 防具
  - アイテム分類
  - 装備タイプ
  - 属性名の設定
  - 状態設定
  - 戦闘難易度
  - クエストリスト
  - 実績設定
  - ヘルプブック
  - あらすじ
  - 権利表記
  - スタッフロール

- 「@」の文字列がデータ名に含まれているとそれ以降を表示しません。
  エディター上で「ファイア@魔王」に設定するとゲーム上では「ファイア」と表示されます。

## シナリオの複数設定について

- 以下のUDBのデータ名が2個以上かつ同じデータ数の場合、複数のシナリオを設定できます。※データ数は同じにしてください！
  - シナリオ設定1
  - シナリオ設定2
  - タイトルUI変更
  - メニューUI変更

- シナリオごとにタイトル画面とメニュー画面、一部のシステム設定を設定できます。

- シナリオ数が4個以上の場合1シナリオごとのセーブデータ数は16個になります。
  (ゲームシステム設定1でセーブデータ数の割り当てを変更可)
  - 0番のシナリオは1～16のセーブデータを使用
  - 1番のシナリオは17～32のセーブデータを使用など
  - 中断セーブのセーブ番号の割り当てについて、そのシナリオの最初のセーブデータが割り当てられます。
    例えば、最初のシナリオはセーブ数100で、1シナリオ16の設定の場合、
    シナリオ0番は1、1番は101、2番は117、3番は133…、という風に割り当てられます。

- シナリオ数が1個の場合1～999番までのセーブデータにセーブできます。

- ただし、ブラウザウディタでの実行の場合、ブラウザ環境の利便性のために以下の制限がかかります。
  - セーブデータの使用数がゲーム共通で1～4番となります。そのうち、1番はオートセーブに割り当てられます。5番以降は使用できません。
  - 「System.sav」ファイルも生成されません。

## 無限桁変数について

無限桁変数とは、ウディタデフォルトの数値が±20億しか対応してないのと、小数点に対応していない事から、文字列で変数を処理する方式にする事で、擬似的に無限桁の数値と、20桁までの小数点に対応させたものです。

左辺と右辺には、文字列に代入する形式で数値を代入します。

「○無限桁変数_加算/減算1」～「○無限桁変数_下限/上限1」については、無限桁変数同士の演算を行います。
返り値は文字列で返されます。

「○無限桁変数_加算/減算1」～「○無限桁変数_剰余1」については、小数点の無い整数で加算/減算/乗算/除算/剰余を行います。
返り値は文字列で返されます。
小数点はカットされます。
(除算は除く)

「○無限桁変数_少数付演算1」については左辺/右辺に小数点を含む加算/減算/乗算/除算/剰余を行ってください。
小数点に対応しています。

「○無限桁変数_整数変換1」については、左辺に代入した小数点を含む数値から小数点をカットし、整数に直します。
返り値は文字列で返されます。

「○無限桁変数_絶対値変換1」については、左辺に代入したマイナスの数値をプラスに直します。
返り値は文字列で返されます。

「○無限桁変数_真偽比較1」～「○無限桁変数_大小比較1」については、左辺と右辺を真偽/大小を比較します。
返り値に関しては数値で返され、判定に一致している場合は「1」、一致してない場合は「0」が返されます。

無限桁変数は数値ではなく文字列で処理されるため、文字列変数や可変DBの文字列データ等に保存してください！

数値型の変数だと正常に動作しません！

## 作戦型AIについて

- 作戦型AIで使用されないスキルは次の通りです
  - メッセージのみのスキル
  - イベント発動のみのスキル
  - 戦闘フィールドを操作するスキル
  - 「セルフ状態付与」が「0(戦闘不能)」に設定されているスキル
  - 「セルフ状態付与」が戦闘不能判定のある状態に設定されているスキル
  - 「セルフ状態付与」が状態異常か弱体に分類される状態に設定されているスキル
  - 「予約スキル」が設定されているスキル
  - 「HP/SP全消費」が「[0]なし」以外に設定されているスキル
  - ターンを消費せずに発動できるスキル
  - 庇護するスキル
  - 相手の情報をみやぶるスキル

- ユーザーDB0番「主人公ステータス」の「AIで自動行動する？」を「[0]手動で行動[ﾃﾞﾌｫﾙﾄ]」か「[2]AIで自動行動[作戦]」に設定していると作戦型AIが有効になります。
  また、「[2]AIで自動行動[作戦]」の場合、戦闘タイプは常にオート戦闘になります。

- ユーザーDB0番「主人公ステータス」の「AIで自動行動する？」を「[1]AIで自動行動[ﾃﾞﾌｫﾙﾄAI]」に設定していると作戦型AIが無効になります。

- ユーザーDB0番「主人公ステータス」の「変更禁止設定1」が「[2]作戦変更禁止」の場合は
  作戦タイプの変更が不可能で、それ以外の値の場合は作戦タイプの変更が可能です。
  また、「AIで自動行動する？」が「[1]AIで自動行動[ﾃﾞﾌｫﾙﾄAI]」の場合は
  作戦タイプの変更も戦闘タイプの変更もできません。

- 作戦型AIで使用されるスキルの優先度は次の通りです。
  - 蘇生スキル＞敵を撃破できるスキル＞回復スキル＞合計ダメージが高いスキル

- 作戦タイプがバランス型の場合は攻撃、回復、補助スキルをバランスよく使います。

- 作戦タイプが全力攻撃型の場合は威力が高い攻撃スキルを優先的に使います。

- 作戦タイプが回復型の場合は回復スキルを優先的に使います。

- 作戦タイプが補助型の場合は補助スキルを優先的に使います。

- 作戦タイプが節約型の場合はコストを消費するスキルや再使用制限のあるスキルを使いません。

- 作戦型AIの優先度参考値
  - 与ダメージや状態付与で戦闘不能にする可能性のあるスキル
    - 12000
  - 行動不能状態
    - 2000
  - 自分に攻撃する状態
    - 1500
  - 味方に攻撃する状態
    - 1500
  - 敵味方に攻撃する状態
    - 1350
  - 敵に攻撃する状態
    - 1200
  - スキル制限状態
    - 1000
  - 物理スキルを反射する状態
    - +1000
  - 魔法スキルを反射する状態
    - +1000
  - 物理魔法スキルを反射する状態
    - +1500
  - 無敵状態
    - +2500
  - HPが全回復するスキル
    - +7000
  - 戦闘不能から蘇生させるスキル
    - +14000

- また自分の命中率、相手の回避率、回避係数、属性/状態耐性、スキル反射、無敵、スキルタグも考慮されます。

- 状態を解除するスキルについては状態異常/強化/弱体の全解除のみ考慮します。
  個別の状態の解除は考慮されません。

## 経験値獲得システムの改変について

- レベルが上がってもレベルアップに必要経験値が増加しません。

- レベルが上がるほど、獲得経験値が減少します。ただし、獲得経験値がマイナスになりません。獲得経験値の下限は0、上限は999999です。

- 経験値の減少量はユーザーDB「主人公ステータス」の「必要経験値B値[0-25]」に依存します。

## 敵キャラ、アニメ、戦闘背景、リングコマンドの画像の色指定について

- 「[色]カラー補正RGB(±100)」は、以下のように記述してください。
  ※「100,100,100」と指定しても画像が真っ白になりません！
  - (Rの度合い),(Gの度合い),(Bの度合い)度合いは0を基準とし、±100までの値で指定

- 「[色]色相/彩度/明度」は、以下のように記述してください。
  色相の「0」と「360」では色相が同じになります。
  彩度の「-255」でモノクロになります。
  「[色]カラー補正RGB(±100)」とは違い
  明度の「-255」で真っ黒になり、明度の「255」で真っ白になります。
  - (色相),(彩度),(明度)(0を基準とし、色相は0～359、彩度と明度は-255～255で指定)

- 「[色]ﾓﾉﾄｰﾝ/階調反転」を以下に指定すると画像をモノトーンにします。
  - [1]ﾓﾉﾄｰﾝ
  - [3]ﾓﾉﾄｰﾝ/階調反転

- 「[色]ﾓﾉﾄｰﾝ/階調反転」を以下に指定すると画像の色を反転させます。
  - [2]階調反転
  - [3]ﾓﾉﾄｰﾝ/階調反転

- ※アニメーションを一度に大量に表示するとエラーが発生するかもしれません！
  その場合、ウェイトを少し長くする等といった対応をとってください！

- ※敵キャラの撃破演出をストライプに指定した場合
  色相/彩度/明度/ﾓﾉﾄｰﾝ/階調反転などは反映されません！
  また、拡大率を99以下にすると敵画像が消えるのでご注意ください！

## ターン制戦闘について

- 敵味方全員が1ターンに1回行動します。

- 敏捷性が高くなるほど先に行動しやすくなります。

- スキルの優先度が高いほど先に行動しやすくなります。

- ターン制では「スキル」の「優先度」「優先度増減」「パッシブ」「状態」の「優先度変動値」が大いに役に立ちます。

- 行動順は以下の通りです。
  - 優先度が高いメンバー>敏捷性が高いメンバー>敏捷性が低いメンバー

## ATB制戦闘について

- 敏捷性が高くなるほど行動回数が増えます。敏捷性が低くなるほど行動回数が減ります。

- つまり、ATB制戦闘では、敏捷性を上げるスキルが大いに役に立つのです。

- 敏捷性の最高値は敵味方の中で一番高い敏捷性です。

- 敏捷性の最低値は敵味方の中で一番高い敏捷性から4を割った値です。

- ATB制戦闘では「スキル」の「優先度」「優先度増減」
  「パッシブ」「状態」の「優先度変動値」が一切役に立ちません。

- 「敵キャラ」の「行動回数」は正常に機能します。

- ATB戦闘の仕様上、状態のターン数は最低でも2ターン以上に設定してください。
  持続ターンが2ターンの場合、実質1ターンで、状態が付与された後、同じキャラの次の行動で消えます。
  持続ターンが1ターンのみの場合、状態が付与された直後に消えます。
  この場合、実質0ターンなので注意してください。

- 例:キャラAの敏捷性が999、キャラBの敏捷性が1の場合、キャラBの敏捷性は「キャラAの敏捷性÷4」の249に引き上げられます。
  つまり、キャラAに5回行動が回り、キャラAの6回目の行動の前に敏捷性1のキャラBに行動が回ってくると思います。
  キャラA→キャラA→キャラA→キャラA→キャラA→キャラB→キャラA→キャラA→キャラA→キャラA→キャラA→キャラB→キャラA(以下略

## 敵キャラ図鑑の並び順の指定について

- 「システム設定2」の「[図鑑]敵ｿｰﾄtxtﾌｧｲﾙ」で「txt」ファイルを指定します。
  文字コードを「UTF-8(BOM付き)」にします。
  (※「ANSI」「UTF-8」では文字化けします！)

- 図鑑に載せる敵を敵キャラIDで指定します。
  「,」もしくは改行で複数指定します。
  「,」は自動的に改行に置き換えられます。
  - 例:テキストファイルの内容が「5,6,7,8,9,10,11」の場合
    図鑑での敵の並び順は
    - 5
    - 6
    - 7
    - 8
    - 9
    - 10
    - 11

    となる

  - 例:テキストファイルの内容が「10,11,5,6,9,8,7」の場合
    図鑑での敵の並び順は
    - 10
    - 11
    - 5
    - 6
    - 9
    - 8
    - 7

    となる

- テキストファイルの内容に「DataName:」を記述した場合はIDではなくデータ名で指定します。

- V1.69以前はリリース済のゲームで敵の並び順を変更すると
  敵キャラ図鑑の敵の登録判定がズレましたが
  V2.00以降はリリース済のゲームで敵の並び順を変更しても
  ある程度は敵キャラ図鑑の敵の登録判定がズレないように作ったつもりです。

## 周回時の引継ぎについて

- 引継ぎの対象になるデータは以下の通りです。
  - 通常変数
  - 予備変数1～9
  - 文字列変数
  - 主人公ステータス
  - パーティ情報:所持金
  - 所持アイテム個数
  - 所持武器個数
  - 所持防具個数
  - ヘルプブック
  - エネミー図鑑
  - 合成レシピ
  - 実績

- 初期化の対象になるデータは以下の通りです。
  - マップイベント
  - 全主人公の所属職業
  - 全主人公のイベント上昇分の能力値
  - 全主人公のイベント習得分のスキル/パッシブ
  - 全主人公の職業レベル
  - パーティメンバー
  - 控えメンバー
  - 職業転職条件
  - クエスト

- 以下のデータは設定に応じて初期化する事が可能です。
  - 通常変数
  - 予備変数1～9
  - 文字列変数
  - 主人公ステータス
  - アイテム
  - 武器
  - 防具
  - パーティ情報:所持金

  ただし、以下のデータはシステム側で使用されるため、初期化できません。

  - 通常変数の0
  - 予備変数1
  - 予備変数2の0～1
  - 予備変数3の0～9
  - 予備変数4の20～29
  - 文字列変数の0～99

- 周回時のデータ引継ぎの後にコモン「ニューゲーム」が呼び出されます。

- 周回時の引継ぎを行うたびに予備変数1の235番に「1」が加算されます。
  これを利用して、2周目以降限定のサブイベント等が作れます。

## 戦闘高速化について

- 戦闘高速化が有効な場合、以下の処理が高速化されます。
  - スキルエフェクト
  - 戦闘メッセージ

- また、戦闘が終わると戦闘高速化の有無が初期化されます。
  (イベントでスキルエフェクトを表示させる事を想定しているため)

## ボタン入力について

- Yボタン(Dキー)押しっぱなし+方向キー
  - キャラクターのダッシュ

- Aボタン(Zキー)
  - 決定、人と話す、物を調べる

- Bボタン(Xキー)
  - キャンセル、メニューを開く

- Xボタン(Cキー)
  - アイテムを捨てる、装備を外す

- L1ボタン(Aキー)
  - 移動時のアイテム、スキル、装備画面でページの切り替え
    キーヘルプの表示切替

- R1ボタン(Sキー)
  - 移動時のアイテム、スキル、装備画面でページの切り替え

- L2ボタン(Qキー)
  - 移動時のミニマップ表示

- R2ボタン(Wキー)押しっぱなし
  - メッセージのスキップ

- －(F2キー)
  - 内部/描画FPS等の表示/非表示切り替え
    (テストプレイ時のみ)

## ボタンの置換文字について

以下のUDB項目で、ボタンの置換文字を使用できます

- あらすじ設定
  - あらすじ内容

- ヘルプ設定
  - 文章

- 用語設定
  (一部データIDのみ)
  - 項目0番～

以下、ボタンの置換文字です。

- %A%
  - Aボタンの名称に置き換えられます。

- %B%
  - Bボタンの名称に置き換えられます。

- %X%
  - Xボタンの名称に置き換えられます。

- %Y%
  - Yボタンの名称に置き換えられます。

- %L1%
  - L1(ZL)ボタンの名称に置き換えられます。

- %R1%
  - R1(ZR)ボタンの名称に置き換えられます。

- %L2%
  - L2(LT)ボタンの名称に置き換えられます。

- %R2%
  - R2(RT)ボタンの名称に置き換えられます。

## ミニマップの表示について

移動中にL2ボタンを押す事で、ミニマップを呼び出す事ができます。

## ステータス画面について

- ステータス画面の1ページ目は能力値や装備品が表示されます。

- ステータス画面の2～3ページ目は属性耐性や状態耐性が1ページにつき最大24個まで表示されます。
  耐性の表示方法は、
  「0％」が標準的な耐性で
  「100％」でダメージ/状態付与率が0
  「-100％」でダメージ/状態付与率が2倍です。

- 属性耐性の上限は「200％」(ダメージ100％吸収)
  下限は「-400％」(ダメージ5倍)
  状態耐性の上限は「100％」(無効)
  下限は「-9900％」(状態付与率100倍)です。

- ステータス画面の4ページ目はキャラ説明が表示されます。

- ステータス画面の1ページ目でAボタンを押すと2ページ目が表示されます。
  1ページ目→2ページ目→3ページ目(あれば)→4ページ目→1ページ目の順で表示されます。

## スキルタグ/装備条件タグについて

- タグの内容はUDB「スキル装備タグ一覧」で設定します。

- スキルタグが使えるUDB項目は以下の通りです。
  - 主人公
  - 職業
  - 敵キャラ
  - 召喚獣
  - パッシブスキル
  - 武器
  - 防具
  - 状態

- スキルタグが影響するUDB項目は以下の通りです。
  - スキル
    - スキル表示条件タグ
    - スキル使用条件タグ
    - スキル命中タグ
    - スキル特攻タグ
  - 戦闘コマンド
    - スキル表示条件タグ
    - スキル使用条件タグ

- 装備条件タグが使えるUDB項目は以下の通りです。
  - 主人公
  - 職業
  - パッシブスキル

- 装備条件タグが影響するUDB項目は以下の通りです。
  - 武器
  - 防具
    - 装備条件タグ

- それぞれのタグの意味は以下の通りです。
  - UDB「スキル」「戦闘コマンド」の「スキル表示条件タグ」
    - タグを設定した場合、キャラクターの所持タグに該当のタグの計算結果で値が0になるとスキル画面で表示されず、発動できない。
      タグを設定していなければ制限なし。
      キャラクターのスキルタグに影響する。
  - UDB「スキル」「戦闘コマンド」の「スキル使用条件タグ」
    - タグを設定した場合、キャラクターの所持タグに該当のタグの計算結果で値が0になると発動できない。
      タグを設定していなければ制限なし。
      キャラクターのスキルタグに影響する。
  - UDB「スキル」の「スキル命中タグ」
    - タグを設定した場合、キャラクターの所持タグに該当のタグの計算結果で値が0になると命中に失敗する。
      タグを設定していなければ通常の命中判定となる。
      キャラクターのスキルタグに影響する。
  - UDB「スキル」の「スキル特攻タグ」
    - タグを設定した場合、キャラクターの所持タグに該当のタグの計算結果で値が1になるとダメージに特効倍率が乗算される。
      タグを設定していなければダメージに特効倍率が乗算されない。
      キャラクターのスキルタグに影響する。
  - UDB「武器」「防具」の「装備条件タグ」
    - タグを設定した場合、キャラクターの所持タグに該当のタグの計算結果で値が0になるとその装備は装備できない。
      タグを設定していなければ制限なし。
      キャラクターの装備条件タグに影響する。

## カスタムタグについて

- カスタムタグが使えるUDB項目は以下の通りです。
  - 主人公
  - 職業
  - 敵キャラ
  - 敵グループ
  - 召喚獣
  - スキル
  - 戦闘コマンド
  - パッシブスキル
  - アイテム
  - 武器
  - 防具
  - 装備タイプ
  - 合成レシピ
  - 属性
  - 状態
  - 戦闘難易度
  - クエスト
  - 実績
  - ヘルプブック

- カスタムタグは、コモンイベント「[改]ｶｽﾀﾑﾀｸﾞ取得」を使って取得します。

- 返り値の代入方法に数値、文字列が選択できます。
  ただし、文字列変数として返されます。
  変数の操作コマンドで任意の変数に文字列変数を代入してください。

- コモン5に「テスト数値:」を入力し、対象の設定文字列が「テスト数値:5」の場合
  返り値は「5」になります。

- カスタムタグを使う拡張機能は各自で実装してください。
  たとえば、主人公や敵の種族や、特定のキャラ限定の職業など。

## テストプレイ限定のデバッグ機能について

- 移動中に「1」キーを押す事でデバッグメニューが開けます。

- 戦闘時に「強制勝利」を選択すると強制的に勝利となり、敵の戦利品を得られます。
  「強制敗北」を選択すると強制的に敗北となり、ゲームオーバーも実行されます。

- テストプレイ時限定で、戦闘中に以下のタイミングで戦闘ログがテキストファイルに保存され、戦闘ログの内容が初期化されます。
  - 戦闘ログが300行に達した時
  - 戦闘が終了した時(勝利/敗北/引き分け/逃走/中断)

## 備考

その他の機能については、

「003_BaseSystemAdvanced_Readme」フォルダ内のテキストファイルを参照してください。