// BalloonPlus.js Ver.1.3.0 // MIT License (C) 2023 あわやまたな // http://opensource.org/licenses/mit-license.php /*: * @target MZ * @plugindesc フキダシアイコンに欲しい機能をまとめました。 * @author あわやまたな (Awaya_Matana) * @url https://awaya3ji.seesaa.net/article/495844048.html * @help 初期パラメータはRPGツクールDS+素材集 for MVのフキダシ用です。 * それ以外の素材を使用する方は、パラメータの説明を読みつつ調整してください。 * * イベントコマンド[フキダシアイコンの表示]にもパラメータは反映されますが、 * 全機能を活用するためにはプラグインコマンドを使用する必要があります。 * * [スクリプト(移動ルートの設定)] * 【フキダシアイコンの表示】 * this.showBalloon(balloonId, wait, loop, noSe); * * balloonId:フキダシIDを入力します。 * びっくり:1 はてな:2 音符:3…とBalloon.pngの上から連番になります。 * wait:ウェイトするかをtrue/falseで入力します。未入力だとウェイトしません。 * loop:ループするかをtrue/falseで入力します。未入力だとパラメータ設定を使用。 * noSe:効果音を再生しないかをtrue/falseで入力します。未入力だとfalse。 * * 【フキダシアイコンのオフセット】 * this.setBalloonOffsets(x, y); * * 【フキダシアイコンの消去】 * this.removeBalloon(); * * (入力例) * this.showBalloon(4); //ハートを表示する。 * this.showBalloon(4, true); //ハートを表示し、終わるまで待つ。 * this.showBalloon(1, false, true); //びっくりをループする。 * this.showBalloon(2, false, false, true); //効果音を出さずにはてなを表示する。 * this.setBalloonOffsets(0, -24); //フキダシのオフセットを0、-24にする。 * this.removeBalloon(); //消す。 * * [注釈] * イベントの実行内容一行目に注釈を配置し、以下の形式で入力すると反映されます。 * 【シンボルフキダシ】 * * * balloonId:フキダシIDを入力します。 * keep:イベント起動後も表示し続けるかをtrue/falseで入力します。未入力だとfalse。 * * 【フキダシアイコンのオフセット】 * * * (入力例) * //イベントの頭上に常時びっくりを表示します。 * イベントが実行中の時のみ消えます。 * //イベントの頭上に常時はてなを表示します。 * イベントが実行中の時も表示され続けます。 * //フキダシのオフセットを0、-24にする。 * * [名前リスト] * フキダシIDだと把握しづらい為、これをIDの代わりに入力できます。 * * (入力例) * this.showBalloon("ハート"); * this.showBalloon("ハート", true); * this.showBalloon("びっくり", false, true); * this.showBalloon("はてな", false, false, true); * * * * [更新履歴] * 2023/01/02:Ver.1.0.0 公開。 * 2023/01/25:Ver.1.0.1 プラグインコマンドのウェイトを修正。 * 2023/01/25:Ver.1.1.0 IDだけでなく、文字列でも呼び出し可能に。 * 2024/01/10:Ver.1.1.1 キャラクター個別のオフセットを設定可能に。 * 2024/04/17:Ver.1.1.2 一時消去したイベントにシンボルフキダシが表示されないよう修正。 * 2024/05/25:Ver.1.2.0 実行内容が一瞬で終わるイベントのシンボルフキダシが復活しない問題を修正。 * 2025/03/02:Ver.1.3.0 キャラクターの拡大率に応じて座標を変化させる機能を追加。 * * @param offsetX * @text オフセットX * @desc フキダシをずらす距離です。 * @type number * @default 16 * * @param offsetY * @text オフセットY * @desc フキダシをずらす距離です。 * @type number * @default 0 * * @param autoShift * @text 自動シフト * @desc キャラクターの拡大率に応じて座標を変化させます。 * @type boolean * @default true * * @param speed * @text 速度 * @desc フキダシが次のコマに移行するまでの時間です。 * MZ標準は8。 * @type number * @default 6 * * @param waitTime * @text ウェイト時間 * @desc フキダシ再生終了後の残留時間です。 * MZ標準は12。 * @type number * @default 0 * * @param muteSwitchId * @text ミュートスイッチ * @desc このスイッチがオンになっている間はフキダシの効果音を再生しません。 * 未指定だと常時再生します。 * @type switch * * @param balloonSettings * @text バルーン設定 * @type struct[] * @default ["{\"id\":\"1\",\"se\":\"{\\\"name\\\":\\\"Balloon11\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"2\",\"se\":\"{\\\"name\\\":\\\"Balloon2\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"3\",\"se\":\"{\\\"name\\\":\\\"Balloon6\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"4\",\"se\":\"{\\\"name\\\":\\\"Balloon6\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"5\",\"se\":\"{\\\"name\\\":\\\"Balloon1\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"6\",\"se\":\"{\\\"name\\\":\\\"Balloon5\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"7\",\"se\":\"{\\\"name\\\":\\\"Balloon10\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"9\",\"se\":\"{\\\"name\\\":\\\"Balloon4\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"10\",\"se\":\"{\\\"name\\\":\\\"Sleep\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"0\",\"startIndex\":\"0\",\"numFrames\":\"8\",\"loopEnabled\":\"false\"}","{\"id\":\"11\",\"se\":\"{\\\"name\\\":\\\"Balloon11\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"8\",\"startIndex\":\"1\",\"numFrames\":\"4\",\"loopEnabled\":\"false\"}","{\"id\":\"12\",\"se\":\"\",\"offsetX\":\"0\",\"offsetY\":\"8\",\"startIndex\":\"1\",\"numFrames\":\"3\",\"loopEnabled\":\"true\"}","{\"id\":\"13\",\"se\":\"\",\"offsetX\":\"0\",\"offsetY\":\"8\",\"startIndex\":\"1\",\"numFrames\":\"4\",\"loopEnabled\":\"true\"}","{\"id\":\"14\",\"se\":\"\",\"offsetX\":\"0\",\"offsetY\":\"8\",\"startIndex\":\"1\",\"numFrames\":\"5\",\"loopEnabled\":\"true\"}","{\"id\":\"15\",\"se\":\"\",\"offsetX\":\"0\",\"offsetY\":\"8\",\"startIndex\":\"1\",\"numFrames\":\"5\",\"loopEnabled\":\"false\"}","{\"id\":\"16\",\"se\":\"{\\\"name\\\":\\\"Balloon8\\\",\\\"volume\\\":\\\"90\\\",\\\"pitch\\\":\\\"100\\\",\\\"pan\\\":\\\"0\\\"}\",\"offsetX\":\"0\",\"offsetY\":\"8\",\"startIndex\":\"1\",\"numFrames\":\"4\",\"loopEnabled\":\"true\"}"] * * @param nameList * @text 名前リスト * @desc それぞれのフキダシIDに対応した名前を設定します。 * これをフキダシIDの代わりにする事も可能です。 * @type string[] * @default ["びっくり","はてな","音符","ハート","怒り","汗","くしゃくしゃ","沈黙","電球","Zzz","びっくり2","笑い","怒り2","汗2","気づく","ショック"] * * @command showBalloon * @text フキダシアイコンの表示 * @desc フキダシアイコンを表示します。 * @arg characterId * @text キャラクターID * @desc プレイヤー:-1 このイベント:0 * @default -1 * * @arg balloonId * @text フキダシID * @desc びっくり:1 はてな:2 音符:3 ハート:4 怒り:5 * 汗:6 くしゃくしゃ:7 沈黙:8 電球:9 Zzz:10 * @default びっくり * @type combo * @option びっくり * @option はてな * @option 音符 * @option ハート * @option 怒り * @option 汗 * @option くしゃくしゃ * @option 沈黙 * @option 電球 * @option Zzz * @option びっくり2 * @option 笑い * @option 怒り2 * @option 汗2 * @option 気づく * @option ショック * * @arg loopEnabled * @text ループ有効化 * @desc 止めるまで表示し続けます。 * 空欄ならパラメータ設定を使用します。 * @type boolean * * @arg noSe * @text 効果音なし * @desc パラメータで設定した効果音を再生しません。 * @type boolean * @default false * * @arg wait * @text 完了までウェイト * @desc エフェクトが終了するまで待ちます。 * @type boolean * @default false * * @command removeBalloon * @text フキダシアイコンの消去 * @desc フキダシアイコンを消去します。 * @arg characterId * @text キャラクターID * @desc プレイヤー:-1 このイベント:0 * ReplaceTargetEvent.js導入時は隊列メンバーも指定可能です。 * @default -1 * * @command setBalloonOffsets * @text フキダシアイコンのオフセット * @desc フキダシアイコンのオフセットを設定します。 * @arg characterId * @text キャラクターID * @desc プレイヤー:-1 このイベント:0 * ReplaceTargetEvent.js導入時は隊列メンバーも指定可能です。 * @default -1 * * @arg offsetX * @text オフセットX * @desc フキダシをずらす距離です。 * @default 0 * * @arg offsetY * @text オフセットY * @desc フキダシをずらす距離です。 * @default 0 * */ /*~struct~balloonSetting: * * @param id * @text フキダシID * @desc びっくり:1 はてな:2 音符:3 ハート:4 怒り:5 * 汗:6 くしゃくしゃ:7 沈黙:8 電球:9 Zzz:10 * @type number * @default 1 * @min 1 * * @param se * @text 効果音 * @desc フキダシ表示時に鳴らす効果音です。 * シンボルでは鳴らしません。 * @type struct