/*:ja * @plugindesc v1.05 (要YEP_BattleEngineCore) 戦闘にカメラ制御の機能を追加します。 * @author Yanfly Engine Plugins * * @param Camera Option * @text オプション表示テキスト * @desc オプションでのカメラ制御表示テキスト * @default バトルカメラ * * @help * 翻訳:ムノクラ * https://fungamemake.com/ * https://twitter.com/munokura/ * * =========================================================================== * 導入 * =========================================================================== * * このプラグインは、YEP_BattleEngineCoreの拡張プラグインです。 * YEP_BattleEngineCoreが無ければ動きませんので、ご注意ください。 * * このプラグインは、カスタムアクションシーケンスの為の、 * よりベーシックでかつ視覚的に特化した機能を提供します。 * 特にカメラの制御やズーミングという面に特化しています。 * * =========================================================================== * Action Sequences - ala Melody * =========================================================================== * * Battle Engine Coreには "Melody's Battle Engine"が含まれており、 * スキルとアイテムエフェクトの色々な側面を制御します。 * これらをアクションシーケンスと呼び、独特のアクションを提供します。 * * 各スキルとアイテムは、5つの異なるアクションシーケンスから構成されます。 * * 1. セットアップアクション * 一連のアクションとエフェクトが実行される前に、アクティブバトラーは、 * 一歩前進したり、武器を抜くなどの準備アクションを行います。 * このステップは、バトラーがアイテムやスキルを使う前に起こります。 * * * action list * action list * * * * 2. 全体アクション * これらのアクションは、対象全体に対して同時に働きます。 * このセクションを必ず使う必要はありませんが、 * 敵の頭上にアニメーションを表示するために、 * 大抵のアクションで使われています。 * このステップは、スキル/アイテム使用後に起こります。 * * * action list * action list * * * * 3. 対象アクション * このセクションは、全対象に対して個々に働きます。 * 主に、個別のダメージを与えるような物理攻撃に使われます。 * ここで起こるアクションは、そのような設定をしない限りは * 他の対象に影響することはありません。 * * * action list * action list * * * * 4. 追随アクション * このセクションは、個別対象アクション後の * クリーンアップとして使います。 * これは永続フラグの消去や、コモンイベントの実行などを行います。 * * * action list * action list * * * * 5. 完了アクション * このセクションは、アクティブバトラーの一連のアクションの締めに使います。 * 例えば元の位置に戻ったりなどのアクションが挙げられます。 * * * action list * action list * * * 上記がアクションシーケンスにおける5ステップです。 * 各タグは、スキルとアイテム内に挿入して使えるタグです。 * それぞれのタグ名に注意してください。 * * これらのタグは、それぞれのアクションを実行します。 * アクション一覧を挿入する方法は、ヘルプ中に記載されています。 * * 更に、アクションシーケンス毎に * 全てのアイテムのメモ欄を呼び出さずに済むように、 * 前述の5ステップをコピーするショートカットがあります。 * * * * x を"item"か"skill"と置き換えて、 * アクション一覧のコードを直接コピーしてください。 * 整数の y は各オブジェクトタイプ毎に指定されたIDとなります。 * 例えば、45番目のスキルアクションシーケンスをコピーしたい場合、 * 次のコードになります。 * * このメモタグを使う場合、メモ欄内では最も優先されるものとなります。 * * =========================================================================== * Target Typing * =========================================================================== * * 下記で紹介するアクション内では、"対象を参照"という表記が出てきます。 * 以下に、対象の一覧を記載します。 * * user; アクティブバトラーを選択 * target, targets; アクティブ対象を選択 * actors, existing actors; 生存している全てのアクターを選択 * all actors; 死亡アクターも含めて、全てのアクターを選択 * dead actors: 死亡アクターのみを選択 * actors not user; 使用者以外の全ての生存アクターを選択 * actor x; スロット x のアクターを選択 * character x; アクターID x を持つ特定のキャラクターを選択 * enemies, existing enemies; 生存している全ての敵を選択 * all enemies; 死亡した敵も含めて、全ての敵を選択 * dead enemies: 死亡した敵のみを選択 * enemies not user; 使用者以外の全ての敵を選択 * enemy x; スロット x の敵を選択 * friends; 生存しているバトラーの仲間を全て選択 * all friends; 生死に関わらず、バトラーの仲間を全て選択 * dead friends; 死亡しているバトラーの仲間を全て選択 * friends not user; 使用者を除き、バトラーの仲間を選択 * friend x: スロット x 内の、バトラーの仲間を選択 * opponents; 生存している、バトラーの相手を選択 * all opponents; バトラーの全ての相手を選択 * dead opponents; 死亡している、バトラーの相手を選択 * opponent x: スロット x 内のバトラーの相手を選択 * all alive; 全ての生存アクターと敵を選択 * all members; 全ての生存/死亡アクターと敵を選択 * all dead; 全ての死亡アクターと敵を選択 * all not user; 使用者を除き、全ての生存バトラーを選択 * focus; アクティブバトラーおよびその対象を選択 * not focus; アクティブバトラーおよびその対象以外を全て選択 * * =========================================================================== * Action Sequences - アクション一覧 * =========================================================================== * * 下記の一覧は、5段階のアクションシーケンス内で使えるアクション一覧です。 * 各アクションは独自の機能を持ち、 * 正常に動作するために正しい記入形式が必須となっています。 * * =========================================================================== * CAMERA CLAMP ON * CAMERA CLAMP OFF * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * デフォルトでカメラは固定されており、 * カメラは戦闘範囲外にパンすることはありません。 * この設定をオフにしたいイベントがある場合、 * この 'camera clamp off' を使ってください。 * この設定は、アクションシーケンス終了時に毎回元に戻ります。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: camera clamp on * camera clamp off * =========================================================================== * * =========================================================================== * CAMERA FOCUS: target, (location), (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * CAMERA FOCUS: target, FRONT BASE, (frames) * CAMERA FOCUS: target, BASE, (frames) * CAMERA FOCUS: target, BACK BASE, (frames) * CAMERA FOCUS: target, FRONT CENTER, (frames) * CAMERA FOCUS: target, CENTER, (frames) * CAMERA FOCUS: target, BACK CENTER, (frames) * CAMERA FOCUS: target, FRONT HEAD, (frames) * CAMERA FOCUS: target, HEAD, (frames) * CAMERA FOCUS: target, BACK HEAD, (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 対象や特定の場所にフォーカスします。 * 位置情報を空欄の場合、カメラは対象の中心にフォーカスをあてます。 * 注:カメラが画面の境界線を越えることはありません。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: camera focus: user * camera focus: target, front, 40 * camera focus: enemies, center, 30 * =========================================================================== * * =========================================================================== * CAMERA OFFSET: DIRECTION, DISTANCE * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * CAMERA OFFSET: LEFT, distance * CAMERA OFFSET: RIGHT, distance * CAMERA OFFSET: UP, distance * CAMERA OFFSET: DOWN, distance * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * カメラを指定の距離だけずらします。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: camera offset: left, 200 * camera offset: right, Graphics.boxWidth / 4 * camera offset: up, 300 * camera offset: down, $gameVariables.value(3); * =========================================================================== * * =========================================================================== * CAMERA PAN * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * CAMERA PAN: LEFT, distance, (frames) * CAMERA PAN: RIGHT, distance, (frames) * CAMERA PAN: UP, distance, (frames) * CAMERA PAN: DOWN, distance, (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * カメラを一定の距離だけピクセル単位でパンします。 * 左/右および上/下の組み合わせを使用して、斜めのカメラパンを実行できます。 * 'フレーム'を使用すると、カメラのパンの継続時間を調整できます。 * 'フレーム'を省略すると、カメラのパンの継続時間が30フレームに設定されます。 * 注:カメラは画面の境界を越えて移動しません。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: camera pan: left, 200 * camera pan: up, 250 * camera pan: right, 500, 60 * camera pan: down: 300, 60 * =========================================================================== * * =========================================================================== * CAMERA SCREEN * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * CAMERA SCREEN: TOP LEFT, (frames) * CAMERA SCREEN: FAR LEFT, (frames) * CAMERA SCREEN: BOTTOM LEFT, (frames) * CAMERA SCREEN: TOP CENTER, (frames) * CAMERA SCREEN: CENTER, (frames) * CAMERA SCREEN: BOTTOM CENTER, (frames) * CAMERA SCREEN: TOP RIGHT, (frames) * CAMERA SCREEN: FAR RIGHT, (frames) * CAMERA SCREEN: BOTTOM RIGHT, (frames) * CAMERA SCREEN: POINT, x, y, (frames) * CAMERA SCREEN: target, FRONT, (frames) * CAMERA SCREEN: target, BASE, (frames) * CAMERA SCREEN: target, BACK, (frames) * CAMERA SCREEN: target, FRONT CENTER, (frames) * CAMERA SCREEN: target, CENTER, (frames) * CAMERA SCREEN: target, BACK CENTER, (frames) * CAMERA SCREEN: target, FRONT TOP, (frames) * CAMERA SCREEN: target, TOP, (frames) * CAMERA SCREEN: target, BACK TOP, (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * カメラをピクセル単位で任意の向きに振ることができます。 * 左右と上下を組みあわせることで、斜めの向きも指定できます。 * (frames)を指定することで、パンの持続時間を設定します。 * ここを空欄にすると、30フレームが適用されます。 * 注:カメラが画面の境界線を越えることはありません。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: camera screen: top left * camera screen: far right, 30 * camera screen: point, 400, 300, 60 * camera screen: user, base * camera screen: targets, base, 60 * =========================================================================== * * =========================================================================== * RESET CAMERA: (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * カメラの位置を、戦闘フィールドの中心=デフォルトの位置にリセットさせます。 * (frames)を指定すると、カメラリセットの時間を指定することができます。 * ここを空欄にすると、30フレームでリセットされるという設定になります。 * 注:カメラが画面の境界線を越えることはありません。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: reset camera * reset camera: 30 * =========================================================================== * * =========================================================================== * RESET ZOOM: (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * カメラのズームを、100%=デフォルトの値にリセットさせます。 * (frames)を指定すると、ズームリセットの時間を指定することができます。 * ここを空欄にすると、30フレームでリセットされるという設定になります。 * 注:カメラは画面の境界を越えて移動することはありません。 * 注:サイドビュー戦闘でのみ機能します。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: reset zoom * reset zoom: 30 * =========================================================================== * * =========================================================================== * WAIT FOR CAMERA * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 次のアクションに進む前に、一旦カメラのパンが終了するまで待機します。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: wait for camera * =========================================================================== * * =========================================================================== * WAIT FOR ZOOM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 次のアクションに進む前に、一旦カメラのズームが終了するまで待機します。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: wait for zoom * =========================================================================== * * =========================================================================== * ZOOM: x%, (frames) * ZOOM: x.y, (frames) * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * x% もしくは x.y 倍率でズームを行います。(frames) を使うと、 * ズームが起こる際の時間を指定できます。 * 空欄にすると、30フレームが適用されます。 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 使用例: zoom: 200% * zoom: 1.5, 45 * =========================================================================== * * =========================================================================== * Options Core 設定 - 新しいオプションの追加 * =========================================================================== * * YEP_OptionsCoreを使用している場合、 * このプラグインの新しいオプションを追加できます。 * 以下が使用できるコード/パラメーター設定です。 * * --------- * Settings: * --------- * * Name: * \i[302]Battle Camera * * Help Description: * If ON, the camera in battle will move around. * If OFF, the camera in battle will be locked in place. * * Symbol: * battleCamera * * Show/Hide: * show = Imported.YEP_X_ActSeqPack3; * * Enable: * enabled = true; * * Ext: * ext = 0; * * ---------- * Functions: * ---------- * * Make Option Code: * this.addCommand(name, symbol, enabled, ext); * * Draw Option Code: * var rect = this.itemRectForText(index); * var statusWidth = this.statusWidth(); * var titleWidth = rect.width - statusWidth; * this.resetTextColor(); * this.changePaintOpacity(this.isCommandEnabled(index)); * this.drawOptionsName(index); * this.drawOptionsOnOff(index); * * Process OK Code: * var index = this.index(); * var symbol = this.commandSymbol(index); * var value = this.getConfigValue(symbol); * this.changeValue(symbol, !value); * * Cursor Right Code: * var index = this.index(); * var symbol = this.commandSymbol(index); * var value = this.getConfigValue(symbol); * this.changeValue(symbol, true); * * Cursor Left Code: * var index = this.index(); * var symbol = this.commandSymbol(index); * var value = this.getConfigValue(symbol); * this.changeValue(symbol, false); * * Default Config Code: * // Empty. Provided by this plugin. * * Save Config Code: * // Empty. Provided by this plugin. * * Load Config Code: * // Empty. Provided by this plugin. * * =========================================================================== * Changelog * =========================================================================== * * Version 1.05: * - Compatibility update with YEP_OptionsCore.js. * * Version 1.04: * - Updated for RPG Maker MV version 1.5.0. * * Version 1.03: * - Restriction on Camera and Zoom action sequences lifted from being * Sideview only. Use them at your own caution. * * Version 1.02a: * - Updated the Game_Screen.startZoom() function from beta to newest version. * - Decided to separate the methods as it breaks panning. * - Changed priority of IF action sequences to higher to no longer interfere * other action sequences. * * Version 1.01: * - Updated help file to include Character X for target typing. * * Version 1.00: * - Finished plugin! */