# JSON Effect Tool for RPG Maker MZ

ブラウザ上で60fpsの図形アニメーションを作り、RPGツクールMZのデータベースアニメーションとして再生するツールとプラグインです。

## 導入

1. `js/plugins/JsonEffectAnimationsMZ.js`をゲームの同じ場所へコピーします。
2. `data/JsonEffects.json`をゲームの同じ場所へコピーします。
3. RPGツクールMZのプラグイン管理で`JsonEffectAnimationsMZ`を有効にします。
4. `effect-tool/index.html`をブラウザで開き、エフェクトを作成します。
5. `JFX key`へ半角英数字などでキーを入力します。
6. `現在の効果を登録して保存`から`JsonEffects.json`を保存し、ゲームの`data`フォルダへ置きます。
7. データベースに空のアニメーションを作り、名前を`[JFX:キー] 表示名`にします。
8. スキルやアイテムのアニメーション欄で、そのアニメーションを選択します。

例:

```text
[JFX:converging_beam] 収束ビーム
```

## 座標モード

- `対象中心`: ツール中央の座標を対象位置へ重ねます。
- `使用者 → 対象`: `source X`を使用者、`target X`を対象として位置・角度・距離を変換します。

使用者が取得できない場面では、自動的に対象中心表示へフォールバックします。

## 複数エフェクト

最初の効果は空の`JsonEffects.json`へ登録します。2個目以降は先に既存の`JsonEffects.json`を`MZライブラリ読込`で開き、編集後に保存してください。同じキーは更新され、別のキーは追加されます。

## 効果音

ツールの`情報源 / 効果音`で音声ファイルまたはフォルダを選び、タイムラインを目的のフレームへ移動して`今のフレームに追加`を押します。音量、ピッチ、パンを調整できます。

ゲームで鳴らす音声ファイルは`audio/se`へ置いてください。JSONに拡張子やフォルダ付きの名前が入っていても、プラグインがMZ形式へ変換します。

## 従来のID指定

ライブラリに`"181"`のような数値キーがある場合、アニメーションID 181として再生できます。`[JFX:キー]`方式が優先されます。

## ファイル形式

`JsonEffects.json`はキーとエフェクトの対応表です。

```json
{
  "effect_key": {
    "name": "Effect Name",
    "frameRate": 60,
    "duration": 60,
    "coordinateMode": "target",
    "objects": [],
    "soundEvents": []
  }
}
```

## 対応環境

- RPGツクールMZ
- Chromium系ブラウザ推奨
- ファイル保存APIがないブラウザでは通常のダウンロードへフォールバックします

## ライセンス

MIT Licenseです。商用・非商用を問わず利用、改変、再配布できます。詳細は`LICENSE`を参照してください。
