//============================================================================= // TRP_Skit.js //============================================================================= // Copyright (c) 2020 Thirop //============================================================================= /*: * @target MZ * @orderAfter TRP_SkitMZ_Config * * @plugindesc 立ち絵操作プラグイン。 * @author Thirop * @help 本プラグインをご購入頂きありがとうございます。 * プラグインの使い方についてはマニュアル(https://ci-en.net/creator/2170/article/379069)をご参照ください。 * ※本プラグインはBoothにて販売している有償プラグインです。 * ※最新バージョンはBoothの購入履歴より再ダウンロード可能です。 * * 【更新履歴】 * 1.22 2023/11/13 一部コマンド使用時に発生するエラー修正 * 1.20 2023/04/25 自動表示以外の登場コマンドにおいて表情先読みを適用 * 1.18 2023/03/29 「同位置キャラの退出」パラメータ追加(設定でデフォ値変更可) * 1.16 2023/02/11 hide後に不透明度を初期化するよう修正。(設定で無効化可) * 1.15 2022/12/05 2層レイヤー形式で表情が表示されない場合がある不具合修正 * 1.14 2022/09/29 設定「立ち絵のピクチャ操作無効」に対応(競合対策用。順番影響するので注意) * 1.13 2022/09/07 ピクチャが取得できない場合のエラー回避処理追加 * 1.12 2022/02/27 スプライトシート利用時のWebデプロイでのエラー修正            (要:TRP_SpriteSheetsのバージョン1.01以降) * 1.11 2022/01/25 ウィンドウ手前に表示時のアニメ表示不具合修正 * 1.09 2021/12/06 ディレクトリ変更コマンド追加 * 1.08 2021/11/17 ヘルプのマニュアルリンク修正 * 1.07 2021/01/14 ネームボックス使用設定で、未設定時のエラー修正 * 1.06 2021/01/02 内部処理の変更、入力キャラ名の判定優先度変更 * 1.05 2020/12/07 ネームボックス不使用時のキャラ名の置換不具合修正 * 1.04 2020/11/28 アニメーション名でのアニメーション表示 * 1.03 2020/11/17 多層レイヤーでの重ね順の不具合修正 * 1.02 2020/11/13 拡張パッチへの対応 * 1.01 2020/11/11 イベントテスト起動時のフリーズ修正 * 1.00 2020/11/10 初版 * * * @command start * @text スキット開始 * @desc スキット開始 * * * @command end * @text スキット終了 * @desc スキットを終了 * * @arg noAnimation * @text 瞬時に非表示 * @desc ON/trueにすると表示中のキャラを瞬時に非表示 * @default false * @type boolean * * * @command show * @text [登場]show/キャラ表示 * @desc 立ち絵キャラを瞬時に表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名 * * @arg wait * @text __ダミー(ウェイト) * @desc 設定は不要です * * @arg position * @text 位置 * @desc 表示位置(0~10、または登録した位置名) * @default def * @type text * * @arg opacity * @text 不透明度 * @desc 表示後の立ち絵キャラの不透明度(0~255) * @type Number * @default 255 * @min 0 * @max 255 * * @arg hideSamePos * @text 同位置キャラを退出 * @desc ON/trueとすると、同位置にいるキャラを退出 * @type boolean * @default def * * * * @command fadeIn * @text [登場]fadeIn/フェードイン * @desc 立ち絵キャラをフェードインで表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名 * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg position * @text 位置 * @desc 移動位置(0~10、または登録した位置名) * @default def * @type text * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * @type text * * @arg opacity * @text 不透明度 * @desc 表示後の立ち絵キャラの不透明度(0~255) * @default 255 * @type Number * @min 0 * @max 255 * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * @arg pushIn * @text プッシュイン * @desc ON/trueにすると表示位置付近のキャラをずらす。 * @type boolean * @default def * * @arg hideSamePos * @text 同位置キャラを退出 * @desc ON/trueとすると、同位置にいるキャラを退出 * @type boolean * @default def * @default def * * * @command slideIn * @text [登場]slideIn/スライドイン * @desc 立ち絵キャラをスライドインで表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名 * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg position * @text 位置 * @desc 表示位置(0~10、または登録した位置名) * @default def * * @arg slideLength * @text スライド距離 * @desc スライド距離(画面端から画面端で10) * @default def * * @arg speed * @text スライドスピード * @desc スライドスピード。1秒あたりの移動量。10とすると1秒で画面端から画面端 * @default def * * @arg direction * @text スライド方向。 * @desc スライドの方向。auto/オートで自動。left/左で左方向。right/右で右方向 * @default auto * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * @arg pushIn * @text プッシュイン * @desc ON/trueにすると表示位置付近のキャラをずらす。 * @type boolean * @default def * * @arg hideSamePos * @text 同位置キャラを退出 * @desc ON/trueとすると、同位置にいるキャラを退出 * @type boolean * @default def * * * @command moveIn * @text [登場]moveIn/ムーブイン * @desc 立ち絵キャラをムーブインで表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名 * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg position * @text 位置 * @desc 移動位置(0~10、または登録した位置名) * @default def * * @arg speed * @text スライドスピード * @desc スライドスピード。1秒あたりの移動量。10とすると1秒で画面端から画面端 * @default def * * @arg direction * @text スライド方向。 * @desc スライドの方向。auto/オートで自動。left/左で左方向。right/右で右方向 * @default auto * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * @arg pushIn * @text プッシュイン * @desc ON/trueにすると表示位置付近のキャラをずらす。 * @type boolean * @default def * * @arg hideSamePos * @text 同位置キャラを退出 * @desc ON/trueとすると、同位置にいるキャラを退出 * @type boolean * @default def * * * @command clear * @text [退出]clear/全キャラの非表示 * @desc 表示中の全キャラを非表示。非表示方法はコンフィグの「デフォルトの退出コマンド」で設定可能。 * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default true * @type boolean * * * @command hide * @text [退出]hide/キャラ非表示 * @desc 立ち絵キャラを瞬時に非表示 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * * @command fadeOut * @text [退出]fadeOut/フェードアウト * @desc 立ち絵キャラをフェードアウトで非表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * @type text * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * @command slideOut * @text [退出]slideOut/スライドアウト * @desc 立ち絵キャラをスライドアウトで非表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg slideLength * @text スライド距離 * @desc スライド距離(画面端から画面端で10) * @default def * * @arg speed * @text スライドスピード * @desc スライドスピード。1秒あたりの移動量。10とすると1秒で画面端から画面端 * @default def * * @arg direction * @text スライド方向。 * @desc スライドの方向。auto/オートで自動。left/左で左方向。right/右で右方向 * @default auto * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * @command moveOut * @text [退出]moveOut/ムーブアウト * @desc 立ち絵キャラをムーブアウトで非表示 * * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg speed * @text スライドスピード * @desc スライドスピード。1秒あたりの移動量。10とすると1秒で画面端から画面端 * @default def * * @arg direction * @text スライド方向。 * @desc スライドの方向。auto/オートで自動。left/左で左方向。right/右で右方向 * @default auto * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command expression * @text [表情/ポーズ]exp/表情変更 * @desc 立ち絵キャラの表情を変更 * * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg expression * @text 表情名 * @desc 表情名 * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * @type text * * * @command pose * @text [表情/ポーズ]pose/ポーズ変更 * @desc 立ち絵キャラのポーズを変更 * * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg pose * @text ポーズ名 * @desc ポーズ名 * * @arg expression * @text 表情名 * @desc 表情名 * * @arg style * @text アニメーションタイプ * @desc ポーズ変更のアニメーションタイプ * @default def * @type select * @option アニメーション無し(0) * @value 0 * @option フリップ(1) * @value 1 * @option フェード(2) * @value 2 * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * @type text * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * @command preload * @text [表情/ポーズ]preload/画像プリロード * @desc 立ち絵画像のプリロード * * @arg name * @text キャラ名 * * @arg wait * @text __ダミー(ウェイト) * @desc 設定は不要です * * @arg pose * @text ポーズ名 * @desc プリロード対象のポーズ名 * @default normal * @type text * * @arg expression * @text 表情名 * @desc プリロード対象の表情名 * @default 1 * @type text * * * * @command move * @text [動作]move/移動 * @desc 立ち絵キャラの横方向の移動 * * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg position * @text 位置 * @desc 表示位置(0~10、または登録した位置名) * @default def * @type text * * @arg speed * @text 移動スピード * @desc 移動スピード。1秒あたりの移動量。10とすると1秒で画面端から画面端 * @default def * * @arg relative * @text 相対座標フラグ * @desc ON/trueにすると位置を相対値で指定。 * @type boolean * @default false * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * @command yMove * @text [動作]yMove/縦方向の移動 * @desc 立ち絵キャラの縦方向の移動 * @arg name * @text キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg position * @text Y座標 * @desc Y座標(ピクセル単位)。0以上で下方向、0以下で上方向。 * @default 0 * @type Number * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * * @arg relative * @text 相対座標フラグ * @desc ON/trueにすると位置を相対値で指定。 * @type boolean * @default false * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * @command step * @text [動作]step/ステップ移動 * @desc 立ち絵キャラのステップ移動 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg position * @text 位置 * @desc 移動位置(0~10、または登録した位置名) * @default def * @type text * * @arg speed * @text 移動スピード * @desc 移動スピード。1秒あたりの移動量。10とすると1秒で画面端から画面端 * @default def * * @arg height * @text 高さ * @desc はずむ高さ(ピクセル単位) * @default def * * @arg gravity * @text 重力係数 * @desc 重力の強さ(デフォ値0.5) * @default def * * @arg relative * @text 相対座標フラグ * @desc ON/trueにすると位置を相対値で指定。 * @type boolean * @default def * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * @command jump * @text [動作]jump/ジャンプ * @desc 立ち絵キャラのジャンプ演出 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg height * @text 高さ * @desc ジャンプの高さ(ピクセル単位) * @default def * * @arg gravity * @text 重力係数 * @desc 重力の強さ(デフォ値1.5) * @default def * * @arg angle * @text ジャンプ角度 * @desc 跳ねる方向。初期デフォ値は0、180とすると下方向に跳ねる。 * @default 0 * * * @command shake * @text [動作]shake/キャラの揺れ * @desc 立ち絵キャラを揺らす演出 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg strength * @text 強さ * @desc 揺れの強さ。デフォ値値は8 * @default def * * @arg count * @text 回数 * @desc 揺れの回数。1回は半往復で2回で左右1往復。(初期値は2,左右に1往復) * @default 2 * * @arg speedDur * @text 1回の所要時間 * @desc 1回(半往復)のあたりの所要時間のデフォルト値。初期値は6。 * @default def * * @arg reverse * @text 開始方向を反転 * @desc ON/trueで揺れの開始方向を反転 * @default false * @type boolean * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command rotate * @text [動作]rotate/キャラの回転 * @desc 立ち絵キャラを回転させる * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg angle * @text 回転角度 * @desc 回転角度 * @default def * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * * @arg relative * @text 相対角度フラグ * @desc ON/trueにすると回転角度を相対値で指定。 * @type boolean * @default def * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command flip * @text [動作]flip/キャラの反転 * @desc 立ち絵キャラを反転させる * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg num * @text 反転回数 * @desc 反転回数のデフォルト値。初期デフォ値は1。 * @default def * * @arg durationPerCount * @text 1回の時間 * @desc 反転1回あたりの所要フレーム。初期デフォ値は14。 * @default def * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command autoFocus * @text [演出]autoFocus/オートフォーカス * @desc 自動でキャラをフォーカスする設定の変更 * * @arg autoFocusFlag * @text オートフォーカスを有効 * @desc ON/trueにするとオートフォーカスを有効 * @default true * @type boolean * * * @command focus * @text [演出]focus/フォーカス * @desc 立ち絵キャラをフォーカスする(暗くなっているアンフォーカスを解除) * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(all/resetで全キャラ) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg onlyFlag * @text 他キャラをアンフォーカス * @desc ON/trueにすると他キャラをアンフォーカス * @type boolean * @default true * * * @command unfocus * @text [演出]unfocus/アンフォーカス * @desc 立ち絵キャラをアンフォーカス(暗くさせる) * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名 * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * * * @command scale * @text [演出]scale/キャラの拡大 * @desc 立ち絵キャラを拡大・縮小させる * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg scaleX * @text 横方向拡大率 * @desc 横方向の拡大率。100で等倍 * @default def * * @arg scaleY * @text 縦方向拡大率 * @desc 縦方向の拡大率。100で等倍 * @default def * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * * @arg relative * @text 相対値指定フラグ * @desc ON/trueにすると拡大率を相対値で指定。(200%の状態から50を指定すると200x50%=100%) * @type boolean * @default def * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command opacity * @text [演出]opacity/キャラの不透明度変更 * @desc 立ち絵キャラの不透明度を変更 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg opacity * @text 不透明度 * @desc 不透明度(0で完全透明、255で完全不透明) * @default def * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * * @arg relative * @text 相対値指定フラグ * @desc ON/trueにすると不透明度を相対値で指定。 * @type boolean * @default def * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command tint * @text [演出]tint/キャラの色調 * @desc 立ち絵キャラの色調を変更 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg r * @text R値[赤] * @desc 色調のR値[赤]、-255~255 * @default def * * @arg g * @text G値[緑] * @desc 色調のG値[緑]、-255~255 * @default def * * @arg b * @text B値[青] * @desc 色調のB値[青]、-255~255 * @default def * * @arg gray * @text グレー * @desc 色調のグレー値、0~255 * @default def * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * * * * @command emphasize * @text [演出]emphasize/キャラの強調 * @desc 立ち絵キャラの強調演出 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg duration * @text 所要時間 * @desc 動作完了までにかかる所要時間 * @default def * * @arg scaleX * @text 横方向の拡大率 * @desc 強調演出の横方向拡大率。初期デフォ値は120。 * @default def * * @arg scaleY * @text 縦方向の拡大率 * @desc 強調演出の縦方向拡大率。初期デフォ値は120。 * @default def * * @arg num * @text 演出の回数 * @desc 演出の回数。初期デフォ値は1。 * @default def * * @arg interval * @text 演出の間隔 * @desc 演出回数が2以上の際の間隔フレーム。初期デフォ値は20。 * @default def * * @arg r * @text R値[赤] * @desc 色調のR値[赤]、-255~255 * @default def * * @arg g * @text G値[緑] * @desc 色調のG値[緑]、-255~255 * @default def * * @arg b * @text B値[青] * @desc 色調のB値[青]、-255~255 * @default def * * @arg gray * @text グレー * @desc 色調のグレー値、0~255 * @default def * * @arg easeType * @text イージング * @desc 動作の緩急 * @type select * @option リニア(0) * @value 0 * @option イーズイン(1)/徐々に早く * @value 1 * @option イーズアウト(2)/徐々に遅く * @value 2 * @option イーズインアウト(3)/間を早く * @value 3 * @option イーズインキュービック(4)/徐々に早く * @value 4 * @option イーズアウトキュービック(5)/徐々に遅く * @value 5 * @option イーズインアウトキュービック(6)/間を早く * @value 6 * @option バックイン(1)/徐々に早く * @value 7 * @option バックアウト(2)/徐々に遅く * @value 8 * @option バックインアウト(3)/間を早く * @value 9 * @option イラスティックイン(4)/徐々に早く * @value 10 * @option イラスティックアウト(5)/徐々に遅く * @value 11 * @option イラスティックインアウト(6)/間を早く * @value 12 * @default def * * * * @command animation * @text [演出]animation/アニメーション表示 * @desc 立ち絵キャラにアニメーション表示 * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default def * @type boolean * * @arg animeName * @text アニメーション名 * @desc アニメーションIDまたは登録したアニメーション名 * * @arg mirror * @text 反転フラグ * @desc ON/trueにするとアニメーションを反転 * @type boolean * @default def * * @arg focus * @text 自動フォーカスフラグ * @desc ON/trueにすると対象キャラをフォーカス * @default def * @type boolean * * * @command front * @text [演出]front/キャラを前面に移動 * @desc 立ち絵キャラを前面に移動させる * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名 * * * @command wait * @text [高度]wait/ウェイト * @desc 全体の動作、またはキャラ動作を一時停止。(主にマクロ用) * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(all/省略で全体の動作にウェイト) * * @arg frame * @text フレーム数 * @desc 待機するフレーム数 * @default 30 * * * @command auto * @text [高度]auto/自動モード * @desc 自動モードの切り替え。オードモードではキャラの登場・退出(スキットの終了)が自動で実行されます。 * * @arg value * @text 自動モードの値 * @desc ON/trueで自動モードを有効化。 * @type boolean * @default true * * * @command sequence * @text [高度]sequenceシーケンス動作 * @desc 立ち絵キャラに連続したシーケンス動作を指定する * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text ウェイト * @desc ON/trueで動作完了まで待機 * @default false * @type boolean * * @arg position * @text 位置 * @desc 位置指定。値を指定するとマクロ内の位置指定を上書き * @default def * * @arg macroNames * @text シーケンス * @desc カンマ<,>つなぎでマクロ(コマンド)を指定 * @type text * * * @command loop * @text [高度]loop/ループモーション * @desc 立ち絵キャラに指定したマクロ、シーケンス動作をループ再生させる * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名(allで全キャラ,省略で表示キャラ1人) * * @arg wait * @text __ダミー(ウェイト) * @desc 設定は不要です * * @arg position * @text 位置 * @desc 位置指定。値を指定するとマクロ内の位置指定を上書き * @default def * * @arg macroNames * @text シーケンス * @desc カンマ<,>つなぎでマクロ(コマンド)を指定 * @type text * * * @command mob * @text [高度]mob/モブキャラ設定 * @desc 立ち絵の無いモブキャラ名を登録。(モブ発言時に表示中の立ち絵キャラがアンフォーカス) * * @arg name * @text モブキャラ名 * @desc 登録するモブキャラ名 * * * @command name * @text [高度]name/表示名の一時変更 * @desc 立ち絵キャラの表示名を一時的に変更(メッセージは元の入力名で入力。人物名を伏せたい時など) * * @arg name * @text 対象キャラ名 * @desc 対象キャラ名 * * @arg wait * @text __ダミー(ウェイト) * @desc 設定は不要です * * @arg dispName * @text 表示名 * @desc 立ち絵キャラの変更後の表示名 * @type text * * */ //============================================================================= var $gameSkit = null; var $dataTrpSkit = {}; var TRP_CORE = TRP_CORE||{}; function SkitActor() { this.initialize.apply(this, arguments); } function Skit() { this.initialize.apply(this, arguments); } Skit.DATA_DIR_PATH = 'dataEx'; Skit.EXP_FILE_PATH = Skit.DATA_DIR_PATH+'/TRPSkitData.json'; (function(){ 'use strict'; //============================================================================= // Setup pluginParameters & dataSkitActors //============================================================================= var pluginName = 'TRP_SkitMZ'; var parameters; /* setupParameters ===================================*/ var _Scene_Boot_create = Scene_Boot.prototype.create; Scene_Boot.prototype.create = function(){ TRP_CORE.setupTRPSkitConfigParametersIfNeeded(); _Scene_Boot_create.call(this); }; TRP_CORE.convertEscapeCharacters = Window_Base.prototype.convertEscapeCharacters; TRP_CORE.actorName = Window_Base.prototype.actorName; TRP_CORE.partyMemberName = Window_Base.prototype.partyMemberName; TRP_CORE.setupTRPSkitConfigParametersIfNeeded = function(){ if(this.isSkitParametersInitialized)return; this.isSkitParametersInitialized = true; if(Utils.isOptionValid('test')){ const path = require("path"); const base = path.dirname(process.mainModule.filename); const dirPath = path.join(base,'dataEx/') const fs = require("fs"); if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath); } const filePath = path.join(dirPath,'TRPSkitData.json') if(!fs.existsSync(filePath)){ fs.writeFileSync(filePath,"{}"); } } TRP_CORE.skitParameters = parameters = JSON.parse(JSON.stringify(TRP_CORE.skitParameters, function(key, value) { try { return JSON.parse(value); } catch (e) { try { if(value[0]==='['||value[0]==='{'){ if(value.contains(' ')){ return value; } return eval(value); }else if(value===''){ return value; }else if(!isNaN(value)){ return Number(value); }else if(value==='true'){ return true; }else if(value==='false'){ return false; }else{ return value; } } catch (e) { return value; } } })); parameters.noReverse = TRP_CORE.supplement(false,parameters.noReverse); parameters.bustsScale = TRP_CORE.supplementNum(100,parameters.bustsScale); parameters.controlCharacters = TRP_CORE.supplement({ expression:"SE", pose:"SP", motion:"SM", animation:"SA" },parameters.controlCharacters); var errorPrefix = 'TRP_SkitMZ_Config:'; try{ /* setup SkitActorSettings ===================================*/ var characterSettingArray = parameters.SkitActorSettings; var dataActors = {}; var names = {}; parameters.dataActors = dataActors; parameters.nameToInputList = names; var length = characterSettingArray.length; for(var i = 0; i0){return 1;} } return position<=5 ? -1 : 1; } }; TRP_CORE.interpretAnimationArg = function(arg){ var animationId=0; var registered = parameters.animation.list[arg]; if(registered!==undefined){ animationId = Number(registered); }else{ if(isNaN(arg)){ for(const animation of $dataAnimations){ if(!animation)continue; if(animation.name === arg){ animationId = animation.id; break; } } }else{ animationId = Number(arg); } } return animationId; }; TRP_CORE.supplementEasingArg = function(defaultValue,arg){ arg = TRP_CORE.supplementDef(defaultValue, arg); var type; switch(arg){ case 'easeIn': case 'easeInQuad': case 'quadIn': case 'イーズイン': case 'イーズインクアッド': case 'クアッドイン': return TRP_CORE.EASING.easeInQuad; case 'easeOut': case 'easeOutQuad': case 'quadOut': case 'イーズアウト': case 'イーズアウトクアッド': case 'クアッドアウト': return TRP_CORE.EASING.easeOutQuad; case 'easeInOut': case 'easeInOutQuad': case 'quadInOut': case 'イーズインアウト': case 'イーズインアウトクアッド': case 'クアッドインアウト': return TRP_CORE.EASING.easeInOutQuad; case 'cubicIn': case 'easeInCubic': case 'キュービックイン': case 'イーズインキュービック': return TRP_CORE.EASING.easeInCubic; case 'cubicOut': case 'easeOutCubic': case 'キュービックアウト': case 'イーズアウトキュービック': return TRP_CORE.EASING.easeOutCubic; case 'cubicInOut': case 'easeInOutCubic': case 'キュービックインアウト': case 'イーズインアウトキュービック': return TRP_CORE.EASING.easeInOutCubic; case 'backIn': case 'バックイン': case 'easeInBack': case 'イーズインバック': return TRP_CORE.EASING.easeInBack; case 'backOut': case 'バックアウト': case 'easeOutBack': case 'イーズアウトバック': return TRP_CORE.EASING.easeOutBack; case 'backInOut': case 'バックインアウト': case 'backInOutElastic': case 'バックインアウトバック': return TRP_CORE.EASING.easeInOutBack; case 'elasticIn': case 'イラスティックイン': case 'easeInElastic': case 'イーズインイラスティック': return TRP_CORE.EASING.easeInElastic; case 'elasticOut': case 'イラスティックアウト': case 'easeOutElastic': case 'イーズアウトイラスティック': return TRP_CORE.EASING.easeOutElastic; case 'elasticInOut': case 'イラスティックインアウト': case 'easeInOutElastic': case 'イーズインアウトイラスティック': return TRP_CORE.EASING.easeInOutElastic; default: if(isNaN(arg)){ return TRP_CORE.EASING.linear; } return Number(arg); } }; TRP_CORE.processKeyValuePluginCommandArguments = function(elems,defaults,map=null,keys,param){ keys = keys || Object.keys(defaults); param = param || {}; let keyLen = keys.length; for(let i = 0; i{ const commands = ['start','end','preload','clear','show','hide','fadeIn','fadeOut','slideIn','slideOut','moveIn','moveOut','expression','pose','move','yMove','jump','step','shake','rotate','flip','autoFocus','focus','unfocus','scale','opacity','tint','emphasize','animation','front','wait','auto','sequence','loop','mob','name']; for(const command of commands){ PluginManager.registerCommand(pluginName, command, function(args){ var argsArr = Object.values(args) argsArr.unshift(command); $gameSkit.processCommand(argsArr); this.setWaitMode('skit'); }); } })(); //============================================================================= // DataManager //============================================================================= var _DataManager_createGameObjects = DataManager.createGameObjects; DataManager.createGameObjects = function() { _DataManager_createGameObjects.call(this); TRP_CORE.setupTRPSkitConfigParametersIfNeeded(); $gameSkit = new Skit(); }; var _DataManager_makeSaveContents_ = DataManager.makeSaveContents; DataManager.makeSaveContents = function() { var contents =_DataManager_makeSaveContents_.call(this); contents.skit = $gameSkit; return contents; }; var _DataManager_extractSaveContents_ = DataManager.extractSaveContents; DataManager.extractSaveContents = function(contents) { _DataManager_extractSaveContents_.call(this,contents); $gameSkit = contents.skit; }; var _DataManager_loadDataFile = DataManager.loadDataFile; DataManager.loadDataFile = function(name, src) { if(name==="$dataTrpSkit"){ src = src.replace('Test_',''); } _DataManager_loadDataFile.call(this,name,src); }; //============================================================================= // SceneManager //============================================================================= SceneManager.isScene = function(sceneClass){ return this._scene && this._scene.constructor === sceneClass; }; //============================================================================= // ImageManager //============================================================================= ImageManager.loadBust = function(charaname,filename, hue) { return this.loadBitmap('img/pictures/busts/'+charaname+'/', filename, hue, true); }; ImageManager.requestBust = function(charaname,filename, hue) { return this.loadBitmap('img/pictures/busts/'+charaname+'/', filename, hue, true); }; //============================================================================= // Scene_Map //============================================================================= var _Scene_Map_updateMain = Scene_Map.prototype.updateMain; Scene_Map.prototype.updateMain = function() { _Scene_Map_updateMain.call(this); $gameSkit.update(); }; //============================================================================= // Scene_Battle //============================================================================= var _Scene_Battle_update = Scene_Battle.prototype.update; Scene_Battle.prototype.update = function() { _Scene_Battle_update.call(this); $gameSkit.update(); }; //============================================================================= // Game_Interpreter //============================================================================= var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function(command, args) { _Game_Interpreter_pluginCommand.call(this, command, args); if (TRP_CORE.isTRPSkitPluginCommand(command)) { if(args[0]==='test'){ this.skitTest(); }else if(args[0]==='testMV'){ this.skitTestMV(); }else{ this.setWaitMode('skit'); $gameSkit.processCommand(args); } } }; var _Game_Interpreter_updateWaitMode = Game_Interpreter.prototype.updateWaitMode; Game_Interpreter.prototype.updateWaitMode = function() { if(this._waitMode === 'skit'){ if(!$gameSkit.isBusy()){ this._waitMode = ''; return false; } return true; } return _Game_Interpreter_updateWaitMode.call(this); }; //============================================================================= // Skit //============================================================================= Skit.defaultExpression = function(){ if(parameters.useMultiLayer){ return '0'; } return parameters.useDefaultExpression ? 'default' : null; }; Skit.activeInterpreter = function(){ var interpreter; if($gameTroop.inBattle() && $gameTroop.isEventRunning()){ interpreter = $gameTroop._interpreter; }else if($gameMap.isEventRunning()){ interpreter = $gameMap._interpreter; }else{ return null; } while(interpreter._childInterpreter){ interpreter = interpreter._childInterpreter; } return interpreter; }; //============================================================================= // Skit => interpretCommands //============================================================================= Skit.prototype.processCommand = function(args,macroPos){ //interpret if macroCommand var i,length; while(parameters.macro[args[0]]){ var macroArgs = parameters.macro[args[0]]; var argLength = args.length; var macroLength = macroArgs.length; length = Math.max(argLength,macroLength); args[0] = macroArgs[0]; if(args[0]==='eval'){ args[1] = macroArgs[1]; }else{ for(i=1; i * double,pop,sank,hop ===================================*/ Skit.prototype.jumpSkitActor = function(args,macroPos){ var name = args[1]; var actors = this.actorsForShowingActors(name); var wait = args[2]; var height = args[3]; var gravity = args[4]; var angle = args[5]; var length = actors.length; var duration; for(var i = 0; i 全てfocus) * [2] : wait (false) * [3] : onlyFlag (true) ===================================*/ Skit.prototype.focusSkitActor = function(args,macroPos){ var target = TRP_CORE.supplementDef('reset', args[1]); var wait = args[2]; var onlyFlag = args[3]; this.processFocusSkitActor(wait,target,onlyFlag); }; /* unFocus * [1] : name * [2] : wait (false) ===================================*/ Skit.prototype.unFocusSkitActor = function(args,macroPos){ var name = args[1]; var wait = args[2]; var actor = this.actor(name); if(!actor){return;} actor.unFocus(wait); }; /* animation * [1] : name * [2] : wait (false) * [3] : animeName * [4] : mirror * [5] : focus ===================================*/ Skit.prototype.playAnimationSkitActor = function(args,macroPos){ var name = args[1]; var actors = this.actorsForShowingActors(name); var length = actors.length; var wait = args[2]; var animation = args[3]; var mirror = TRP_CORE.supplementDefBool(parameters.animation.mirror,args[4]); var focus = TRP_CORE.supplementDefBool(parameters.animation.focus,args[5]); for(var i = 0; i process //============================================================================= Skit.prototype.initialize = function() { this.clearParameters(); this._autoFocus = true; this._autoModeDisabled = !parameters.defaultAutoMode; this._tempOn = false; }; Skit.prototype.clear = function(){ if(!this._isSkitOn){return;} var actors = this.actors(); actors.forEach(function(actor){ $gameScreen.erasePicture(actor.pictureId()); }); this.clearParameters(); }; Skit.prototype.clearParameters = function(){ this._skitActors = {}; this._isSkitOn = false; this._mobNames = []; this._waitAfterClear = false; this._waitCount = 0; this._talkActorOrders = []; }; Skit.prototype.start = function(){ this.clear(); this._isSkitOn = true; this._waitAfterClear = false; }; Skit.prototype.end = function(noAnimation){ if(!this._isSkitOn){return;} if(!noAnimation){ this.processClearActors(true); this._waitAfterClear = true; }else{ this.clear(); } }; Skit.prototype.update = function(){ if(!this.isSkitOn()){return;} if(this._waitCount>0){ this._waitCount-=1; } if(this._waitAfterClear && !this.isBusy()){ this.clear(); } var actors = this.actors(); var length = actors.length; for(var i = 0; i0 ? 1 : -1); var movePos = position + sign*margin; // if(movePos < margin || movePos>10-margin){ // movePos = position + (-1)*sign*margin; // } if(movePos < 1 || movePos>10-1){ movePos = position + (-1)*sign*margin; } actor.movePosition(TRP_CORE.NO_WAIT,easeType,movePos,speed,TRP_CORE.ABSOLUTE); } } }; /* hideSamePos ===================================*/ Skit.prototype.hideActorsInSamePos = function(target){ if(parameters.disableHideSamePos)return; var position = target._position; var hideCommand = parameters.defaultDisappear; var actors = this.actors(); var length = actors.length; for(var i = 0; i=0; i=(i-1)|0){ var actor = actors[i]; if(!actor._showing){ actors.splice(i,1); } } //auto hide not latest talked actors this._autoHideLastTalkedActors(actors,positions.length-1) var position = this._openPositionForAutoShow(actors,positions); waitCount = targetActor.showWithMode(showCommand,true,position); } if(Number(parameters.autoShowWait)>=0){ waitCount = Number(parameters.autoShowWait); } if(!waitCount){ return true; }; var interpreter = Skit.activeInterpreter(); if(!interpreter){ return true; } while(interpreter._index>=0){ interpreter._index -= 1; if(interpreter.currentCommand().code===101){ interpreter._index -= 1; break; } } interpreter.wait(waitCount); return false; }; Skit.prototype._autoHideLastTalkedActors = function(actors,maxNum){ var hideCommand = parameters.defaultDisappear; var names = this.names(); var talkOrders = this._talkActorOrders; while(actors.length>maxNum && talkOrders.length>0){ var lastTalkedActorName = talkOrders.shift(); if(!names.contains(lastTalkedActorName))continue; var lastTalkedActor = this.actor(lastTalkedActorName); if(!lastTalkedActor)continue; TRP_CORE.removeArrayObject(actors,lastTalkedActor); //autoHide lastTalkedActor.hideWithMode(hideCommand,true); } }; Skit.prototype._openPositionForAutoShow = function(actors,positions){ var candidates = {}; var actorLen = actors.length; var length = positions.length; var infoIdxOfActorIdx = 0; var infoIdxOfDist = 1; //prepare Actor dist info on each position for(var i = 0; i1 && candidates[positions[0]].length>0){ //sort to search most fit position uniquePositions.sort(function(a,b){ return candidates[a][0][infoIdxOfDist] - candidates[b][0][infoIdxOfDist]; }); var mostFitPosition = uniquePositions[0]; TRP_CORE.removeArrayObject(positions,mostFitPosition); if(!positions.contains(mostFitPosition)){ //no duplicate pos > shift uniquePositions.shift(); } var mostFitPosInfo = candidates[mostFitPosition][0]; var mostFitActorIdx = mostFitPosInfo[infoIdxOfActorIdx]; //remove mostFitActor info from each posInfo var length = uniquePositions.length; for(var i=length-1; i>=0; i=(i-1)|0){ var pos = uniquePositions[i]; var posInfo = candidates[pos]; var infoLen = posInfo.length; for(var j = 0; j0){ this._waitCount -= 1; if(this._waitCount<=0){ this._waitCount = 0; } } this.updateTimerCommands(); }; /* show & hide ===================================*/ SkitActor.prototype.show = function(position, opacity){ position = TRP_CORE.interpretPositionArg(position); opacity = TRP_CORE.supplementDefNum((this._opacity<0 ? 255 : this._opacity),opacity); this._showing = true; this._isFocused = true; this._scaleX = 100; this._scaleY = 100; this._baseScale = (parameters.bustsScale||100)/100; this._focusScale = 1.0; this._angle = 0; this._z = 5; this._position = TRP_CORE.supplement(this._position, position); this._opacity = opacity; if(parameters.noReverse){ this._yAngle = 0; }else{ this._yAngle = this._position<5 ? 180 : 0; } if(!parameters.disableLookaheadMessage){ this.setExpressionWithNextMessage() } var skitActorName = this._name; var fileName = this.fileName(); var origin = 1; var blend = 0; var x = this.x(); var y = this.y(); var scaleX = this._scaleX; var scaleY = this._scaleY; $gameScreen.showBustPicture(this.pictureId(),skitActorName, fileName, origin, x, y, scaleX, scaleY, this._opacity, blend); this.apply(true); }; SkitActor.prototype.setExpressionWithNextMessage = function(){ var interpreter = Skit.activeInterpreter(); if(!interpreter)return; var listIdx = interpreter._index; var command = interpreter._list[listIdx]; if(!command)return; var name = null; if(command.code!==101 && command.code!==401){ do{ listIdx += 1; command = interpreter._list[listIdx]; }while( //repeat if next is MZ plugin command param command && command.code===657 ) if(command.code!==101){ return; } if(parameters.useNameBox){ if(command.parameters[4]){ Object.keys(parameters.nameToInputList).some(input=>{ if(input===command.parameters[4]){ name = parameters.nameToInputList[input]; return true; } }) } } listIdx += 1; } var line; if(parameters.useNameBox){ name = name || $gameMessage._talkingActorName; }else{ line = interpreter._list[listIdx++].parameters[0] name = $gameMessage.detectTrpSkitSpeakerWithMessage(line); } if(this._name !== name)return; line = interpreter._list[listIdx].parameters[0]; var idx = 0; var skitChars = parameters.controlCharacters; var quit = false; while(!quit && (line[idx]==='\x1b'||line[idx]==='\\')){ idx+=1; var arr = (/^[$.|^!><{}\\]|^[A-Z]+/i).exec(line.substr(idx)); if(!arr){ continue; } idx += arr[0].length; switch(arr[0]){ case skitChars.expression: var exp = ''; idx += 1; while(line[idx]!==']'){ exp += line[idx]; idx += 1; } idx += 1; this._expression = exp; return; case skitChars.pose: var pose = ''; idx += 1; while(line[idx]!==']' && line[idx]!==' '){ pose += line[idx]; idx += 1; } this._pose = pose; if(line[idx]===' '){ idx += 1; var exp = ''; while(line[idx]!==']' && line[idx]!==' '){ exp += line[idx]; idx += 1; } this._expression = exp; } return; case '.': case '|': case '!': quit = true; break; default: if(line[idx]==='['){ idx += 1; while(line[idx++]!==']'){ } } } } }; SkitActor.prototype.hide = function(){ if(!this._showing){return;} this._showing = false; this.changeOpacity(false,0,0,0,TRP_CORE.ABSOLUTE); if(!parameters.disableClearOpacityAfterHide){ this._opacity = -1; } }; /* fade in && out ===================================*/ SkitActor.prototype.fadeIn = function(wait,easeType,position,duration,opacity){ wait = TRP_CORE.supplementSkitWait(parameters.fadeIn.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.fadeIn.easeType,easeType); position = TRP_CORE.interpretPositionArg(position); duration = TRP_CORE.supplementDefNum(parameters.fadeIn.duration, duration); opacity = TRP_CORE.supplementDefNum(255, opacity); this.show(position,0); this.changeOpacity(wait,easeType,opacity,duration,TRP_CORE.ABSOLUTE); }; SkitActor.prototype.fadeOut = function(wait,easeType,duration){ if(!this._showing){return;} this._showing = false; wait = TRP_CORE.supplementSkitWait(parameters.fadeOut.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.fadeOut.easeType,easeType); duration = TRP_CORE.supplement(parameters.fadeOut.duration, duration); this.changeOpacity(wait,easeType,0,duration,TRP_CORE.ABSOLUTE); }; /* slideIn & slideOut ===================================*/ SkitActor.prototype.slideIn = function(wait,easeType,position,slideLength,speed,direction){ wait = TRP_CORE.supplementSkitWait(parameters.slideIn.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.slideIn.easeType,easeType); position = TRP_CORE.interpretPositionArg(position); slideLength = TRP_CORE.supplementDefNum(parameters.slideIn.slideLength,slideLength); speed = TRP_CORE.supplementSpeedArg(parameters.slideIn.speed,speed); direction = TRP_CORE.interpretDirectionArg(direction,position); var startPosition = position + (direction<0?-slideLength:slideLength); var opacity = 0; this.show(startPosition,opacity); var duration = this.movePosition(wait,easeType,position,speed,TRP_CORE.ABSOLUTE); this.changeOpacity(TRP_CORE.NO_WAIT,easeType,255,duration,TRP_CORE.ABSOLUTE); }; SkitActor.prototype.slideOut = function(wait,easeType,slideLength, speed,direction){ this._showing = false; wait = TRP_CORE.supplementSkitWait(parameters.slideOut.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.slideOut.easeType,easeType); slideLength = TRP_CORE.supplementDefNum(parameters.slideOut.slideLength,slideLength); speed = TRP_CORE.supplementSpeedArg(parameters.slideOut.speed,speed); direction = TRP_CORE.interpretDirectionArg(direction,this._position); var position = this._position + (direction<0 ? -slideLength : slideLength); var duration = this.movePosition(wait,easeType,position,speed,TRP_CORE.ABSOLUTE); this.changeOpacity(TRP_CORE.NO_WAIT,easeType,0,duration,TRP_CORE.ABSOLUTE); }; /* moveIn & moveOut ===================================*/ SkitActor.prototype.moveIn = function(wait,easeType,position,speed,direction){ wait = TRP_CORE.supplementSkitWait(parameters.moveIn.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.moveIn.easeType,easeType); position = TRP_CORE.interpretPositionArg(position); speed = TRP_CORE.supplementSpeedArg(parameters.moveIn.speed,speed); direction = TRP_CORE.interpretDirectionArg(direction,position); var startPosition = (direction<0 ? -2: 12); var opacity = 255; this.show(startPosition,opacity); var duration = this.movePosition(wait,easeType,position,speed,TRP_CORE.ABSOLUTE); return duration; }; SkitActor.prototype.moveOut = function(wait,easeType,speed,direction){ // if(this._isMob){return;} this._showing = false; wait = TRP_CORE.supplementSkitWait(parameters.moveOut.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.moveOut.easeType,easeType); speed = TRP_CORE.supplementSpeedArg(parameters.moveOut.speed,speed); direction = TRP_CORE.interpretDirectionArg(direction,this._position); var position = (direction<0?-3:13); var duration = this.movePosition(wait,easeType,position,speed,TRP_CORE.ABSOLUTE); return duration; }; /* jump ===================================*/ SkitActor.prototype.jump = function(wait,height,gravity,angle){ height = TRP_CORE.supplementDefNum(parameters.jump.height,height); gravity = TRP_CORE.supplementDefNum(parameters.jump.gravity,gravity); wait = TRP_CORE.supplementSkitWait(parameters.jump.wait,wait); angle = TRP_CORE.supplementDefNum(0,angle); angle *= this.isReverse() ? -1 : 1; //jump var picture = this.picture(); if(!picture)return 0; var duration = picture.jump(height,gravity,angle); this._previousJumpDuration = duration; if(wait){ this.wait(duration); } return duration; }; /* step ===================================*/ SkitActor.prototype.stepMove = function(wait,easeType,position,speed,height,gravity,relative){ wait = TRP_CORE.supplementSkitWait(parameters.step.wait,wait); easeType = TRP_CORE.supplementEasingArg(parameters.step.easeType,easeType); position = TRP_CORE.interpretPositionArg(position); speed = TRP_CORE.supplementSpeedArg(parameters.step.speed,speed); height = TRP_CORE.supplementDefNum(parameters.step.height,height); gravity = TRP_CORE.supplementDefNum(parameters.step.gravity,gravity); relative = TRP_CORE.supplementDefBool(parameters.step.relative,relative); var targetPos = this._calcMovePosition(position,relative); var difPos = Math.abs(this._position - targetPos); var moveDur = difPos / speed * 60; //stepDurで割り切れるようにmoveのdurationを揃える var stepDur = this.stepDuration(height, gravity); var stepCount = Math.ceil(moveDur / stepDur); var duration = stepCount * stepDur; this.step(stepCount,height,gravity); this.movePositionDur(wait,easeType,position,duration,relative); }; SkitActor.prototype.step = function(stepCount,height,gravity){ var picture = this.picture(); if(!picture)return; var stepDur = picture.jump(height,gravity); stepCount -= 1; if(stepCount>0){ this.pushTimerCommand(stepDur,'step',[stepCount,height,gravity]); } }; SkitActor.prototype.stepDuration = function(height,gravity){ var picture = this.picture(); if(!picture){ return 1; } var duration = picture.jump(height,gravity); picture.resetJump(); return duration; }; /* shake ===================================*/ SkitActor.prototype.shake = function(wait,easeType,strength,speedDur,count,reverse){ wait = TRP_CORE.supplementSkitWait(parameters.shake.wait,wait); easeType = TRP_CORE.supplementEasingArg(parameters.shake.easeType,easeType); strength = TRP_CORE.supplementDefNum(parameters.shake.strength, strength); speedDur = TRP_CORE.supplementDefNum(parameters.shake.durationPerCount,speedDur); count = TRP_CORE.supplementDefNum(parameters.shake.count,count); reverse = TRP_CORE.supplementDefBool(parameters.shake.reverse||false,reverse); if(count>0){ count += 1; } this.processShake(easeType,strength,speedDur,count,reverse,true); if(wait){ var duration = count * speedDur; this.wait(duration); } }; SkitActor.prototype.processShake = function(easeType,strength,speedDur,count,reverse,first){ var diffPos = strength * 0.05; var duration = speedDur; if(first || count === 1){ diffPos /= 2; duration /= 2; } if(count%2 === 0){diffPos *= -1;} if(reverse){diffPos *= -1;} this.movePositionDur(TRP_CORE.NO_WAIT,easeType,diffPos,duration,TRP_CORE.RELEATIVE); count -= 1; if(count>0){ this.pushTimerCommand(duration,'processShake',[easeType,strength,speedDur,count,reverse,false]); } }; /* expression & pose ===================================*/ SkitActor.prototype.changeExpression = function(wait,expression,duration){ wait = TRP_CORE.supplementSkitWait(parameters.expression.wait,wait); expression = TRP_CORE.supplementDef(this.defaultExpression(),expression); duration = TRP_CORE.supplementDefNum(parameters.expression.duration,duration); var pose = null; var style = 'auto'; var easeType = 0; this.changeImage(wait,easeType,pose,expression,duration,style); }; SkitActor.prototype.changePose = function(wait,easeType,pose,expression,duration,style){ wait = TRP_CORE.supplementSkitWait(parameters.pose.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.pose.easeType,easeType); style = TRP_CORE.supplementDef('auto',style); pose = TRP_CORE.supplementDef('normal',pose); duration = TRP_CORE.supplementDefNum(parameters.pose.duration,duration); expression = TRP_CORE.supplementDef(null,expression); this.changeImage(wait,easeType,pose,expression,duration,style); }; SkitActor.prototype.changeImage = function(wait,easeType,pose,expression,duration,style){ if(!this._showing){ if(pose && this._pose !== pose){ this._pose = pose; this._expression = expression || this.defaultExpression(); }else if(expression){ this._expression = expression; } return; } if(this._nextPose){ pose = pose || this._nextPose; this._nextPose = null; } style = TRP_CORE.supplementDef('auto',style); var poseChange = false; if(pose && (pose !== 'false' && pose !=='f')){ if(pose !== this._pose){ poseChange = true; this._pose = pose || 'normal'; this._expression = null; if(style === 'auto'){ if(this._opacity===0){ style = null; }else{ style = parameters.pose.style; } } if(!expression){ expression = this.defaultExpression(); } } } if(!poseChange && style === 'auto'){ style = null; } var expressionChange = poseChange; if(!expression || expression===0||expression==='0' || expression==='false' || expression==='f'){ // expression = null; expression = this.defaultExpression(); } if(expression !== this._expression){ expressionChange = true; this._expression = expression; } if(style === 'auto'){ style = parameters.pose.style; } this.removeTimerCommand('changeImageStartFlipEmerge'); this.removeTimerCommand('changeImageStartFadeEmerge'); switch (style){ case 'flip': case 'フリップ': case '1': case 1: this.changeImageWithFlipAnimation(wait,easeType,duration); break; case 'fade': case 'フェード': case '2': case 2: this.changeImageWithFadeAnimation(wait,easeType,duration); break; default: this.changeImageWithoutAnimation(wait,duration,poseChange,expressionChange); } }; SkitActor.prototype.changeImageWithoutAnimation = function(wait,duration,poseChange,expressionChange){ var picture = this.picture(); if(!picture)return; if(poseChange){ this.apply(); var imageName = this.fileName(); picture.changeImage(imageName); } if(expressionChange){ this.applyOverlay(poseChange?0:duration); if(wait){ this.wait(duration); } } }; SkitActor.prototype.changeImageWithFlipAnimation = function(wait,easeType,duration){ wait = TRP_CORE.supplement(false,wait); duration = TRP_CORE.supplementDefNum(12,duration); duration = Math.ceil(duration/2); this.flip(false,easeType,0.5,duration); this.pushTimerCommand(duration,'changeImageStartFlipEmerge',[false,easeType,duration]); if(wait){ this.wait(duration*2); } }; SkitActor.prototype.changeImageStartFlipEmerge = function(wait,easeType,duration){ this.apply(); var picture = this.picture(); if(!picture)return; picture.changeImage(this.fileName()); this.applyOverlay(0); this.flip(wait,easeType,-0.5,duration); }; SkitActor.prototype.changeImageWithFadeAnimation = function(wait,easeType,duration){ wait = TRP_CORE.supplement(false,wait); duration = TRP_CORE.supplementDefNum(12,duration); duration = Math.ceil(duration/2); var opacity = this._opacity; this.changeOpacity(false,easeType,0,duration,TRP_CORE.ABSOLUTE); this.pushTimerCommand(duration,'changeImageStartFadeEmerge',[false,easeType,duration,opacity]); if(wait){ this.wait(duration*2); } }; SkitActor.prototype.changeImageStartFadeEmerge = function(wait,easeType,duration,opacity){ this.apply(); var picture = this.picture(); if(!picture)return; picture.changeImage(this.fileName()); this.applyOverlay(0); this.changeOpacity(wait,easeType,opacity,duration,TRP_CORE.ABSOLUTE); }; /* change Opacity ===================================*/ SkitActor.prototype.changeOpacity = function(wait,easeType,opacity,duration,relative){ wait = TRP_CORE.supplementSkitWait(parameters.opacity.wait,wait); easeType = TRP_CORE.supplementEasingArg(parameters.opacity.easeType,easeType); opacity = TRP_CORE.supplementDefNum(parameters.opacity.opacity,opacity); duration = TRP_CORE.supplementDefNum(parameters.opacity.duration,duration); relative = TRP_CORE.supplementDefBool(parameters.opacity.easeType.relative,relative); this._opacity = opacity; var picture = this.picture(); if(picture){ picture.changeOpacity(opacity,duration,relative,easeType); } if(wait && duration){ this.wait(duration); } }; /* focus & unFocus ===================================*/ SkitActor.prototype.focus = function(wait){ wait = TRP_CORE.supplementSkitWait(parameters.focus.wait,wait); var duration = parameters.focus.duration; var easeType = parameters.focus.easeType; this._focused = true; this.clearTone(wait,duration); var scale = 1; this.changeFocusScale(TRP_CORE.NO_WAIT,easeType,duration,scale); if(wait){ this.wait(duration); } }; SkitActor.prototype.unFocus = function(wait){ // if(this._isMob){return;} this._focused = false; wait = TRP_CORE.supplementSkitWait(parameters.unFocus.wait, wait); var duration = parameters.unFocus.duration; var easeType = parameters.unFocus.easeType; var tone = parameters.unFocus.tone || [-150,-150,-150,0]; this.changeTone(wait,tone,10); var scale = parameters.unFocus.scale/100||1; this.changeFocusScale(TRP_CORE.NO_WAIT,easeType,duration,scale); }; /* changeTone ===================================*/ SkitActor.prototype.changeTone = function(wait,tone,duration){ this._tone = tone; tone = tone || [0,0,0,0]; duration = TRP_CORE.supplementDefNum(parameters.tint.duration,duration); wait = TRP_CORE.supplementSkitWait(parameters.tint.wait,wait); var picture = this.picture(); if(picture){ picture.tint(tone,duration); } if(wait){ this.wait(duration); } }; SkitActor.prototype.clearTone = function(wait,duration){ var tone = [0,0,0,0]; this.changeTone(wait,tone,duration); }; /* emphasizeEffect ===================================*/ SkitActor.prototype.emphasize = function(wait,easeType,duration,scaleX,scaleY,num,interval,r,g,b,gray){ duration = TRP_CORE.supplementDefNum(parameters.emphasize.duration,duration); scaleX = TRP_CORE.supplementDefNum(parameters.emphasize.scaleX,scaleX)/100; scaleY = TRP_CORE.supplementDefNum(parameters.emphasize.scaleY,scaleY)/100; num = TRP_CORE.supplementDefNum(parameters.emphasize.num,num); interval = TRP_CORE.supplementDefNum(parameters.emphasize.interval,interval); wait = TRP_CORE.supplementSkitWait(parameters.emphasize.wait,wait); var defTone = parameters.emphasize.tone; r = TRP_CORE.supplementDefNum(defTone[0],r); g = TRP_CORE.supplementDefNum(defTone[1],g); b = TRP_CORE.supplementDefNum(defTone[2],b); gray = TRP_CORE.supplementDefNum(defTone[3],gray); var tone; if(!r && !g && !b){ tone = null; }else{ tone = [r,g,b,gray]; } var picture = this.picture(); if(picture){ picture.emphasize(duration,scaleX,scaleY,num,interval,tone,easeType); } if(wait){ this.wait(num*interval + duration); } }; /* scale ===================================*/ SkitActor.prototype.changeScale = function(wait,easeType,duration,scaleX,scaleY,relative){ var param = parameters.scale; wait = TRP_CORE.supplementSkitWait(param.wait, wait); easeType = TRP_CORE.supplementEasingArg(param.easeType, easeType); duration = TRP_CORE.supplementDefNum(param.duration, duration); scaleX = TRP_CORE.supplementDefNum(param.scaleX, scaleX); scaleY = TRP_CORE.supplementDefNum(param.scaleY, scaleY); relative = TRP_CORE.supplementDefBool(param.relative, relative); this._scaleX = scaleX * (relative ? this._scaleX/100 : 1); this._scaleY = scaleY * (relative ? this._scaleY/100 : 1); this.applyScale(wait,easeType,duration); }; SkitActor.prototype.changeFocusScale = function(wait,easeType,duration,scale){ scale = scale||1.0; this._focusScale = scale; this.applyScale(wait,easeType,duration,scale); }; SkitActor.prototype.applyScale = function(wait,easeType,duration){ var scaleX = this.scaleX() * (parameters.useRightDirection ? -1 : 1); var scaleY = this.scaleY(); var picture = this.picture(); if(picture){ picture.changeScale(scaleX,scaleY,duration,TRP_CORE.ABSOLUTE,easeType); } if(wait){ this.wait(duration); } }; /* move position ===================================*/ SkitActor.prototype.movePosition = function(wait,easeType,position,speed,relative){ wait = TRP_CORE.supplementSkitWait(parameters.move.wait, wait); easeType = TRP_CORE.supplementEasingArg(parameters.move.easeType, easeType); position = TRP_CORE.interpretPositionArg(position); relative = TRP_CORE.supplementDefBool(false,relative); var targetPos = this._calcMovePosition(position,relative); var difPos = Math.abs(this._position - targetPos); var duration; if(speed === 'jump' && this._previousJumpDuration){ duration = this._previousJumpDuration; }else{ speed = TRP_CORE.supplementSpeedArg(parameters.move.speed,speed); duration = difPos / speed * 60; } duration = this.movePositionDur(wait,easeType,position,duration,relative); return duration; }; SkitActor.prototype.movePositionDur = function(wait,easeType,position,duration,relative){ relative = TRP_CORE.supplementDefBool(false,relative); // var targetPos = position + (relative ? this._position : 0); var targetPos = this._calcMovePosition(position,relative); this._position = targetPos; duration = this.processMove(wait,easeType,duration); return duration; }; SkitActor.prototype.processMove = function(wait,easeType,duration){ wait = TRP_CORE.supplementSkitWait(false,wait); easeType = TRP_CORE.supplementNum(0,easeType); duration = TRP_CORE.supplementNum(0,duration); var x = this.x(); var y = this.y(); var picture = this.picture(); if(picture){ picture.movePosition(x,y,duration,TRP_CORE.ABSOLUTE,easeType); } if (wait && duration) { this.wait(duration); } return duration; }; SkitActor.prototype._calcMovePosition = function(position,relative){ if(relative){ if(this.isReverse()){ return this._position + position; }else{ return this._position - position; } }else{ return position; } }; /* move y position ===================================*/ SkitActor.prototype.moveYPosition = function(wait,easeType,position,duration,relative){ var defParams = parameters.yMove; wait = TRP_CORE.supplementSkitWait(defParams?defParams.wait:true, wait); easeType = TRP_CORE.supplementEasingArg(defParams?defParams.easeType:TRP_CORE.EASING.easeOutQuad, easeType); position = TRP_CORE.interpretPositionArg(position); duration = TRP_CORE.supplementSpeedArg(defParams?defParams.duration:20,duration); relative = TRP_CORE.supplementDefBool(false,relative); var pose = this.data().pose[this._pose]; this._offsetY = position + (relative ? this._offsetY : (pose?pose.displayOffsetY:0)); this.processMove(wait,easeType,duration); return duration; }; /* flip ===================================*/ SkitActor.prototype.flip = function(wait,easeType,num,durationPerCount){ wait = TRP_CORE.supplementSkitWait(parameters.flip.wait,wait); easeType = TRP_CORE.supplementEasingArg(parameters.flip.easeType,easeType); num = TRP_CORE.supplementDefNum(parameters.flip.num,num); durationPerCount = TRP_CORE.supplementDefNum(parameters.flip.durationPerCount,durationPerCount); var angle = 180*num; var duration = Math.abs(durationPerCount * num); this.changeYAngle(wait,easeType,angle,duration,TRP_CORE.RELEATIVE); }; SkitActor.prototype.setYAngle = function(angle,relative){ this.changeYAngle(false,angle,0,relative); }; SkitActor.prototype.changeYAngle = function(wait,easeType,angle,duration,relative){ this._yAngle = angle + (relative ? this._yAngle : 0); var picture = this.picture(); if(picture){ picture.changeYAngle(angle,duration,relative,easeType); } if(wait){ this.wait(duration); } }; SkitActor.prototype.isReverse = function(){ var cos = Math.cos(this._yAngle * Math.PI/180); if(cos === 0){ return this._scaleX < 0; }else{ return this._scaleX * cos <0; } }; TRP_CORE.NO_EASE = TRP_CORE.EASING.linear; /* changeAngle ===================================*/ SkitActor.prototype.setAngle = function(angle,relative){ this.changeAngle(TRP_CORE.NO_WAIT,TRP_CORE.NO_EASE,angle,0,relative); }; SkitActor.prototype.changeAngle = function(wait,easeType,angle,duration,relative){ var param = parameters.angle; wait = TRP_CORE.supplementSkitWait(param.wait,wait); easeType = TRP_CORE.supplementEasingArg(param.easeType,easeType); angle = TRP_CORE.supplementDefNum(param.angle,angle); duration = TRP_CORE.supplementDefNum(param.duration,duration); relative = TRP_CORE.supplementDefBool(param.relative,relative); if(!this.isReverse()){ angle *= -1; } this._angle = angle + (relative ? this._angle : 0); var picture = this.picture(); if(picture){ picture.changeAngle(angle,duration,relative,easeType); } if(wait){ this.wait(duration); } }; /* animation ===================================*/ SkitActor.prototype.playAnimation = function(wait,animeName,mirror){ mirror = TRP_CORE.supplementDefBool(false,mirror); wait = TRP_CORE.supplementSkitWait(parameters.animation.wait,wait); var animationId = TRP_CORE.interpretAnimationArg(animeName); if(!TRP_CORE.isAnimationExists(animationId)){ return; } this.startAnimation(animationId,mirror); var animation = $dataAnimations[animation]; if(wait&&animation&&animation.name){ var match = animation.name.match(//); if(match){ this.wait(Number(match[1])); }else if(animation.frames){ var duration = 4 * animation.frames.length; this.wait(duration); } } }; SkitActor.prototype.startAnimation = function(animationId,mirror){ var animation = $dataAnimations[animationId]; if(!parameters.noAnimationMirror && !(animation&&animation.name.contains(''))){ mirror = mirror ^ (!this.isReverse()); } var picture = this.picture(); if(picture){ $gameTemp.requestAnimation([picture],animationId,mirror); } }; /* zOrder ===================================*/ SkitActor.MAX_Z_ORDER = 10; SkitActor.prototype.isMaxZOrder = function(){ return this._z === SkitActor.MAX_Z_ORDER; }; SkitActor.prototype.initZOrder = function(){ this._z = 5; }; SkitActor.prototype.setZOrder = function(z){ this._z = z; var picture = this.picture(); if(picture){ picture.setBustPictureZ(z); } }; SkitActor.prototype.setZOrderMax = function(){ this.setZOrder(SkitActor.MAX_Z_ORDER); }; SkitActor.prototype.reduceZOrder = function(){ var z = this._z; z *= (SkitActor.MAX_Z_ORDER-1)/SkitActor.MAX_Z_ORDER; this.setZOrder(z); }; /* apply ===================================*/ SkitActor.prototype.apply = function(showFlag=false){ var picture = this.picture(); if(!picture)return; this.applyPose(); if(showFlag){ picture.setPosition(this.x(),this.y()); picture.setAngle(this._angle); picture.setYAngle(this._yAngle); picture.setOpacity(this._opacity,0); } var scaleX = this.scaleX() * (parameters.useRightDirection ? -1 : 1); picture.setScale(scaleX,this.scaleY()); picture.setBustPictureZ(this._z); }; SkitActor.prototype.applyPose = function(duration){ var data = this.data(); var picture = this.picture(); if(!picture)return; var pose = data.pose[this._pose]; if(pose){ this._offsetY = TRP_CORE.supplement(0,pose.displayOffsetY); } if(pose){ picture.setAnimationOffset(pose.animationOffsetX||0,pose.animationOffsetY||0); }else{ picture.setAnimationOffset(0,0); } this.applyOverlay(duration); }; SkitActor.prototype.applyOverlay = function(duration=0){ var picture = this.picture(); if(picture){ picture.changeOverlay(this.overlayName(),duration); } }; /* wait ===================================*/ SkitActor.prototype.wait = function(wait){ if(this._playingSequences[0]){ this._playingSequences[0]._waitCount = Math.max(wait,this._playingSequences[0]._waitCount); }else{ this._waitCount = Math.max(wait,this._waitCount); } }; SkitActor.prototype.isBusy = function(){ return this._waitCount>0 || this._waitingSequences.length>0; }; /* timerCommand ===================================*/ SkitActor.prototype.pushTimerCommand = function(duration, command, args){ //一旦newに入れておいて、次回updateループからtimerCommandsに移される this._newTimerCommands.push({duration:duration,command:command,args:args}); }; SkitActor.prototype.removeTimerCommand = function(command){ for(var i=0;i<2;i=(i+1)|0){ var commands = i===0 ? this._newTimerCommands : this._timerCommands; var length = commands.length; for(var j = length-1; j>=0; j=(j-1)|0){ if(commands[j].command===command){ commands.splice(j,1); } } } }; SkitActor.prototype.clearTimerCommands = function(){ this._newTimerCommands = []; this._timerCommands = []; }; SkitActor.prototype.updateTimerCommands = function(){ var timerCommands = this._timerCommands.concat(this._newTimerCommands); this._newTimerCommands = []; var existTimerCommands = []; var length = timerCommands.length; for(var i = 0; i=0; i=(i-1)|0){ var sequence = sequences[i]; if(!sequence.loop)continue; if(quit){ sequences.splice(i,1); }else{ sequence.loop = false; if(wait){ this.pushWaitingSequence(sequence); } } } for(var i=0; i<2; i=(i+1)|0){ var commands = i===0 ? this._timerCommands : this._newTimerCommands; var length = commands.length; for(var j = length-1; j>=0; j=(j-1)|0){ var command = commands[j]; if(command.command!=='processSequence')continue var sequence = command.args[0]; if(sequence&&sequence.loop){ if(quit){ commands.splice(j,1) }else{ sequence.loop = false; if(wait){ this.pushWaitingSequence(sequence); } } } } } }; SkitActor.prototype.pushWaitingSequence = function(sequence){ this._waitingSequences.push(sequence); }; SkitActor.prototype.didFinishSequence = function(sequence){ TRP_CORE.removeArrayObject(this._waitingSequences,sequence); }; SkitActor.prototype.processSequence = function(sequence){ var macroCommand = sequence.macroCommands.shift(); if(!macroCommand || (!sequence.loop&¯oCommand===LOOP_ARG)){ this.didFinishSequence(sequence); return; } if(sequence.loop){ sequence.macroCommands.push(macroCommand); } var position = sequence.position; sequence._waitCount = 0; this._playingSequences.unshift(sequence); this.playMacroCommand(macroCommand,position); this._playingSequences.shift(); var waitCount = sequence._waitCount; if(!waitCount){ this.processSequence(sequence); }else{ this.pushTimerCommand(waitCount,'processSequence',[sequence]); } }; SkitActor.prototype.playMacroCommand = function(macroCommand,position){ $gameSkit.processCommand([macroCommand,this._name],position); }; /* helper ===================================*/ SkitActor.prototype.data = function(){ return parameters.dataActors[this._name]; }; SkitActor.prototype.exData = function(){ return $dataTrpSkit[this._name]; }; SkitActor.prototype.picture = function(){ var pictureId = this.pictureId(); var picture = $gameScreen.picture(pictureId); if(!picture){ pictureId = $gameSkit.nextPictureId(); if(pictureId){ this.setPictureId(pictureId); picture = $gameScreen.picture(pictureId); }else{ console.error('立ち絵用のピクチャ番号を確保できませんでした。'); } } return picture; }; SkitActor.prototype.clearPictureId = function(){ this.setPictureId(null); }; SkitActor.prototype.setPictureId = function(pictureId){ if(SceneManager.isScene(Scene_Battle)){ this._battlePictureId = pictureId; }else{ this._pictureId = pictureId; } }; SkitActor.prototype.pictureId = function(){ if(SceneManager.isScene(Scene_Battle)){ return this._battlePictureId; }else{ return this._pictureId; } }; SkitActor.prototype.isShowing = function(){ return this._showing; }; SkitActor.prototype.x = function(){ return this.xForPosition(this._position); }; SkitActor.prototype.xForPosition = function(position){ return Math.floor((position/10)*Graphics.width); }; SkitActor.prototype.y = function(){ return Graphics.height - ($gameSkit.defaultPositionY() - this._offsetY); }; SkitActor.prototype.scaleX = function(){ return this._scaleX * this._baseScale * this._focusScale; }; SkitActor.prototype.scaleY = function(){ return this._scaleY * this._baseScale * this._focusScale; }; SkitActor.prototype.defaultExpression = function(){ if(parameters.useMultiLayer){ return this.defaultExpressionMultiLayer(); }else{ return Skit.defaultExpression(); } }; SkitActor.prototype.defaultExpressionMultiLayer = function(){ var poseData = this.data().pose[this._pose]; if(poseData && !isNaN(poseData.defaultExpressionMultiLayer)){ return String(Number(poseData.defaultExpressionMultiLayer)); } return Skit.defaultExpression(); }; SkitActor.prototype.fileName = function(){ var fileName = this._pose; return fileName; }; SkitActor.prototype.overlayName = function(){ if(this._expression){ return this._expression; }else{ return null; } }; /* autoMode ===================================*/ SkitActor.prototype.showWithMode = function(mode,wait,position){ var command; if(mode === 0){ command = 'fadeIn'; }else if(mode === 1){ command = 'moveIn'; }else if(mode === 2){ command = 'slideIn'; }else{ command = mode; } var count = this._waitCount; $gameSkit.processCommand([command,this._name,wait],position); this._waitCount = count; return count; }; SkitActor.prototype.hideWithMode = function(mode,wait){ var count = this._waitCount; if(mode === 0){ this.fadeOut(wait); }else if(mode === 1){ this.moveOut(wait); }else if(mode === 2){ this.slideOut(wait); }else{ $gameSkit.processCommand([mode,this._name]) } this._waitCount = count; return count; } //============================================================================= // Game_Screen //============================================================================= Game_Screen.prototype.showBustPicture = function (pictureId,skitActorName, name, origin, x, y, scaleX, scaleY, opacity, blendMode) { var realPictureId = this.realPictureId(pictureId); var picture = new Game_Picture(); picture.showBust(skitActorName, name, origin, x, y, scaleX, scaleY, opacity, blendMode); this._pictures[realPictureId] = picture; }; //============================================================================= // Game_Picture //============================================================================= var _Game_Picture_initialize = Game_Picture.prototype.initialize; Game_Picture.prototype.initialize = function(){ _Game_Picture_initialize.apply(this,arguments); this.initAnimation(); this.initAngleChange(); this.initYAngleChange(); this.initOpacityChange(); this.initMovement(); this.initScaleChange(); this.initJump(); this._anchorX = 0.5; }; Game_Picture.prototype.showBust = function(skitActorName, name, origin, x, y, scaleX, scaleY, opacity, blendMode) { this.initBustPicture(); this._skitActorName = skitActorName; this.show(name,origin,x,y,scaleX,scaleY,opacity,blendMode); }; Game_Picture.prototype.initBustPicture = function(){ this._bustPictureZ = 5; this._nextImageName = null; }; var _Game_Picture_update = Game_Picture.prototype.update; Game_Picture.prototype.update = function(){ _Game_Picture_update.call(this); if(this._moveDuration>0){this.updateMovement();} if(this._yAngleDuration>0){this.updateYAngleChange();} if(this._angleDuration>0){this.updateAngleChange();} if(this._opacityDuration>0){this.updateOpacityChange();} if(this._scaleDuration>0){this.updateScaleChange();} if(this._jumpMaxDuration>0){this.updateJump();} }; /* opacity ===================================*/ Game_Picture.prototype.initOpacityChange = function(){ this.clearOpacityChange(); }; Game_Picture.prototype.clearOpacityChange = function(){ this._opacityDuration = 0; this._opacityTotalDuration = 0; }; Game_Picture.prototype.setOpacity = function(opacity,relative){ this.changeOpacity(opacity,0,relative,TRP_CORE.NO_EASE); }; Game_Picture.prototype.changeOpacity = function(opacity, duration,relative,easeType){ duration = Math.ceil(duration); opacity = opacity + (relative ? this._opacity : 0); if(duration <= 0){ this.clearOpacityChange(); this._opacity = this._targetOpacity = opacity; }else{ this._targetOpacity = opacity; this._deltaOpacity = opacity-this._opacity; this._startOpacity = this._opacity; this._opacityDuration = this._opacityTotalDuration = duration; this._opacityEaseType = easeType; } }; Game_Picture.prototype.updateOpacityChange = function(){ this._opacityDuration -= 1; var t = this._opacityTotalDuration-this._opacityDuration; this._opacity = TRP_CORE.easingValue(t,this._startOpacity,this._deltaOpacity,this._opacityTotalDuration,this._opacityEaseType); if(this._opacityDuration<=0){ this.clearOpacityChange(); } }; /* scale ===================================*/ Game_Picture.prototype.initScaleChange = function(){ this.clearScaleChange(); }; Game_Picture.prototype.clearScaleChange = function(){ this._scaleDuration = 0; this._scaleTotalDuration = 0; }; Game_Picture.prototype.setScale = function(scaleX,scaleY,relative){ this.changeScale(scaleX,scaleY,0,relative,TRP_CORE.NO_EASE); }; Game_Picture.prototype.changeScale = function(scaleX,scaleY, duration,relative,easeType){ duration = Math.ceil(duration); scaleX += (relative ? this._scaleX : 0); scaleY += (relative ? this._scaleY : 0); if(duration <= 0){ this.clearScaleChange(); this._scaleX = this._targetScaleX = scaleX; this._scaleY = this._targetScaleY = scaleY; }else{ this._targetScaleX = scaleX; this._targetScaleY = scaleY; this._deltaScaleX = scaleX-this._scaleX; this._deltaScaleY = scaleY-this._scaleY; this._startScaleX = this._scaleX; this._startScaleY = this._scaleY; this._scaleTotalDuration = duration; this._scaleDuration = duration; this._scaleEaseType = easeType; } }; Game_Picture.prototype.updateScaleChange = function(){ this._scaleDuration -= 1; var t = this._scaleTotalDuration-this._scaleDuration; this._scaleX = TRP_CORE.easingValue(t,this._startScaleX,this._deltaScaleX,this._scaleTotalDuration,this._scaleEaseType); this._scaleY = TRP_CORE.easingValue(t,this._startScaleY,this._deltaScaleY,this._scaleTotalDuration,this._scaleEaseType); if(this._scaleDuration<=0){ this.clearScaleChange(); } }; /* overlay ===================================*/ Game_Picture.prototype.changeOverlay = function(imageName,duration){ this._overlayName = imageName; this._overlayDuration = duration; }; /* changeImage ===================================*/ Game_Picture.prototype.changeImage = function(imageName){ this._nextImageName = imageName; }; Game_Picture.prototype.onChangeImage = function(imageName){ this._nextImageName = null; this._name = imageName; }; /* movement ===================================*/ Game_Picture.prototype.initMovement = function(){ this.clearMovement(); }; Game_Picture.prototype.clearMovement = function(){ this._moveDuration = 0; this._moveTotalDuration = 0; }; Game_Picture.prototype.setPosition = function(x,y,relative){ this.movePosition(x,y,0,relative,TRP_CORE.NO_EASE); }; Game_Picture.prototype.movePosition = function(x,y,duration,relative,easeType){ duration = Math.ceil(duration); x = x + (relative ? this._x : 0); y = y + (relative ? this._y : 0); if(duration<=0){ this.clearMovement(); this._x = this._deltaX = x; this._y = this._deltaY = y; }else{ this._deltaX = x-this._x; this._deltaY = y-this._y; this._startX = this._x; this._startY = this._y; this._moveDuration = duration; this._moveTotalDuration = duration; this._moveEaseType = easeType; } }; Game_Picture.prototype.updateMovement = function(){ this._moveDuration -= 1; var td = this._moveTotalDuration; var t = this._moveTotalDuration-this._moveDuration; var easeType = this._moveEaseType; this._x = TRP_CORE.easingValue(t,this._startX,this._deltaX,td,easeType); this._y = TRP_CORE.easingValue(t,this._startY,this._deltaY,td,easeType); }; var _Game_Picture_updateMove = Game_Picture.prototype.updateMove; Game_Picture.prototype.updateMove = function(){ if(!parameters.disablePictureMove || !this._skitActorName){ _Game_Picture_updateMove.call(this,...arguments); } }; /* angle ===================================*/ Game_Picture.prototype.initAngleChange = function(){ this.clearAngleChange(); }; Game_Picture.prototype.clearAngleChange = function(){ this._angleDuration = 0; this._angleTotalDuration = 0; }; Game_Picture.prototype.setAngle = function(angle,relative){ this.changeAngle(angle,0,relative,TRP_CORE.NO_EASE); }; Game_Picture.prototype.changeAngle = function(angle,duration,relative,easeType){ if(this._angleDuration>0){ this._angle = this._startAngle + this._deltaAngle; } duration = Math.ceil(duration); var targetAngle = angle + (relative ? this._angle : 0); if(duration<=0){ this.clearAngleChange(); this._angle = targetAngle; this._angleDuration = 0; }else{ this._deltaAngle = targetAngle-this._angle; this._startAngle = this._angle; this._angleDuration = duration; this._angleTotalDuration = duration; this._angleEaseType = easeType; } }; Game_Picture.prototype.updateAngleChange = function() { this._angleDuration -= 1; var t = this._angleTotalDuration - this._angleDuration; this._angle = TRP_CORE.easingValue(t,this._startAngle,this._deltaAngle,this._angleTotalDuration,this._angleEaseType); }; /* yRotate ===================================*/ Game_Picture.prototype.initYAngleChange = function(){ this._yAngle = 0; this.clearYAngleChange(); }; Game_Picture.prototype.clearYAngleChange = function(){ this._yAngleDuration = 0; this._yAngleTotalDuration = 0; this._yAngleEaseType = 0; this._deltaYAngle = 0; this._startYAngle = 0; }; Game_Picture.prototype.setYAngle = function(angle,relative){ this.changeYAngle(angle,0,relative,TRP_CORE.NO_EASE); }; Game_Picture.prototype.changeYAngle = function(angle,duration,relative,easeType){ if(this._yAngleDuration>0){ this._yAngle = this._startYAngle + this._deltaYAngle; } duration = Math.ceil(duration); var targetAngle = angle + (relative ? this._yAngle : 0); if(duration<=0){ this.clearYAngleChange(); this._yAngle = targetAngle; this._yAngleDuration = 0; }else{ this._deltaYAngle = targetAngle-this._yAngle; this._startYAngle = this._yAngle; this._yAngleDuration = duration; this._yAngleTotalDuration = duration; this._yAngleEaseType = easeType; } }; Game_Picture.prototype.updateYAngleChange = function(){ this._yAngleDuration -= 1; var t = this._yAngleTotalDuration - this._yAngleDuration; this._yAngle = TRP_CORE.easingValue(t,this._startYAngle,this._deltaYAngle,this._yAngleTotalDuration,this._yAngleEaseType); }; /* emphasisEffect ===================================*/ Game_Picture.prototype.emphasize = function(duration,scaleX,scaleY,num,interval,tone,easeType){ this._emphasisEffect = { duration:duration, scaleX:scaleX, scaleY:scaleY, num:num, interval:interval, tone:tone, easeType:easeType }; }; Game_Picture.prototype.emphasisEffect = function(){ return this._emphasisEffect; }; Game_Picture.prototype.clearEmphasisEffect = function(){ this._emphasisEffect = null; }; /* jump ===================================*/ Game_Picture.prototype.initJump = function(){ this._jumpPeak = 0; this._jumpCount = 0; this._jumpDuration = 0; this._gravity = 1.2; this._jumpRotation = 0; this._jumpX = 0; this._jumpY = 0; }; Game_Picture.prototype.jump = function(height,gravity,angle) { this._gravity = gravity || 1.2; this._jumpPeak = height; this._jumpRotation = Math.PI/180*((angle||0)+90); var g = this._gravity; var v0 = Math.sqrt(2*height*g); this._jumpMaxDuration = 2*v0/g; this._jumpCount = 0; return this._jumpMaxDuration; }; Game_Picture.prototype.resetJump = function(){ this.initJump(); }; Game_Picture.prototype.updateJump = function() { this._jumpCount+=1; var g = this._gravity; var h = this._jumpPeak; var t = this._jumpCount; var jumpValue = (Math.sqrt(2*g*h)*t - 1/2*g*Math.pow(t,2)); this._jumpY = -jumpValue*Math.sin(this._jumpRotation); this._jumpX = jumpValue*Math.cos(this._jumpRotation); if (this._jumpCount >= this._jumpMaxDuration) { this._jumpY = this._jumpX = 0; this._jumpCount = 0; this._jumpMaxDuration = 0; } }; /* zOrder ===================================*/ Game_Picture.prototype.setBustPictureZ = function(z){ this._bustPictureZ = z; }; Game_Picture.prototype.bustPictureZ = function(){ return this._bustPictureZ; }; /* animation offset ===================================*/ Game_Picture.prototype.initAnimation =function(){ this._animationOffset = {x:0,y:0}; }; Game_Picture.prototype.setAnimationOffset = function(x,y){ this._animationOffset = {x:x,y:y}; }; Game_Picture.prototype.animationOffset = function(){ return this._animationOffset || {x:0,y:0}; }; /* helper ===================================*/ Game_Picture.prototype.skitActorName = function(){ return this._skitActorName; }; Game_Picture.prototype.x = function() { return this._x + this._jumpX; }; Game_Picture.prototype.y = function(){ return this._y + this._jumpY; }; //============================================================================= // Sprite_Picture //============================================================================= Sprite_Picture.prototype.trpInitialize = function(pictureId){ this.initAnimation(); this.initBustPicture(); var firstId = parameters.firstPictureId; var lastId = parameters.lastPictureId; if(pictureId >= firstId && pictureId<=lastId){ this.setupBustPicture(); } }; var _Sprite_Picture_loadBitmap = Sprite_Picture.prototype.loadBitmap; Sprite_Picture.prototype.loadBitmap = function() { if(this.isBustPicture()){ this._overlayName = null; var bitmap = ImageManager.loadBust(this._skitActorName,this._pictureName); bitmap.addLoadListener(this.didLoadPoseImage.bind(this,this._pictureName,bitmap)); if(!this.bitmap || bitmap.isReady()){ this.bitmap = bitmap; } var picture = this.picture(); if(picture){ picture.onChangeImage(this._pictureName); } }else{ _Sprite_Picture_loadBitmap.call(this); } }; var _Sprite_Picture_updateOrigin = Sprite_Picture.prototype.updateOrigin; Sprite_Picture.prototype.updateOrigin = function() { if(this._isBustPicture){ this.anchor.x = 0.5; this.anchor.y = 0.5; }else{ _Sprite_Picture_updateOrigin.call(this); } }; /* update ===================================*/ var _Sprite_Picture_update = Sprite_Picture.prototype.update; Sprite_Picture.prototype.update = function(){ if(this._isBustPicture===undefined){ this.trpInitialize(this._pictureId); } _Sprite_Picture_update.call(this); if(this.visible){ this.updateAnimation(); var picture = this.picture(); if(picture){ //update yAngle if(picture._yAngle !== 0){ var theta = (picture._yAngle/180)*Math.PI; this.scale.x *= Math.cos(theta); } if(this._isBustPicture){ this.updateBustPicture(picture); } } } }; var _Sprite_Picture_updateBitmap = Sprite_Picture.prototype.updateBitmap; Sprite_Picture.prototype.updateBitmap = function() { if(this.isBustPicture()){ var picture = this.picture(); if(this._skitActorName || (picture&&picture.skitActorName())){ if(picture){ var pictureName = picture.name(); var skitActorName = picture._skitActorName; if (this._pictureName !== pictureName || this._skitActorName !== skitActorName) { this._skitActorName = skitActorName; this._pictureName = pictureName; this.loadBitmap(); } this.visible = true; }else{ this._pictureName = ''; this._skitActorName = null; this.bitmap = null; this.visible = false; } }else{ this.visible = false; } }else{ _Sprite_Picture_updateBitmap.call(this); } }; /* updateBustPicture ===================================*/ Sprite_Picture.prototype.initBustPicture = function(){ this._isBustPicture = false; this._overlayName = ''; this._skitActorName = ''; this._overlays = null; this._currentOverlays = null; this._emphasisSprites = null; } Sprite_Picture.prototype.isBustPicture = function(){ return this._isBustPicture; }; Sprite_Picture.prototype.setupBustPicture = function(){ this._isBustPicture = true; this._overlays = []; this._currentOverlays = []; this._emphasisSprites = []; }; Sprite_Picture.prototype.updateBustPicture = function(picture=this.picture()){ if(!picture)return; //update zorder this.z = picture.bustPictureZ(); //update image var nextImageName = picture._nextImageName; //nextimage setup if(nextImageName && this._pictureName !== nextImageName){ this._pictureName = nextImageName; this.loadBitmap(); } //update overlay this.updateOverlay(); //update adjustPosition this.y -= (1-this.anchor.y) * this.height * this.scale.y; //update emphasis if(this._emphasisEffect){ this.updateEmphasis(this._emphasisEffect); } var emphasis = picture.emphasisEffect(); if(emphasis){ picture.clearEmphasisEffect(); this.processEmphasisEffect(emphasis); } if(this._emphasisSprites.length){ this.updateEmphasisSprites(); } }; /* overlay ===================================*/ Sprite_Picture.DEFAULT_TONE = [0,0,0,0]; Sprite_Picture.prototype.overlayPartsIds = function(useMultiLayer){ var actorName = this._skitActorName; var poseName = this._pictureName; var overlayName = this._overlayName; return Sprite_Picture.overlayPartsIds(useMultiLayer,actorName,poseName,overlayName); }; Sprite_Picture.overlayPartsIds = function(useMultiLayer,actorName,poseName,overlayName){ if(!useMultiLayer){ if(typeof overlayName === 'string'){ var overlayNames = overlayName.split('-'); var ret = []; if(overlayNames){ ret.push(overlayNames[0]); var elemLen = overlayNames.length; for(var i=1; i=0; i=(i-1)|0){ var overlay = overlays[i]; if(!overlay.updateFade()){ this.removeOverlay(overlay); } } }; Sprite_Picture.prototype.useMultiLayer = function(picture){ return parameters.useMultiLayer; }; Sprite_Picture.prototype.shiftSameTypeOverlay = function(overlays,partsKind,partsId){ var length = overlays.length; for(var i = 0; i=0; kind=(kind-1)|0){ var partsId = partsIds[kind]; if(partsId==='' || partsId<0){ continue; }; var useMultiLayer = kind>0 || paramUseMultiLayer; var currentOverlay = this.shiftSameTypeOverlay(currents,kind,partsId); if(currentOverlay){ if(useMultiLayer ? currentOverlay.equalsMultiLayer(actorName,poseName,kind,partsId) : currentOverlay.equalsSingleLayer(actorName,poseName,partsId)) { nexts.push(currentOverlay); continue; } //repush to fade out currents.push(currentOverlay); } var newOverlay = Sprite_SkitOverlay.get(); nexts.push(newOverlay); overlays.push(newOverlay); if(useMultiLayer){ newOverlay.setupMultiLayer( useSpritesheets ,actorName ,poseName ,kind ,partsId ,this ); }else{ newOverlay.setupSingleLayer( actorName, poseName, partsId, this ); //adjustPosition newOverlay.bitmap.addLoadListener(this.setOverlayPosition.bind(this)); } newOverlay.startFadeIn(duration); var children = this.children; var length = children.length; if(length===0){ this.addChild(newOverlay); }else{ //addChild with zOrder var zOrder = newOverlay.zOrder(); for(var j = 0; jchild.zOrder())continue; this.addChildAt(newOverlay,j); break; } if(!newOverlay.parent){ this.addChild(newOverlay); } } if(currentOverlay && !useMultiLayer && duration===0){ //wait loading to hide current newOverlay.bitmap.addLoadListener(this.removeOverlay.bind(this,currentOverlay)); TRP_CORE.removeArrayObject(currents,currentOverlay); } } this.fadeOutOverlays(currents,duration); }; Sprite_Picture.prototype.fadeOutOverlays = function(overlays,duration){ var length = overlays.length; for(var i = 0; i0)continue; if(duration>0){ overlay.startFadeOut(duration); }else{ this.removeOverlay(overlay); } } }; Sprite_Picture.prototype.didLoadPoseImage = function(pictureName,bitmap){ if(this._pictureName !== pictureName)return; this.removeOverlaysWithoutCurrentPose(); this.bitmap = bitmap; if(!this.useMultiLayer()){ this.setOverlayPosition(); } }; Sprite_Picture.prototype.setOverlayPosition = function(){ if(!this.bitmap || !this.bitmap.isReady()){return;} var overlays = this._currentOverlays; var length = overlays.length; for(var i = 0; i=0; i=(i-1)|0){ var overlay = overlays[i]; this.removeOverlay(overlay); } this._overlayName = ''; this._currentOverlays.length = 0; }; Sprite_Picture.prototype.removeOverlaysWithoutCurrentPose = function(){ var actorName = this._skitActorName; var pose = this._pictureName; var overlays = this._overlays; var length = overlays.length; for(var i = length-1; i>=0; i=(i-1)|0){ var overlay = overlays[i]; if(overlay.actorName!==actorName || overlay.poseName !== pose){ this.removeOverlay(overlay); } } }; Sprite_Picture.prototype.removeOverlay = function(overlay){ if(!overlay)return; TRP_CORE.removeArrayObject(this._overlays,overlay); TRP_CORE.removeArrayObject(this._currentOverlays,overlay); this.removeChild(overlay); Sprite_SkitOverlay.cache(overlay); }; /* animation ===================================*/ Sprite_Picture.prototype.initAnimation = function(){ this._animationOffset = null; }; Sprite_Picture.prototype.updateAnimation = function() { var picture = this.picture(); if (picture){ this._animationOffset = picture.animationOffset(); } }; Sprite_Picture.prototype.startAnimation = function(animation, mirror, delay) { var sprite = new Sprite_Animation(); sprite.setup(this._effectTarget, animation, mirror, delay); sprite.z = 101; this.parent.addChild(sprite); this._animationSprites.push(sprite); }; Sprite_Picture.prototype.adjustAnimationSprite = function(sprite,animation){ if(animation.position !== 3){ sprite.y += Math.floor(this.anchor.y*this.height); if(this._animationOffset){ if(this.scale.x < 0){ sprite.x -= (this._animationOffset.x||0); }else{ sprite.x += (this._animationOffset.x||0); } sprite.y += (this._animationOffset.y||0); } } }; Sprite_Picture.prototype.checkPicture = function(picture){ return this.picture()===picture; }; /* emphasize ===================================*/ Sprite_Picture.prototype.updateEmphasis = function(emphasis){ emphasis.count -= 1; if(emphasis.count > 0){return;} this.processEmphasisEffect(this._emphasisEffect); }; Sprite_Picture.prototype.processEmphasisEffect = function(emphasis){ var duration = emphasis.duration||20; var scaleX = emphasis.scaleX; var scaleY = emphasis.scaleY; var tone = emphasis.tone||[0,0,0,0]; var easeType = emphasis.easeType||0; this.emphasize(duration,scaleX,scaleY,tone,easeType); emphasis.num -= 1; if(emphasis.num <= 0){ this._emphasisEffect = null; }else{ this._emphasisEffect = emphasis; emphasis.count = emphasis.interval; } }; Sprite_Picture.prototype.emphasize = function(duration,scaleX,scaleY,tone,easeType){ var currents = this._currentOverlays; var sprite = new Sprite_SkitEmphasis(this,currents); this.addChild(sprite); this._emphasisSprites.push(sprite); sprite.setup(duration,scaleX,scaleY,tone,easeType) }; Sprite_Picture.prototype.updateEmphasisSprites = function(){ var emphasisSprites = this._emphasisSprites; var length = emphasisSprites.length; for(var i = length-1; i>=0; i=(i-1)|0){ var emphasis = emphasisSprites[i]; if(!emphasis.updateAnimation()){ TRP_CORE.removeArrayObject(emphasisSprites,emphasis); this.removeChild(emphasis); } } }; /* Sprite_SkitEmphasis ===================================*/ function Sprite_SkitEmphasis(){ this.initialize.apply(this, arguments); }; Sprite_SkitEmphasis.prototype = Object.create(Sprite.prototype); Sprite_SkitEmphasis.prototype.constructor = Sprite_SkitEmphasis; Sprite_SkitEmphasis.prototype.initialize = function(original,overlays){ Sprite.prototype.initialize.call(this); this.initMembers(); this.copySprite(original,this); this.anchor.y = 0.5; this.x = 0; this.y = -(this.anchor.y-0.5) * this.height; this.opacity = 255*2/3; var length = overlays.length; for(var i = 0; i0){ this._fadeInDuration -= 1; this.opacity += this._fadeSpeed; }else if(this._fadeOutDuration>0){ this._fadeOutDuration -= 1; this.opacity += this._fadeSpeed; if(this._fadeOutDuration<=0){ return false; } } return true; }; //============================================================================= // Sprite_Animation //============================================================================= var _Sprite_Animation_targetSpritePosition = Sprite_Animation.prototype.targetSpritePosition; Sprite_Animation.prototype.targetSpritePosition = function(sprite) { if(sprite instanceof Sprite_Picture && sprite.isBustPicture()){ return this.targetBustPictureSpritePosition(sprite); }else{ return _Sprite_Animation_targetSpritePosition.call(this,sprite); } }; Sprite_Animation.prototype.targetBustPictureSpritePosition = function(sprite){ const point = new Point( sprite._animationOffset ? sprite._animationOffset.x : 0, (sprite._animationOffset ? sprite._animationOffset.y : 0) - (sprite.anchor.y-0.5)*sprite.height ); sprite.updateTransform(); return sprite.worldTransform.apply(point); }; //============================================================================= // Srpite_AnimationMV //============================================================================= var _Sprite_AnimationMV_updatePosition = Sprite_AnimationMV.prototype.updatePosition; Sprite_AnimationMV.prototype.updatePosition = function() { _Sprite_AnimationMV_updatePosition.call(this); if(this._targets && (this._targets[0] instanceof Sprite_Picture)){ this._targets[0].adjustAnimationSprite(this,this._animation); } }; //============================================================================= // Spriteset_Base //============================================================================= var _Spriteset_Base_createPictures = Spriteset_Base.prototype.createPictures; Spriteset_Base.prototype.createPictures = function() { _Spriteset_Base_createPictures.call(this); var pictureSprites = this._pictureContainer.children; var length = pictureSprites.length; var parent = new Sprite(); var bustPictureContainer = new Sprite(); parent.addChild(bustPictureContainer); for(var i = length-1; i>=0; i=(i-1)|0){ var sprite = pictureSprites[i]; var pictureId = sprite._pictureId; if(sprite.isBustPicture()){ TRP_CORE.removeArrayObject(pictureSprites,sprite); bustPictureContainer.addChildAt(sprite,0); } } this._bustPictureEffectsContainer = parent; this._bustPictureContainer = bustPictureContainer; var zOrder = parameters.zOrder; this._bustPictureZOrder = zOrder; if(zOrder !== 0){ var index = (this.children.indexOf(this._pictureContainer))||0; if(zOrder === 1){ index = index+1; }else{ index = index; } this.addChildAt(parent,index); } }; var _Spriteset_Base_update = Spriteset_Base.prototype.update; Spriteset_Base.prototype.update = function(){ _Spriteset_Base_update.call(this); if(this._bustPictureContainer){ this.updateBustPictureOrders(); } }; Spriteset_Base.prototype.updateBustPictureOrders = function(){ var sprites = this._bustPictureContainer.children; var i; var zCache = this._bustPictureSpritesZCache; var zChanged = !zCache || zCache.length!==sprites.length; var length = sprites.length; if(!zChanged){ for(i = 0; i sprite.checkPicture(target)); } return null; }; // prettier-ignore var _Spriteset_Base_createAnimationSprite = Spriteset_Base.prototype.createAnimationSprite; Spriteset_Base.prototype.createAnimationSprite = function( targets, animation, mirror, delay ) { if(targets[0] instanceof Game_Picture && targets[0]._skitActorName ){ this.createAnimationSpriteForBustPicture(targets,animation,mirror,delay); }else{ _Spriteset_Base_createAnimationSprite.call(this,targets,animation,mirror,delay); } }; Spriteset_Base.prototype.createAnimationSpriteForBustPicture = function(targets,animation,mirror,delay){ const mv = this.isMVAnimation(animation); const sprite = new (mv ? Sprite_AnimationMV : Sprite_Animation)(); const targetSprites = this.makeTargetSprites(targets); const baseDelay = this.animationBaseDelay(); const previous = delay > baseDelay ? this.lastAnimationSprite() : null; if (this.animationShouldMirror(targets[0])) { mirror = !mirror; } sprite.targetObjects = targets; sprite.setup(targetSprites, animation, mirror, delay, previous); this._bustPictureEffectsContainer.addChild(sprite); this._animationSprites.push(sprite); }; /* helper ===================================*/ Spriteset_Base.prototype._compareChildOrder = function(a, b) { if (a.z !== b.z) { return (a.z||0) - (b.z||0); } else if (a.y !== b.y) { return a.y - b.y; } else { return a.spriteId - b.spriteId; } }; //============================================================================= // Spriteset_Map //============================================================================= var _Spriteset_Map_findTargetSprite = Spriteset_Map.prototype.findTargetSprite; Spriteset_Map.prototype.findTargetSprite = function(target) { if(target instanceof Game_Picture){ var sprite = this.findBustPictureTargetSprite(target); if(sprite)return sprite; } return _Spriteset_Map_findTargetSprite.call(this,target); }; //============================================================================= // Spriteset_Battle //============================================================================= var _Spriteset_Battle_findTargetSprite = Spriteset_Battle.prototype.findTargetSprite; Spriteset_Battle.prototype.findTargetSprite = function(target) { if(target instanceof Game_Picture){ var sprite = this.findBustPictureTargetSprite(target); if(sprite)return sprite; } return _Spriteset_Battle_findTargetSprite.call(this,target); }; //============================================================================= // Scene_Base //============================================================================= var _Scene_Base_terminate = Scene_Base.prototype.terminate; Scene_Base.prototype.terminate = function(){ if(this._spriteset){ this._spriteset.releaseBustPictureContainer(); } _Scene_Base_terminate.call(this); }; Scene_Base.prototype.addBustPictureContainerIfNeeded = function(){ if(!this._spriteset){return;} if(this._spriteset.needsBustPictureAddToScene()){ this.addChild(this._spriteset.bustPictureBaseContainer()); } }; var _Scene_Map_createDisplayObjects = Scene_Map.prototype.createDisplayObjects; Scene_Map.prototype.createDisplayObjects = function() { _Scene_Map_createDisplayObjects.call(this); this.addBustPictureContainerIfNeeded(); }; var _Scene_Battle_createDisplayObjects = Scene_Battle.prototype.createDisplayObjects; Scene_Battle.prototype.createDisplayObjects = function() { _Scene_Battle_createDisplayObjects.call(this); this.addBustPictureContainerIfNeeded(); }; //============================================================================= // Game_Message => 自動フォーカス //============================================================================= // Show Text var _Game_Message_add_ = Game_Message.prototype.add; Game_Message.prototype.add = function(text) { $gameSkit.setTempOn(true); //Skitのfocus処理 if (!$gameMessage.isBusy() && $gameSkit.isSkitOn()){ if(!parameters.useNameBox){ text = this.detectTrpSkitSpeakerWithMessage(text); } if(this._talkingActorName){ if(!$gameSkit.onTalk(this._talkingActorName)){ if($gameSkit.isAutoMode()){ $gameSkit.setTempOn(false); return; } } } } _Game_Message_add_.call(this,text); if($gameSkit.isAutoMode()){ $gameSkit.setTempOn(false); } }; Game_Message.prototype.detectTrpSkitSpeakerWithMessage = function(text){ var list = parameters.nameToInputList; var names = Object.keys(list); Array.prototype.push.apply(names,$gameSkit.mobNames()); this._talkingActorName = ''; if(parameters.setNameBox){ if(parameters.autoDetectMobName && this._speakerName){ this._talkingActorName = this._speakerName; return text; } } var line = text.replace(/\s+/g, ""); var length = names.length; for(var i=0;i < length; i++){ var name = names[i]; var regExp = new RegExp('^'+name); if(line.match(regExp)){ var target = list[name]||name; var actor = $gameSkit.actor(name); if(actor){ var displayName = actor.displayName(); if(parameters.setNameBox){ this._spekaerDisplayName = displayName; this._speakerName = displayName; text = text.replace(regExp,''); }else{ text = text.replace(regExp,displayName); } } this._talkingActorName = target; } } return text; }; const _Game_Message_clear = Game_Message.prototype.clear; Game_Message.prototype.clear = function() { _Game_Message_clear.call(this); this._talkingActorName = ''; if(parameters.useNameBox){ this._spekaerDisplayName = ''; } }; const _Game_Message_speakerName = Game_Message.prototype.speakerName; Game_Message.prototype.speakerName = function() { if(parameters.useNameBox){ return this._spekaerDisplayName; }else{ return _Game_Message_speakerName.call(this); } }; const _Game_Message_setSpeakerName = Game_Message.prototype.setSpeakerName; Game_Message.prototype.setSpeakerName = function(speakerName) { _Game_Message_setSpeakerName.call(this,speakerName); if(parameters.useNameBox){ this.detectTrpSkitSpeakerWithSpeaker(speakerName); } }; Game_Message.prototype.detectTrpSkitSpeakerWithSpeaker = function(speakerName){ this._talkingActorName = parameters.autoDetectMobName ? speakerName : ''; this._spekaerDisplayName = speakerName || ''; var list = parameters.nameToInputList; var names = Object.keys(list); Array.prototype.push.apply(names,$gameSkit.mobNames()); var length = names.length; for(var i=0;i < length; i++){ var name = names[i]; if(name===speakerName){ var target = list[name]||name; var actor = $gameSkit.actor(name); if(actor){ var displayName = actor.displayName(); this._spekaerDisplayName = displayName; } this._talkingActorName = target; return; } }; }; //============================================================================= // Window_Message //============================================================================= var _Window_Message_processEscapeCharacter_ = Window_Message.prototype.processEscapeCharacter; Window_Message.prototype.processEscapeCharacter = function(code, textState) { if(this.processEscapeCharacterForSkit(code,textState)){return;} _Window_Message_processEscapeCharacter_.call(this,code,textState); }; Window_Message.prototype.processEscapeCharacterForSkit = function(code, textState) { var params,expression,command,args; var skitCodes = parameters.controlCharacters||{}; if(code === (skitCodes.pose||'SP')){ params = this.obtainEscapeWords(textState).split(' '); var pose = params[0]; expression = params[1]; $gameSkit.processCommand(['pose',$gameMessage._talkingActorName,'f',pose,expression]); return true; }else if(code === (skitCodes.expression||'SE')){ params = this.obtainEscapeWords(textState); expression = params; $gameSkit.processCommand(['expression',$gameMessage._talkingActorName,'f',expression]); return true; }else if(code === (skitCodes.motion||'SM')){ command = this.obtainEscapeWords(textState); $gameSkit.processCommand([command,$gameMessage._talkingActorName,'f'].concat(args)); return true; }else if(code === (skitCodes.animation||'SA')){ command = 'animation'; var animeName = this.obtainEscapeWords(textState); $gameSkit.processCommand([command,$gameMessage._talkingActorName,'f',animeName]); return true; } return false; }; Window_Base.prototype.obtainEscapeWords = function(textState) { var regExp = /\[(.+?)\]/; var arr = regExp.exec(textState.text.slice(textState.index)); if (arr) { textState.index += arr[0].length; return arr[1]; } else { return ''; } }; //============================================================================= // BattleManager //============================================================================= var _BattleManager_startBattle = BattleManager.startBattle; BattleManager.startBattle = function() { _BattleManager_startBattle.call(this); $gameSkit.onBattleStart(); }; //============================================================================= // test用 //============================================================================= Game_Interpreter.prototype.skitTest = function(){ parameters.useMultiLayer = false; this.clear(); var list = [{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["動作名の表示のあとに、コマンドを実行します。"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←フェードイン"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","fadeIn","[登場]fadeIn/フェードイン",{"name":"yuna","wait":"true","position":"def","duration":"def","opacity":"255","easeType":"def","pushIn":"def"}]},{"code":657,"indent":0,"parameters":["キャラ名 = yuna"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["位置 = def"]},{"code":657,"indent":0,"parameters":["所要時間 = def"]},{"code":657,"indent":0,"parameters":["不透明度 = 255"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":657,"indent":0,"parameters":["プッシュイン = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←スライドイン(登場位置がかぶるときはキャラを押し避ける)"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","slideIn","[登場]slideIn/スライドイン",{"name":"shizu","wait":"true","position":"left","slideLength":"def","speed":"def","direction":"auto","easeType":"def","pushIn":"def"}]},{"code":657,"indent":0,"parameters":["キャラ名 = shizu"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["位置 = left"]},{"code":657,"indent":0,"parameters":["スライド距離 = def"]},{"code":657,"indent":0,"parameters":["スライドスピード = def"]},{"code":657,"indent":0,"parameters":["スライド方向。 = auto"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":657,"indent":0,"parameters":["プッシュイン = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>→反転"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","flip","[動作]flip/キャラの反転",{"name":"yuna","wait":"true","num":"4","durationPerCount":"def","easeType":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = yuna"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["反転回数 = 4"]},{"code":657,"indent":0,"parameters":["1回の時間 = def"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←反転しつつ移動"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","move","[動作]move/移動",{"name":"shizu","wait":"false","position":"right","speed":"def","relative":"false","easeType":"def"}]},{"code":657,"indent":0,"parameters":["キャラ名 = shizu"]},{"code":657,"indent":0,"parameters":["ウェイト = false"]},{"code":657,"indent":0,"parameters":["位置 = right"]},{"code":657,"indent":0,"parameters":["移動スピード = def"]},{"code":657,"indent":0,"parameters":["相対座標フラグ = false"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","flip","[動作]flip/キャラの反転",{"name":"shizu","wait":"true","num":"def","durationPerCount":"def","easeType":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = shizu"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["反転回数 = def"]},{"code":657,"indent":0,"parameters":["1回の時間 = def"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←ステップ"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","step","[動作]step/ステップ移動",{"name":"yuna","wait":"true","position":"center","speed":"def","height":"def","gravity":"def","relative":"def","easeType":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = yuna"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["位置 = center"]},{"code":657,"indent":0,"parameters":["移動スピード = def"]},{"code":657,"indent":0,"parameters":["高さ = def"]},{"code":657,"indent":0,"parameters":["重力係数 = def"]},{"code":657,"indent":0,"parameters":["相対座標フラグ = def"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←強調"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","emphasize","[演出]emphasize/キャラの強調",{"name":"yuna","wait":"true","duration":"def","scaleX":"def","scaleY":"def","num":"def","interval":"def","r":"def","g":"def","b":"def","gray":"def","easeType":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = yuna"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["所要時間 = def"]},{"code":657,"indent":0,"parameters":["横方向の拡大率 = def"]},{"code":657,"indent":0,"parameters":["縦方向の拡大率 = def"]},{"code":657,"indent":0,"parameters":["演出の回数 = def"]},{"code":657,"indent":0,"parameters":["演出の間隔 = def"]},{"code":657,"indent":0,"parameters":["R値[赤] = def"]},{"code":657,"indent":0,"parameters":["G値[緑] = def"]},{"code":657,"indent":0,"parameters":["B値[青] = def"]},{"code":657,"indent":0,"parameters":["グレー = def"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←シェイク"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","shake","[動作]shake/キャラの揺れ",{"name":"yuna","wait":"true","strength":"def","count":"2","speedDur":"def","reverse":"false","easeType":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = yuna"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["強さ = def"]},{"code":657,"indent":0,"parameters":["回数 = 2"]},{"code":657,"indent":0,"parameters":["1回の所要時間 = def"]},{"code":657,"indent":0,"parameters":["開始方向を反転 = false"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>→アニメーション"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","animation","[演出]animation/アニメーション表示",{"name":"shizu","wait":"true","animeName":"1","mirror":"def","focus":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = shizu"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["アニメーション名 = 1"]},{"code":657,"indent":0,"parameters":["反転フラグ = def"]},{"code":657,"indent":0,"parameters":["自動フォーカスフラグ = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>→回転"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","rotate","[動作]rotate/キャラの回転",{"name":"shizu","wait":"true","angle":"360","duration":"def","relative":"def","easeType":"def"}]},{"code":657,"indent":0,"parameters":["対象キャラ名 = shizu"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["回転角度 = 360"]},{"code":657,"indent":0,"parameters":["所要時間 = def"]},{"code":657,"indent":0,"parameters":["相対角度フラグ = def"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>→表情"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","expression","[表情/ポーズ]exp/表情変更",{"name":"shizu","wait":"true","expression":"2","duration":"def"}]},{"code":657,"indent":0,"parameters":["キャラ名 = shizu"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["表情名 = 2"]},{"code":657,"indent":0,"parameters":["所要時間 = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>←ポーズ"]},{"code":357,"indent":0,"parameters":["TRP_SkitMZ","pose","[表情/ポーズ]pose/ポーズ変更",{"name":"yuna","wait":"true","pose":"bend","expression":"3","style":"def","duration":"def","easeType":"def"}]},{"code":657,"indent":0,"parameters":["キャラ名 = yuna"]},{"code":657,"indent":0,"parameters":["ウェイト = true"]},{"code":657,"indent":0,"parameters":["ポーズ名 = bend"]},{"code":657,"indent":0,"parameters":["表情名 = 3"]},{"code":657,"indent":0,"parameters":["アニメーションタイプ = def"]},{"code":657,"indent":0,"parameters":["所要時間 = def"]},{"code":657,"indent":0,"parameters":["イージング = def"]},{"code":101,"indent":0,"parameters":["",0,0,2,"ユナ"]},{"code":401,"indent":0,"parameters":["\\>会話キャラの名前を検出して自動フォーカス"]},{"code":401,"indent":0,"parameters":["\\>(話してないキャラが縮小&暗く)"]},{"code":101,"indent":0,"parameters":["",0,0,2,"ユナ"]},{"code":401,"indent":0,"parameters":["会話中の制御文字のテスト。\\!"]},{"code":401,"indent":0,"parameters":["\\SE[5]\\\\SE[5]表情変更\\|"]},{"code":401,"indent":0,"parameters":["\\SM[jump]\\\\SM[jump]ジャンプモーション"]},{"code":101,"indent":0,"parameters":["",0,0,2,"シズ"]},{"code":401,"indent":0,"parameters":["\\SP[depressed]\\\\SP[depressed]ポーズ変更\\!"]},{"code":401,"indent":0,"parameters":["\\SA[1]\\\\SA[1]アニメーション\\!"]},{"code":401,"indent":0,"parameters":["\\SM[pop]\\\\SM[pop]登録マクロ~ポップジャンプ"]},{"code":101,"indent":0,"parameters":["",0,0,2,""]},{"code":401,"indent":0,"parameters":["\\>以上、正しく表示されていれば"]},{"code":401,"indent":0,"parameters":["\\>プラグインが動作する可能性が高いです。"]},{"code":0,"indent":0,"parameters":[]}]; this.setup(list,this._eventId); this._index = -1; }; Game_Interpreter.prototype.skitTestMV = function(){ parameters.useMultiLayer = false; this.clear(); var list = []; var pushCommand = function(list,command){ list.push({ code:355, indent:0, parameters:[command] }); }; var pushText = function(list,texts,name=""){ list.push({ code:101, indent:0, parameters:["",0,0,2,name] }); var length = texts.length; for(var i = 0; i