CGNumberSelector Tools
======================

目的
----

このプラグイン一式は、既存の「CG番号」変数と「CG表示」コモンイベントを活かしたまま、
イベントエディター上ではCG番号を直接入力せず、表示名つきプルダウンから選べるようにするためのものです。

このプラグイン自体はピクチャ表示内容を管理しません。
行うことは、CG番号変数へ番号を代入することと、必要なら既存の表示用コモンイベントを呼び出すことだけです。


配置
----

以下のように配置してください。

  <MZ project>/js/plugins/CGNumberSelector.js
  <MZ project>/js/plugins/CGNumberSelector_SelectCommands.js
  <MZ project>/js/plugins/CGNumberTools/

CGNumberTools 内の JS や BAT は、MZのプラグイン管理ではONにしないでください。
これらは開発用の生成ツールです。


読み込み順
----------

MZのプラグイン管理では、以下の順に配置してONにしてください。

  1. CGNumberSelector.js
  2. CGNumberSelector_SelectCommands.js

CGNumberSelector_SelectCommands.js は CGNumberSelector.js の公開APIを呼ぶだけのアドオンです。


設定方法
--------

1. MZのプラグイン管理で CGNumberSelector.js を開きます。
2. CG番号変数IDに、既存の「CG番号」変数を指定します。
3. 表示用コモンイベントIDに、既存の「CG表示」コモンイベントを指定します。
   不要な場合は0で構いません。
4. CG一覧に、CG番号と表示名を登録します。

例:

  CG番号 1 / 表示名 あんり立ち絵 右
  CG番号 2 / 表示名 あんり立ち絵 左
  CG番号 3 / 表示名 あんり笑顔 右
  CG番号 4 / 表示名 ミラベル通常 左

表示名は後から変えても構いません。
ただし、既存イベントで使っているCG番号自体は、むやみに変えないでください。


更新方法
--------

CG一覧を変更したら、選択式コマンドを再生成してください。

1. MZのプラグイン設定を編集します。
2. 必ずOKで閉じて保存します。
3. CGNumberTools/update_cg_select_commands.bat を実行します。
4. MZのプラグイン管理画面を開き直します。
5. 反映されない場合はMZを再起動してください。

外部JSONを手で編集する必要はありません。
BATは js/plugins.js から CGNumberSelector.js の設定を読み取り、
CGNumberTools/cg_selects.generated.json を自動生成してから、
CGNumberSelector_SelectCommands.js を更新します。


コモンイベント注釈から自動生成
------------------------------

CGNumberSelector.js では、プルダウン候補を既存のCG表示コモンイベントから自動生成できます。

推奨するイベント構造:

  ◆条件分岐：CG番号 = 1
  ◆ピクチャの表示：...
  ◆注釈：あんり立ち絵　右
  ：分岐終了

この場合、BAT実行時に以下の候補が生成されます。

  1：あんり立ち絵　右

基本の運用手順:

  1. 既存のCG表示コモンイベントに注釈を書きます。
  2. CGNumberSelector.js の CG番号変数ID を設定します。
  3. 表示用コモンイベントID を設定します。
  4. プルダウン候補生成元 を「コモンイベント注釈から自動生成」にします。
  5. MZでOKを押して保存します。
  6. CGNumberTools/update_cg_select_commands.bat を実行します。
  7. MZのプラグイン管理画面を開き直します。
  8. 反映されなければMZを再起動してください。

注釈の書き方:

  ◆条件分岐：CG番号 = 1
  ◆ピクチャの表示：...
  ◆注釈：表示名
  ：分岐終了

例:

  ◆注釈：あんり立ち絵　右
  ◆注釈：ミラベル 通常 左
  ◆注釈：敵キャラ 怒り 右

注意:

  - CG番号変数IDが正しくないと解析できません。
  - 条件分岐が「CG番号 = 定数」形式でないと自動取得できません。
  - 注釈がない場合はピクチャ画像名、または CG <番号> が候補名になります。
  - 同じCG番号が複数あると警告が出ます。
  - js/plugins.js は自動で書き換えません。
  - 手入力方式も残っています。うまく取れない場合は、プルダウン候補生成元を
    「プラグイン設定のCG一覧を使う」に切り替えてください。


使い方
------

CG番号設定・選択式:

  プルダウンで選んだCG番号を、CG番号変数に代入するだけです。
  その後、自分で既存のCG表示コモンイベントを呼び出してください。

例:

  ◆プラグインコマンド：CGNumberSelector_SelectCommands, CG番号設定・選択式
  CG：あんり立ち絵 右
  ◆コモンイベント：CG表示


CG番号設定して表示・選択式:

  プルダウンで選んだCG番号を、CG番号変数に代入します。
  続けて、CGNumberSelector.js に設定した表示用コモンイベントを呼び出します。

例:

  ◆プラグインコマンド：CGNumberSelector_SelectCommands, CG番号設定して表示・選択式
  CG：あんり立ち絵 右


内部処理
--------

CG番号設定・選択式:

  $gameVariables.setValue(cgVariableId, 1)

CG番号設定して表示・選択式:

  $gameVariables.setValue(cgVariableId, 1)
  表示用コモンイベントを呼び出す


注意点
------

  - CG番号IDは重複させないでください。
  - CG一覧を変更したら、必ずBATで再生成してください。
  - 表示名はイベント作成時の分かりやすさのためのものです。
  - 既存のCG表示コモンイベントや条件分岐方式はそのまま使えます。
  - このプラグインはピクチャ表示内容を勝手に変更しません。
  - Node.js は開発PCでBATを動かすためだけに必要です。
  - ゲーム配布先のプレイヤーにNode.jsは不要です。


Node.js が見つからない場合
--------------------------

update_cg_select_commands.bat が Node.js を見つけられない場合は、
Node.js LTS をインストールしてください。

確認コマンド:

  node -v
