pure-full-lily/js/plugins/TRP_SkitMZ.js
2025-09-16 10:12:44 -05:00

7085 lines
No EOL
190 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// 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.12 2022/2/27 スプライトシート利用時のWebデプロイでのエラー修正
           TRP_SpriteSheetsのバージョン1.01以降)
* 1.11 2022/1/25 ウィンドウ手前に表示時のアニメ表示不具合修正
* 1.09 2021/12/6 ディレクトリ変更コマンド追加
* 1.08 2021/11/17 ヘルプのマニュアルリンク修正
* 1.07 2021/1/14 ネームボックス使用設定で、未設定時のエラー修正
* 1.06 2021/1/2 内部処理の変更、入力キャラ名の判定優先度変更
* 1.05 2020/12/7 ネームボックス不使用時のキャラ名の置換不具合修正
* 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
*
*
* @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
*
*
* @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 スライドスピード。秒あたりの移動量。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
*
*
* @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 スライドスピード。秒あたりの移動量。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
*
*
* @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 スライドスピード。秒あたりの移動量。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 スライドスピード。秒あたりの移動量。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 移動スピード。秒あたりの移動量。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 移動スピード。秒あたりの移動量。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 反転回あたりの所要フレーム。初期デフォ値は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; i<length; i=(i+1)|0){
var character = characterSettingArray[i];
character.inputName = character.inputName || character.name;
character.fileName = character.fileName || character.inputName;
var newPose = {};
if(character.pose){
character.pose.forEach(function(pose){
newPose[pose.name] = pose;
});
character.pose = newPose;
}
if(character.inputName){
names[character.inputName] = character.fileName;
}
dataActors[character.fileName] = character;
}
for(var i = 0; i<length; i=(i+1)|0){
var character = characterSettingArray[i];
if(character.name){
names[character.name] = character.fileName;
}
}
parameters.SkitActorSettings = null;
}catch(e){
e = new Error(errorPrefix+'キャラクター設定が正しくありません。');
SceneManager.catchException(e);
}
/* setup xPosition
===================================*/
try{
var xPositionArray = parameters.xPosition;
var xPosition = {};
parameters.xPosition = xPosition;
xPositionArray.forEach(function(positionInfo){
xPosition[positionInfo.name] = positionInfo.position;
});
}catch(e){
e = new Error(errorPrefix+'ポジションの略称設定が正しくありません。');
SceneManager.catchException(e);
}
/* setup speed list
===================================*/
try{
var speedArray = parameters.speed;
var speed = {};
parameters.speed = speed;
speedArray.forEach(function(info){
speed[info.name] = info.speed;
});
}catch(e){
e = new Error(errorPrefix+'スピードの略称設定が正しくありません。');
SceneManager.catchException(e);
}
/* setup animationList
===================================*/
try{
var listArray = parameters.animation.list;
var list = {};
parameters.animation.list = list;
listArray.forEach(function(animation){
if(animation.name && animation.name !== ''){
list[animation.name] = animation.id;
}
});
}catch(e){
e = new Error(errorPrefix+'アニメーションの登録設定が正しくありません。');
SceneManager.catchException(e);
}
/* setup macro
===================================*/
try{
var macroArray = parameters.macro.concat(parameters.macro2).concat(parameters.macro3).concat(parameters.macro4);
if(parameters.macro5){
macroArray = macroArray.concat(parameters.macro5);
}
var macro = {};
parameters.macro = macro;
macroArray.forEach(function(info){
macro[info.name] = info.macro.split(' ');
});
}catch(e){
e = new Error(errorPrefix+'マクロの登録設定が正しくありません。');
SceneManager.catchException(e);
}
/* setup toneParameter
===================================*/
var toneError = 'のトーン設定が不正です。スペース区切りで使用可能な数の範囲を確認してください。また、正の数に+はつけないでください。';
try{
parameters.unFocus.tone = TRP_CORE.interpretToneStr(parameters.unFocus.tone);
}catch(e){
e = new Error(errorPrefix+'アンフォーカス'+toneError);
SceneManager.catchException(e);
}
try{
parameters.tint.tone = TRP_CORE.interpretToneStr(parameters.tint.tone);
}catch(e){
e = new Error(errorPrefix+'色調のトーン設定'+toneError);
SceneManager.catchException(e);
}
try{
parameters.emphasize.tone = TRP_CORE.interpretToneStr(parameters.emphasize.tone);
}catch(e){
e = new Error(errorPrefix+'強調のトーン設定'+toneError);
SceneManager.catchException(e);
}
/* load spriteshieets
===================================*/
if(parameters.useMultiLayer && parameters.useSpritesheets){
const spritesheets = parameters.spritesheets==='' ? [] : parameters.spritesheets.split(',');
if(spritesheets.length===0){
const actorNames = Object.keys(dataActors);
for(const actorName of actorNames){
let actorData = dataActors[actorName];
let poses = Object.keys(actorData.pose);
for(const pose of poses){
spritesheets.push(actorName+'_'+pose);
}
}
}
for(const sheet of spritesheets){
TRP_SpriteSheet.load(sheet);
}
}
/* load exp data
===================================*/
if(parameters.useMultiLayer){
DataManager._databaseFiles.push({
name:'$dataTrpSkit',
src:'../'+Skit.EXP_FILE_PATH
})
}
};
//=============================================================================
// TRP_CORE
//=============================================================================
TRP_CORE.RELEATIVE = true;
TRP_CORE.ABSOLUTE = false;
TRP_CORE.WAIT = true;
TRP_CORE.NO_WAIT = false;
TRP_CORE.supplement = function(defaultValue,optionArg){
if(optionArg === undefined){
return defaultValue;
}
return optionArg;
};
TRP_CORE.supplementNum = function(defaultValue,optionArg){
return Number(TRP_CORE.supplement(defaultValue,optionArg));
};
TRP_CORE.supplementDef = function(defaultValue, optionArg, otherWords) {
var value = TRP_CORE.supplement(defaultValue,optionArg);
var defTargetWords = otherWords || [];
defTargetWords.push('default');
defTargetWords.push('def');
defTargetWords.push('d');
for(var i=0; i<defTargetWords.length; i++){
var target = defTargetWords[i];
if(value === target){
value = defaultValue;
break;
}
}
return value;
};
TRP_CORE.supplementDefNum = function(defaultValue, optionArg, otherWords) {
var value = TRP_CORE.supplementDef(defaultValue,optionArg,otherWords);
return Number(value);
};
TRP_CORE.supplementDefBool = function(defaultValue, optionArg, otherWords) {
var value = TRP_CORE.supplementDef(defaultValue,optionArg,otherWords);
if(value==='true' || value==='t'){
value = true;
}else if(value==='false' || value==='f'){
value = false;
}else if(value){
value = true;
}else{
value = false;
}
return value;
};
TRP_CORE.removeArrayObject = function(array,target){
var length = array.length;
for(var i = 0; i<length; i=i+1){
if(array[i] === target){
array.splice(i,1);
return;
}
}
};
/* tween
===================================*/
TRP_CORE.EASING = {
linear : 0,
easeInQuad : 1,
easeOutQuad : 2,
easeInOutQuad : 3,
easeInCubic : 4,
easeOutCubic : 5,
easeInOutCubic : 6,
easeInBack : 7,
easeOutBack : 8,
easeInOutBack : 9,
easeInElastic : 10,
easeOutElastic : 11,
easeInOutElastic : 12
};
TRP_CORE.easingValue = function(t,v0,delta,duration,type){
var EASING = this.EASING;
t /= duration;
switch(type){
case EASING.easeInQuad:
t = this.easingInQuad(t);
break;
case EASING.easeOutQuad:
t = this.easingOutQuad(t);
break;
case EASING.easeInOutQuad:
t = this.easingInOutQuad(t);
break;
case EASING.easeInCubic:
t = this.easingInCubic(t);
break;
case EASING.easeOutCubic:
t = this.easingOutCubic(t);
break;
case EASING.easeInOutCubic:
t = this.easingInOutCubic(t);
break;
case EASING.easeInBack:
t = this.easingInBack(t);
break;
case EASING.easeOutBack:
t = this.easingOutBack(t);
break;
case EASING.easeInOutBack:
t = this.easingInOutBack(t);
break;
case EASING.easeInElastic:
t = this.easingInElastic(t);
break;
case EASING.easeOutElastic:
t = this.easingOutElastic(t);
break;
case EASING.easeInOutElastic:
t = this.easingInOutElastic(t);
break;
default:
t = this.easingLinear(t);
}
return delta*t + v0;
};
TRP_CORE.easingLinear = function(t){
return t;
};
TRP_CORE.easingInQuad = function(t){
return t*t;
};
TRP_CORE.easingOutQuad = function(t){
return -t*(t-2);
};
TRP_CORE.easingInOutQuad = function(t){
t *= 2;
if(t<1)return 1/2*t*t;
t -= 1;
return -1/2 * (t*(t-2)-1);
};
TRP_CORE.easingInCubic = function(t){
return t*t*t;
};
TRP_CORE.easingOutCubic = function(t){
t -= 1;
return (t*t*t + 1);
};
TRP_CORE.easingInOutCubic = function(t){
t *= 2;
if(t<1)return 1/2*t*t*t;
t -= 2;
return 1/2 * (t*t*t+2);
};
TRP_CORE.easingInBack = function(t){
return t*t*(2.5*t-1.5);
};
TRP_CORE.easingOutBack = function(t){
t -= 1;
return 1+t*t*(2.5*t+1.5);
};
TRP_CORE.easingInOutBack = function(t){
t *= 2;
if(t<1)return t*t*(2.5*t-1.5)/2
t -= 2;
return (1+t*t*(2.5*t+1.5))/2+0.5;
};
TRP_CORE.easingInElastic = function(t){
t -= 1;
return -(Math.pow(2,10*t))
* Math.sin((t-0.4/2/Math.PI*Math.asin(1))
* 2*Math.PI/0.4);
};
TRP_CORE.easingOutElastic = function(t){
return Math.pow(2,-10*t)
* Math.sin((t-0.4/2/Math.PI*Math.asin(1))
* 2*Math.PI/0.4)+1;
};
TRP_CORE.easingInOutElastic = function(t){
t -=0.5;
if(t<0){
return -0.5*(Math.pow(2,10*t))
* Math.sin((t-0.4/4)*2*Math.PI/0.4);
}else{
return 0.5*Math.pow(2,-10*t)
* Math.sin((t-0.4/4)*2*Math.PI/0.4)+1;
}
};
/* functions for Skit
===================================*/
TRP_CORE.isTRPSkitPluginCommand = function(command){
return command==='SKIT' || command==='skit' || command==='スキット';
};
var WAIT_ARGS = ['wait'];
TRP_CORE.supplementSkitWait = function(default_value, opt_arg){
var ret = TRP_CORE.supplementDef(default_value, opt_arg, WAIT_ARGS);
ret = (ret==='false'||ret==='f') ? false : ((ret==='true'||ret==='t') ? true : ret);
return ret;
};
TRP_CORE.interpretToneStr = function(toneStr){
toneStr = toneStr.replace(' ',' ');
toneStr = toneStr.replace(/^\s*/,'');
toneStr = toneStr.replace(/\s+/g,' ');
var toneParams = toneStr.split(' ');
var tone = [Number(toneParams[0]),Number(toneParams[1]),Number(toneParams[2]),Number(toneParams[3]||0)];
return tone;
};
TRP_CORE.interpretPositionArg = function(posArg){
switch(posArg){
case 'default':
case 'def':
case 'd':
case 'デフォルト':
case '':
case undefined:
posArg = parameters.defaultPositionX;
}
var position;
var registered = parameters.xPosition[posArg];
if(registered!==undefined){
position = registered;
}else{
if(isNaN(posArg)){
position = 2;
}else{
position = Number(posArg);
}
}
return position;
};
TRP_CORE.supplementSpeedArg = function(defaultValue,arg){
arg = TRP_CORE.supplementDef(defaultValue, arg);
var speed;
var registered = parameters.speed[arg];
if(registered!==undefined){
speed = registered;
}else{
if(isNaN(arg)){
speed = 12;
}else{
speed = Number(arg);
}
}
return speed;
};
TRP_CORE.interpretDirectionArg = function(arg,position){
switch(arg){
case 'left':
case '左':
return -1;
case 'right':
case '右':
return 1;
default:
if(!isNaN(arg)){
var numArg = Number(arg);
if(numArg<0){return -1;}
if(numArg>0){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<keyLen; i=(i+1)|0){
let key = keys[i];
param[key] = defaults[key];
}
const elemLen = elems.length;
let keyIdx = 0;
for(let elem of elems){
if(map && map[elem]){
elem = map[elem];
}
let index = elem.indexOf(':');
if(index<=0){
if(keys.contains(elem)){
//flag
index = elem.length;
elem += ':true';
}else{
param[keys[keyIdx++]] = elem;
continue;
}
}
let key = elem.substring(0,index);
if(map && map[key]){
key = map[key];
}
var order = keys.indexOf(key)
if(order<0){
param[keys[keyIdx++]] = elem;
continue;
}
let valueStr = elem.substring(index+1);
let value;
switch(typeof defaults[key]){
case 'boolean':
if(valueStr==='f'||valueStr==='false'||valueStr==='0'){
value = false;
}else{
value = true;
}
break;
case 'number':
value = Number(valueStr);
break;
default:
value = valueStr;
}
param[key] = value;
if(order===keyIdx){
keyIdx += 1;
}
}
keyLen = keys.length;
for(let i = 0; i<keyLen; i=(i+1)|0){
elems[i] = param[keys[i]];
}
return elems;
};
/* ex patch
===================================*/
TRP_CORE.isAnimationExists = function(animationId){
return !!$dataAnimations[animationId];
};
//=============================================================================
// PluginManager
//=============================================================================
(()=>{
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<length; i=(i+1)){
args[i] = TRP_CORE.supplementDef(macroArgs[i],args[i]);
}
}
}
//convert escapeCharacters
length = args.length;
for(i = 0; i<length; i=(i+1)|0){
if(typeof args[i] === 'string'){
args[i] = TRP_CORE.convertEscapeCharacters(args[i]);
}
}
this._processCommand(args,macroPos);
};
Skit.prototype._processCommand = function(args,macroPos){
var skitCommand = args[0].toLowerCase();
switch(skitCommand){
case 'start':
case '開始':
this.startSkit(args,macroPos);
break;
case 'end':
case '終了':
this.endSkit(args,macroPos);
break;
case 'preload':
case 'プリロード':
this.preloadImage(args,macroPos);
break;
case 'clear':
case 'クリア':
case 'クリアー':
this.clearActors(args,macroPos);
break;
case 'show':
case '表示':
case '出現':
this.showSkitActor(args,macroPos);
break;
case 'hide':
case '非表示':
this.hideSkitActor(args,macroPos);
break;
case 'fadein':
case 'フェードイン':
this.fadeInSkitActor(args,macroPos);
break;
case 'fadeout':
case 'フェードアウト':
this.fadeOutSkitActor(args,macroPos);
break;
case 'slidein':
case 'スライドイン':
this.slideInSkitActor(args,macroPos);
break;
case 'slideout':
case 'スライドアウト':
this.slideOutSkitActor(args,macroPos);
break;
case 'movein':
case 'ムーブイン':
this.moveInSkitActor(args,macroPos);
break;
case 'moveout':
case 'ムーブアウト':
this.moveOutSkitActor(args,macroPos);
break;
case 'expression':
case 'exp':
case '表情':
this.changeSkitActorExpression(args,macroPos);
break;
case 'pose':
case 'ポーズ':
this.changeSkitActorPose(args,macroPos);
break;
case 'move':
case '移動':
this.moveSkitActor(args,macroPos);
break;
case 'y':
case 'movey':
case 'ymove':
case 'y移動':
this.moveYSkitActor(args,macroPos);
break;
case 'jump':
case 'ジャンプ':
this.jumpSkitActor(args,macroPos);
break;
case 'step':
case 'ステップ':
this.stepSkitActor(args,macroPos);
break;
case 'shake':
case 'シェイク':
case '揺れ':
this.shakeSkitActor(args,macroPos);
break;
case 'rotate':
case '回転':
this.changeAngleSkitActor(args,macroPos);
break;
case 'flip':
case 'フリップ':
case '反転':
this.flipSkitActor(args,macroPos);
break;
case 'autofocus':
case 'オートフォーカス':
this.setAutoFocus(args,macroPos);
break;
case 'focus':
case 'フォーカス':
this.focusSkitActor(args,macroPos);
break;
case 'unfocus':
case 'アンフォーカス':
this.unFocusSkitActor(args,macroPos);
break;
case 'scale':
case '拡大':
this.changeScaleSkitActor(args,macroPos);
break;
case 'opacity':
case '不透明度':
case 'オパシティ':
this.changeOpacitySkitActor(args,macroPos);
break;
case 'tint':
case '色調':
this.changeTintSkitActor(args,macroPos);
break;
case 'emphasize':
case '強調':
this.emphasizeSkitActor(args,macroPos);
break;
case 'animation':
case 'anim':
case 'アニメーション':
case 'アニメ':
this.playAnimationSkitActor(args,macroPos);
break;
case 'wait':
case 'ウェイト':
this.waitSkitActor(args,macroPos);
break;
case 'front':
case '前面':
this.bringSkitActorToFront(args,macroPos);
break;
case 'sequence':
case 'シーケンス':
this.playSequence(args,macroPos);
break;
case 'loop':
case 'ループ':
this.playLoop(args,macroPos)
break;
case 'mob':
case 'モブ':
this.registerSkitMobName(args,macroPos);
break;
case 'name':
case '名前':
this.setDisplayNameWithSkitActor(args,macroPos);
break;
case 'eval':
this.processEval(args);
break;
case 'auto':
case 'automode':
case 'オート':
case 'オートモード':
case '自動モード':
this.setAutoMode(args,macroPos);
break;
}
};
Skit.prototype.processEval = function(args){
eval(args[1]);
};
/* start
===================================*/
Skit.prototype.startSkit = function(args,macroPos){
this.start();
};
/* end
* [1] : noAnimation
===================================*/
Skit.prototype.endSkit = function(args,macroPos){
var noAnimation = args[1]==='t'||args[1]==='true';
this.end(noAnimation);
};
/* preload image
* [1] : charaName
* [2] : wait(dummy)
* [3] : pose
* [4] : expression
===================================*/
Skit.prototype.preloadImage = function(args,macroPos){
var charaName = args[1];
var folderName = this.actorFolderName(charaName);
if(!folderName)return;
var pose = TRP_CORE.supplementDef('normal',args[3]);
var exp = TRP_CORE.supplementDef(Skit.defaultExpression(),args[4]);
//pose image
var filename = pose;
ImageManager.requestBust(folderName,filename);
//expression image
if(exp){
if(parameters.useMultiLayer){
if(parameters.useSpritesheets){
filename = folderName+'_'+pose;
ImageManager.requestBust(folderName,filename);
}else{
var partsIds = Sprite_Picture.overlayPartsIds(true,folderName,pose,exp);
if(partsIds){
var length = partsIds.length;
for(var i = 0; i<length; i=(i+1)|0){
var partsId = partsIds[i];
if(partsId<0)continue;
filename = pose + '_' + (i+1) + '_' + partsId;
ImageManager.requestBust(folderName,filename);
}
}
}
}else{
filename = pose+'_'+exp;
ImageManager.requestBust(folderName,filename);
}
}
};
/* clearActors
* [1] : wait
===================================*/
Skit.prototype.clearActors = function(args){
var wait = TRP_CORE.supplementSkitWait(false, args[1]);
this.processClearActors(wait);
};
/* show
* [1] : name
* [2] : wait (dummy)
* [3] : position
* [4] : opacity (255)
===================================*/
Skit.prototype.showSkitActor = function(args,macroPos){
if(!this._isSkitOn){
this.start();
}
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
var position = TRP_CORE.supplementDef(args[3],macroPos);
var opacity = args[4];
actor.show(position,opacity);
};
/* hide
* [1] : name
===================================*/
Skit.prototype.hideSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
actor.hide();
}
};
/* fadeIn
* [1] : name
* [2] : wait (true)
* [3] : position
* [4] : duration
* [5] : opacity(255)
* [6] : easeType
* [7] : pushIn
===================================*/
Skit.prototype.fadeInSkitActor = function(args,macroPos){
if(!this._isSkitOn){
this.start();
}
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var duration = args[4];
var opacity = args[5];
var easeType = args[6];
actor.fadeIn(wait,easeType,position,duration,opacity);
var pushIn = TRP_CORE.supplementDefBool(parameters.fadeIn.pushIn,args[7]);
if(pushIn){
this.pushOutActorsAroundActor(actor);
}
};
/* fadeOut
* [1] : name
* [2] : waitFlag (false)
* [3] : duration
* [4] : easeType
===================================*/
Skit.prototype.fadeOutSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var duration = args[3];
var easeType = args[4];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
actor.fadeOut(wait,easeType,duration);
}
};
/* slidein
* [1] : name
* [2] : waitFlag
* [3] : position (left:2)
* [4] : slideLength (0.5)
* [5] : speed (20)
* [6] : direction(auto)
* [7] : easeType
* [8] : pushIn(true)
===================================*/
Skit.prototype.slideInSkitActor = function(args,macroPos){
if(!this._isSkitOn){
this.start();
}
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var slideLength = args[4];
var speed = args[5];
var direction = args[6];
var easeType = args[7];
actor.slideIn(wait,easeType,position,slideLength,speed,direction);
var pushIn = TRP_CORE.supplementDefBool(parameters.slideIn.pushIn,args[8]);
if(pushIn){
this.pushOutActorsAroundActor(actor);
}
};
/* slideout
* [1] : name
* [2] : waitFlag
* [3] : slideLength (0.5)
* [4] : speed (20)
* [5] : direction(auto)
* [6] : easeType
===================================*/
Skit.prototype.slideOutSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var slideLength = args[3];
var speed = args[4];
var direction = args[5];
var easeType = args[6];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
actor.slideOut(wait,easeType,slideLength,speed,direction);
}
};
/* moveIn
* [1] : name
* [2] : waitFlag
* [3] : position
* [4] : speed
* [5] : direction(auto)
* [6] : easeType
* [7] : pushIn
===================================*/
Skit.prototype.moveInSkitActor = function(args,macroPos){
if(!this._isSkitOn){
this.start();
}
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var speed = args[4];
var direction = args[5];
var easeType = args[6];
actor.moveIn(wait,easeType,position,speed,direction);
var pushIn = TRP_CORE.supplementDefBool(parameters.moveIn.pushIn,args[7]);
if(pushIn){
this.pushOutActorsAroundActor(actor);
}
};
/* moveOut
* [1] : name
* [2] : waitFlag
* [3] : speed
* [4] : direction(auto)
* [5] : easeType
===================================*/
Skit.prototype.moveOutSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var speed = args[3];
var direction = args[4];
var easeType = args[5];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.moveOut(wait,easeType,speed,direction);
}
}
};
/* move
* [1] : name
* [2] : wait
* [3] : position
* [4] : speed
* [5] : relative(false)
* [6] : easeType
===================================*/
Skit.prototype.moveSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var speed = args[4];
var relative = args[5];
var easeType = args[6];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.movePosition(wait,easeType,position,speed,relative);
}
}
};
/* move y
* [1] : name
* [2] : wait
* [3] : position
* [4] : duration
* [5] : relative(false)
* [6] : easeType
===================================*/
Skit.prototype.moveYSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var duration = args[4];
var relative = args[5];
var easeType = args[6];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.moveYPosition(wait,easeType,position,duration,relative);
}
}
};
/* jump
* [1] : name
* [2] : wait (false)
* [3] : height
* [4] : gravity
* [5] : angle
* <preset>
* 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<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
duration = actor.jump(wait,height, gravity, angle);
}
}
return duration;
};
/* step
* [1] : name
* [2] : wait (false)
* [3] : position
* [4] : speed
* [5] : height
* [6] : gravity
* [7] : relative
* [8] : easeType
===================================*/
Skit.prototype.stepSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var speed = args[4];
var height = args[5];
var gravity = args[6];
var relative = args[7];
var easeType = args[8];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.stepMove(wait,easeType,position,speed,height,gravity,relative);
}
}
};
/* shake
* [1] : name
* [2] : wait (false)
* [3] : strength
* [4] : count
* [5] : speedDur
* [6] : reverse (逆方向からスタート)
* [7] : easeType
===================================*/
Skit.prototype.shakeSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var strength = args[3];
var count = args[4];
var speedDur = args[5];
var reverse = args[6];
var easeType = args[7];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.shake(wait,easeType,strength,speedDur,count,reverse);
}
}
};
/* flip
* [1] : name
* [2] : wait (false)
* [3] : num
* [4] : durationPerCount
* [5] : easeType
===================================*/
Skit.prototype.flipSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var num = args[3];
var durationPerCount = args[4];
var easeType = args[5];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.flip(wait,easeType,num,durationPerCount);
}
}
};
/* angle
* [1] : name
* [2] : wait
* [3] : angle
* [4] : duration
* [5] : relative
* [6] : easeType
===================================*/
Skit.prototype.changeAngleSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var angle = args[3];
var duration = args[4];
var relative = args[5];
var easeType = args[6];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.changeAngle(wait,easeType,angle,duration,relative);
}
}
};
/* changeExpression
* [1] : name
* [2] : wait (false)
* [3] : expression
* [4] : duration
===================================*/
Skit.prototype.changeSkitActorExpression = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var expression = args[3];
var duration = args[4];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.changeExpression(wait,expression,duration);
}
}
};
/* changePose
* [1] : name
* [2] : wait (false)
* [3] : pose
* [4] : expression
* [5] : style (flip)
* [6] : duration
* [7] : easeType
===================================*/
Skit.prototype.changeSkitActorPose = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var pose = args[3];
var expression = args[4];
var style = args[5];
var duration = args[6];
var easeType = args[7];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor){
actor.changePose(wait,easeType,pose,expression,duration,style);
}
}
};
/* changeScale
* [1] : name
* [2] : wait (false)
* [3] : scaleX
* [4] : scaleY
* [5] : duration
* [6] : relative(false)
* [7] : easeType
===================================*/
Skit.prototype.changeScaleSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var scaleX = args[3];
var scaleY = args[4];
var duration = args[5];
var relative = args[6];
var easeType = args[7];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.changeScale(wait,easeType,duration,scaleX,scaleY,relative);
}
};
/* changeOpacity
* [1] : name
* [2] : wait (false)
* [3] : opacity
* [4] : duration
* [5] : relative(false)
* [6] : easeType
===================================*/
Skit.prototype.changeOpacitySkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var opacity = args[3];
var duration = args[4];
var relative = args[5];
var easeType = args[6];
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.changeOpacity(wait,easeType,opacity,duration,relative);
}
};
/* changeTint
* [1] : name
* [2] : wait (false)
* [3] : r
* [4] : g
* [5] : b
* [6] : gray
* [7] : duration
===================================*/
Skit.prototype.changeTintSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var length = actors.length;
var wait = args[2];
var r = args[3];
var g = args[4];
var b = args[5];
var gray = args[6];
var duration = args[7];
var tone = parameters.tint.tone.concat();
if(!isNaN(r)){
tone[0] = Number(r);
}
if(!isNaN(g)){
tone[1] = Number(g);
}
if(!isNaN(b)){
tone[2] = Number(b);
}
if(!isNaN(gray)){
tone[3] = Number(gray);
}
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.changeTone(wait,tone,duration);
}
};
/* setAutoFocus
* [1] : autoFocusFlag(true)
===================================*/
Skit.prototype.setAutoFocus = function(args,macroPos){
var autoFocus = args[1];
this._autoFocus = TRP_CORE.supplementDefBool(true,autoFocus);
};
/* focus
* [1] : name   ('reset' => 全て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<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.playAnimation(wait,animation,mirror);
if(focus){
this.processFocusSkitActor(TRP_CORE.NO_WAIT,name,false);
}
}
};
/* emphasize
* [1] : name
* [2] : wait (false)
* [3] : duration
* [4] : scaleX
* [5] : scaleY
* [6] : num
* [7] : interval
* [8] : r
* [9] : g
* [10] : b
* [11] : a
* [12] : easeType
===================================*/
Skit.prototype.emphasizeSkitActor = function(args,macroPos){
var name = args[1];
var actors = this.actorsForShowingActors(name);
var length = actors.length;
var wait = args[2];
var duration = args[3];
var scaleX = args[4];
var scaleY = args[5];
var num = args[6];
var interval = args[7];
var r = args[8];
var g = args[9];
var b = args[10];
var a = args[11];
var easeType = args[12];
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.emphasize(wait,easeType,duration,scaleX,scaleY,num,interval,r,g,b,a);
}
};
/* bringToFront
* [1] : name
===================================*/
Skit.prototype.bringSkitActorToFront = function(args,macroPos){
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
this.processBringActorToFront(actor);
};
/* wait
* [1] : name
* [2] : frame
===================================*/
Skit.prototype.waitSkitActor = function(args,macroPos){
if(args[1]==='all'||args[1]==='全員'||!args[1]){
args.shift();
}else if(args[1]===''){
args[1] = this.names()[0];
}
if(isNaN(args[1])){
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
var frame = TRP_CORE.supplementDefNum(30,args[2]);
actor.wait(frame)
}else{
var frame = TRP_CORE.supplementDefNum(30,args[1]);
this.wait(frame);
}
};
/* playSequence
* [1] : name
* [2] : wait
* [3] : position
* [4]~: macroNames
===================================*/
Skit.prototype.playSequence = function(args,macroPos){
args = args.concat();
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait = args[2];
var position = TRP_CORE.supplementDef(args[3],macroPos);
var macroNames = args.slice(4);
if(macroNames.length===1 && macroNames[0].contains(',')){
macroNames = macroNames[0].split(',');
}
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.playSequence(wait,position,macroNames.concat());
}
};
/* playLoop
* [1] : name
* [2] : wait (dummy)
* [3] : position
* [4]~: macroNames
===================================*/
var CLEAR_LOOP_ARGS = ['stop','clear','ストップ','クリアー','クリア'];
Skit.prototype.playLoop = function(args,macroPos){
args = args.concat();
var name = args[1];
var actors = this.actorsForShowingActors(name);
var wait;
var length = actors.length;
if(CLEAR_LOOP_ARGS.contains(args[3])){
wait = args[2];
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.stopLoop(wait,TRP_CORE.supplementDefBool(false,args[4]));
}
}else{
wait = false;
var position = TRP_CORE.supplementDef(args[3],macroPos);
var macroNames = args.slice(4);
if(macroNames.length===1 && macroNames[0].contains(',')){
macroNames = macroNames[0].split(',');
}
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(!actor)continue;
actor.playSequence(wait,position,macroNames.concat(),true);
}
}
};
/* registerMobName
* [1] : name
===================================*/
Skit.prototype.registerSkitMobName = function(args,macroPos){
var name = args[1];
this.registerMobName(name);
};
/* setDisplayNameWithSkitActor
* [1] : charaName
* [2] : wait(dummy)
* [3] : dispName
===================================*/
Skit.prototype.setDisplayNameWithSkitActor = function(args,macroPos){
var name = args[1];
var actor = this.actor(name);
if(!actor){return;}
var dispName = args[3];
actor.setTempDisplayName(dispName);
};
/* setAutoMode
* [1] : flag(true)
===================================*/
Skit.prototype.setAutoMode = function(args,macroPos){
this._autoModeDisabled = !TRP_CORE.supplementDefBool(true,args[1]);
};
//=============================================================================
// Skit => 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; i<length; i=(i+1)|0){
var actor = actors[i];
actor.update();
}
if(this.isAutoMode() && this.isSkitOn() && !this._waitAfterClear){
if($gameParty.inBattle()){
if(!$gameTroop.isEventRunning()){
this.end();
}
}else{
if(!$gameMap.isEventRunning()){
this.end();
}
}
}
};
Skit.prototype.onBattleStart = function(){
if(this.isAutoMode() && !this.isSkitOn() && !this._waitAfterClear){
this.end(true);
}
};
/* clearActors
===================================*/
Skit.prototype.processClearActors = function(wait){
var actors = this.actors();
var disappearCommand = parameters.defaultDisappear || 0;
actors.forEach(function(actor){
if(disappearCommand === 1){
actor.moveOut(wait);
}else if(disappearCommand === 2){
actor.slideOut(wait);
}else{
actor.fadeOut(wait);
}
});
};
/* pushOut
===================================*/
Skit.prototype.pushOutActorsAroundActor = function(target){
var margin = parameters.pushInMargin||2;
var position = target._position;
var easeType = TRP_CORE.EASING.easeInOutQuad;
var speed = parameters.pushInSpeed||5;
var actors = this.actors();
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor === target)continue;
if(!actor._showing)continue;
var diffPos = actor._position-position;
var absDiff = Math.abs(diffPos);
if(absDiff<margin){
var sign = (diffPos>0 ? 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);
}
}
};
/* focus
===================================*/
Skit.prototype.processFocusSkitActor = function(wait,target,onlyFlag){
onlyFlag = TRP_CORE.supplementDefBool(true,onlyFlag);
var focusTargets;
var length,i;
switch(target){
case 'all':
case '全員':
case 'reset':
case undefined:
focusTargets = this.actors();
break;
default:
var targetActor = this.actor(target);
if(targetActor){
this.processBringActorToFront(targetActor);
focusTargets = [targetActor];
}else{
focusTargets = [];
}
if(onlyFlag){
var actors = this.actors();
length = actors.length;
for(i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor!==targetActor){
actor.unFocus(false);
}
}
}
break;
}
length = focusTargets.length;
for(i = 0; i<length; i=(i+1)|0){
focusTargets[i].focus(wait);
}
};
Skit.prototype.onTalk = function(target){
if((!this._isSkitOn||this._waitAfterClear) && this.isAutoMode()){
this.start();
}
if(this._autoFocus){
var onlyFlag = true;
var wait = true;
this.processFocusSkitActor(wait,target,onlyFlag);
}
//auto show
var noWait = true;
if(this.isAutoMode()){
var actor = this.actor(target);
if(actor && !actor._showing){
noWait = this.autoShowSkitActor(actor);
}
//update talkActors orders
TRP_CORE.removeArrayObject(this._talkActorOrders,target);
this._talkActorOrders.push(target);
}
return noWait;
};
/* swap order
===================================*/
Skit.prototype.processBringActorToFront = function(target){
var targetId = target._pictureId;
var actors = this.actors();
var length = actors.length;
var hasMaxZOrder = false;
var i,actor;
for(i = 0; i<length; i=(i+1)|0){
actor = actors[i];
var pictureId = actor._pictureId;
if(actor === target){
actor.setZOrderMax();
}else{
hasMaxZOrder = hasMaxZOrder||actor.isMaxZOrder();
}
}
if(hasMaxZOrder){
for(i = 0; i<length; i=(i+1)|0){
actor = actors[i];
if(actor !== target){
actor.reduceZOrder();
}
}
}
};
/* wait
===================================*/
Skit.prototype.isBusy = function(){
if(this._waitCount){return true;}
return this.isAnyActorBusy();
};
Skit.prototype.isAnyActorBusy = function(){
var actors = this.actors();
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor.isBusy()){return true;}
}
return false;
};
Skit.prototype.wait = function(wait){
this._waitCount = Math.max(wait,this._waitCount);
};
/* mob
===================================*/
Skit.prototype.registerMobName = function(name){
this._mobNames.push(name);
};
Skit.prototype.mobNames = function(){
return parameters.mobNames.concat(this._mobNames);
};
/* helper
===================================*/
Skit.prototype.isSkitOn = function(){
return this._isSkitOn || this._tempOn;
};
Skit.prototype.actors = function(){
var names = this.names();
var ret = [];
var length = names.length;
for(var i = 0; i<length; i=(i+1)|0){
ret.push(this.actor(names[i]));
}
return ret;
};
Skit.prototype.actorFolderName = function(name){
if(parameters.dataActors[name]){
return name;
}else{
if(parameters.nameToInputList[name] &&
parameters.dataActors[parameters.nameToInputList[name]])
{
return parameters.nameToInputList[name]||null;
}
}
return null;
};
Skit.prototype.actor = function(name){
var actor = null;
if(!parameters.dataActors[name]){
if(parameters.nameToInputList[name] &&
parameters.dataActors[parameters.nameToInputList[name]])
{
name = parameters.nameToInputList[name];
}
}
if(this.names().contains(name)){
actor = this._skitActors[name];
}else if(parameters.dataActors[name]){
//CAUTION: mobキャラにもpictureIdが割り振られる(pictureは生成されない)
var pictureId = this.nextPictureId();
var diffY = 0;
actor = new SkitActor(name,pictureId,diffY);
this._skitActors[name] = actor;
}
return actor;
};
Skit.prototype.showingActors = function(){
var ret = [];
var actors = this.actors();
var length = actors.length;
for(var i = 0; i<length; i=(i+1)|0){
var actor = actors[i];
if(actor.isShowing()){
ret.push(actor);
}
}
return ret;
};
Skit.prototype.names = function(){
return Object.keys(this._skitActors);
};
Skit.prototype.actorNameWithInputName = function(inputName){
var name;
if(name = parameters.nameToInputList[inputName])return name;
if(name = this._mobNames.contains(inputName))return inputName;
return null;
};
Skit.prototype.nextPictureId = function(){
var i,id,actor;
var actors = this.actors();
var length = actors.length;
var usingIds = {};
var releasableIds = {};
for(i = 0; i<length; i=(i+1)|0){
actor = actors[i];
id = actor.pictureId();
if(id){
usingIds[id] = i;
if(!actor.isShowing()){
releasableIds[id] = i;
}
}
}
var firstId = parameters.firstPictureId;
var lastId = parameters.lastPictureId;
var ret = null;
for(id=firstId; id<=lastId; id=(id+1)|0){
if(usingIds[id]===undefined){
ret = id;
break;
}
}
if(ret===null){
for(id=firstId; id<=lastId; id=(id+1)|0){
if(releasableIds[id]!==undefined){
ret = id;
actor = actors[releasableIds[id]];
actor.clearPictureId();
}
}
}
return ret;
};
Skit.prototype.defaultPositionY = function(){
var y = parameters.baseOffsetY;
if(parameters.verticalPositionType===0){
var messageWindow = SceneManager._scene._messageWindow;
y += messageWindow ? messageWindow.height : 0;
}
return y;
};
Skit.prototype.actorsForShowingActors = function(name){
var actors;
if(name === 'all' || name === '全員'){
actors = this.showingActors();
}else if(name === ''){
var actor = this.actor(this.names()[0]);
if(actor){
actors = [actor];
}else{
actors = [];
}
}else{
var actor = this.actor(name);
if(actor){
actors = [actor];
}else{
actors = [];
}
}
return actors;
};
/* auto mode
===================================*/
Skit.prototype.isAutoMode = function(){
return !this._autoModeDisabled;
};
Skit.prototype.setTempOn = function(on){
this._tempOn = on;
};
//return noWait
Skit.prototype.autoShowSkitActor = function(targetActor){
var positions = parameters.autoModePositions||['left','right'];
var actors = this.actors();
var actorLen = actors.length;
var showCommand = parameters.defaultShowCommand;
var waitCount = 0;
if(actorLen===0 || actorLen===1&&actors[0]===targetActor){
//show actor if there is no actor
waitCount = targetActor.showWithMode(showCommand,true,positions[0]);
}else{
//remove not showing actors
var length = actors.length;
for(var i=length-1; 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; i<length; i=(i+1)|0){
var position = positions[i];
if(candidates[position])continue
var posValue = TRP_CORE.interpretPositionArg(position);
var posInfo = [];
candidates[position] = posInfo;
for(var j=0; j<actorLen; j=(j+1)|0){
var actor = actors[j];
var dist = Math.abs(posValue - actor._position);
var info = [];
info[infoIdxOfActorIdx] = j;
info[infoIdxOfDist] = dist;
posInfo.push(info);
}
posInfo.sort(function(a,b){
return a[1]-b[1];
});
}
//check using positions
positions = positions.concat();
var uniquePositions = Object.keys(candidates);
while(positions.length>1 && 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; j<infoLen; j=(j+1)|0){
var info = posInfo[j];
if(info[infoIdxOfActorIdx] === mostFitActorIdx){
posInfo.splice(j,1);
break;
}
}
}
}
return positions[0];
}
//=============================================================================
// SkitActor
//=============================================================================
SkitActor.prototype.initialize = function(name,pictureId){
this._name = name;
this._pictureId = null;
this._battlePictureId = null;
this.setPictureId(pictureId);
this.clearTimerCommands();
this.clearParameters();
};
SkitActor.prototype.clearParameters = function(){
this._offsetY = 0;
this._opacity = -1;
this._scaleX = 100;
this._scaleY = 100;
this._baseScale = 1;
this._position = 1;
this._xAngle = 0;
this._angle = 0;
this._z = 5;
this._previousJumpDuration = 0;
this._pose = 'normal';
this._expression = this.defaultExpression();
this._showing = false;
this._focusState = Skit.FOCUS_STATE_NONE;
this._waitingSequences = [];
this._playingSequences = [];
this._waitCount = 0;
};
SkitActor.prototype.setTempDisplayName = function(displayName){
this._tempDisplayName = displayName;
};
SkitActor.prototype.displayName = function(){
if(this._tempDisplayName){
return this._tempDisplayName;
}else{
var data = this.data();
if(data){
return data.name||'';
}else{
return '';
}
}
};
SkitActor.prototype.changePictureId = function(pictureId){
this._pictureId = pictureId;
};
/* update
===================================*/
SkitActor.prototype.update = function(){
// if(this._isMob)return;
if(this._waitCount>0){
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;
if(command.code!==101 && command.code!==401){
listIdx += 1;
command = interpreter._list[listIdx];
if(command.code!==101){
return;
}
listIdx += 1;
}
var name,line;
if(parameters.useNameBox){
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);
};
/* 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();
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();
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();
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(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();
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();
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];
}
this.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(/<frames:([0-9]+)?>/);
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('<noMirror>'))){
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();
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();
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();
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){
comands.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<length; i=(i+1)|0){
var timerCommand = timerCommands[i];
timerCommand.duration -= 1;
if(timerCommand.duration <= 0){
var command = timerCommand.command;
var args = timerCommand.args;
if(this[command]){
this[command].apply(this,args);
}
}else{
existTimerCommands.push(timerCommand);
}
}
this._timerCommands = existTimerCommands;
};
/* sequence
===================================*/
const LOOP_ARG = '__LOOP';
SkitActor.prototype.playSequence = function(wait,position,macroCommands,loop){
wait = TRP_CORE.supplementSkitWait(false,wait);
if(typeof macroCommands === 'string'){
macroCommands = macroCommands.split(',');
}
if(macroCommands.length<=0){return;}
loop = loop||false;
if(loop){
macroCommands.push(LOOP_ARG);
}
var sequence = {
macroCommands:macroCommands,
waitCount:0,
position:position,
loop:loop
};
if(wait){
this.pushWaitingSequence(sequence);
}
this.processSequence(sequence);
};
SkitActor.prototype.stopLoop = function(wait,quit){
wait = TRP_CORE.supplementSkitWait(true,wait);
var sequences = this._waitingSequences;
var length = sequences.length;
for(var i = length-1; 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&&macroCommand===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);
};
/* 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;
}
this.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();
//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()){
//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<elemLen; i=(i+1)|0){
this.convertSkitOverlayPartsId(ret,overlayNames[i]);
}
}
return ret;
}else{
return [overlayName];
}
}
var data = $dataTrpSkit[actorName];
if(!data)return null;
var poseData = data.poses[poseName];
if(!poseData)return null;
var exps = poseData.expressions;
var overlayId;
var overlayNames;
if(!overlayName){
overlayId = 0;
}else{
overlayNames = overlayName.split('-');
overlayId = overlayNames[0];
}
var expression = exps[overlayId];
if(!expression){
expression = exps[0];
}
var ret;
if(Array.isArray(expression)){
ret = expression.concat();
}else if(typeof expression==='string'){
ret = expression.split(' ');
}else if(!isNaN(expression)){
ret = [expression];
}
if(overlayNames){
var elemLen = overlayNames.length;
for(var i=1; i<elemLen; i=(i+1)|0){
this.convertSkitOverlayPartsId(ret,overlayNames[i],poseData,exps);
}
}
return ret;
};
Sprite_Picture.convertSkitOverlayPartsId = function(ret,elem,poseData,exps){
if(elem[0]==='p'){
var separatorIdx = elem.indexOf(':');
var partsKind = Number(elem.substring(1,separatorIdx))-1;
var partsId = elem.substring(separatorIdx+1)
if(partsId[0]==='e'){
partsId = exps[Number(partsId.substring(1))].split(' ')[partsKind];
}
ret[partsKind] = partsId;
}
};
Sprite_Picture.prototype.updateOverlay = function(){
//overlay
var picture = this.picture();
var overlays = this._overlays;
if(!picture){
this.removeAllOverlays();
}else if(this._skitActorName){
if(picture._overlayName !== this._overlayName){
this.changeOverlay(picture);
}
}
//update overlay sprites
var length = overlays.length;
for(var i = length-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<length; i=(i+1)|0){
var overlay = overlays[i];
if(!overlay)continue;
if(overlay.isTypeSame(partsKind,partsId)){
overlays.splice(i,1);
return overlay;
}
}
return null;
};
Sprite_Picture.prototype.changeOverlay = function(picture){
this._overlayName = picture._overlayName;
var duration = picture._overlayDuration;
var overlays = this._overlays;
var currents = this._currentOverlays;
var nexts = [];
this._currentOverlays = nexts;
var paramUseMultiLayer = this.useMultiLayer(picture);
var partsIds = this.overlayPartsIds(paramUseMultiLayer);
var length = partsIds.length;
var actorName = this._skitActorName;
var poseName = this._pictureName;
var useSpritesheets = parameters.useSpritesheets;
for(var kind = length-1; kind>=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; j<length; j=(j+1)|0){
var child = children[j];
if(zOrder>child.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; i<length; i=(i+1)|0){
var overlay = overlays[i];
if(!overlay)continue;
if(overlay._fadeOutDuration>0)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<length; i=(i+1)|0){
var overlay = overlays[i];
if(overlay && overlay.bitmap.isReady() && overlay.isSingleLayer()){
overlay.anchor.y = 0;
overlay.y = -this.bitmap.height*this.anchor.y;
overlay.visible = true;
}
}
};
Sprite_Picture.prototype.removeAllOverlays = function(){
var overlays = this._overlays;
var length = overlays.length;
for(var i = length-1; 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 picture = this.picture();
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; i<length; i=(i+1)|0){
var originalOverlay = overlays[i];
if(!originalOverlay){
continue;
}
var overlay = this.copySprite(originalOverlay);
overlay.anchor.y = 0;
overlay.y = -this.height*this.anchor.y;
this.addChild(overlay);
}
};
Sprite_SkitEmphasis.prototype.initMembers = function(){
this._emphasisDuration = 0;
this._emphasisTotalDuration = 0;
this._deltaScaleX = 0;
this._deltaScaleY = 0;
this._startScaleX = 0;
this._startScaleY = 0;
this._deltaOpacity = 0;
this._startOpacity = 0;
};
Sprite_SkitEmphasis.prototype.copySprite = function(original,target=new Sprite()){
target.bitmap = original.bitmap;
target.setFrame(original._frame.x,original._frame.y,original._frame.width,original._frame.height);
target.anchor.set(original.anchor.x,original.anchor.y);
target.scale.set(original.scale.x,original.scale.y);
target.x = original.x;
target.y = original.y;
target.rotation = original.rotation;
target.opacity = original.opacity;
if(parameters.useSpritesheets && original.texture.trim){
target.texture.trim = original.texture.trim;
target.texture.orig = original.texture.orig;
target.texture._rotate = original.texture._rotate;
target.texture.frame = original.texture.frame.clone();
target._frame = target.texture.frame.clone();
}
return target;
};
Sprite_SkitEmphasis.prototype.setup = function(duration,scaleX,scaleY,tone,easeType){
var startScale = 1;
if(tone){
this.setColorTone(tone);
}
this._emphasisDuration = duration;
this._emphasisTotalDuration = duration;
this._deltaScaleX = TRP_CORE.supplementDefNum(1.2,scaleX)-startScale;
this._deltaScaleY = TRP_CORE.supplementDefNum(this._deltaScaleX+startScale,scaleY)-startScale;
this._startScaleX = startScale;
this._startScaleY = startScale;
this._deltaOpacity = 0-this.opacity;
this._startOpacity = this.opacity;
this._easeType = easeType;
};
Sprite_SkitEmphasis.prototype.updateAnimation = function(){
this._emphasisDuration -= 1;
var ed = this._emphasisDuration;
if(ed <= 0){
this.destroy();
return false;
}else{
var easeType = this._easeType;
var td = this._emphasisTotalDuration;
var t = td-ed;
this.opacity = TRP_CORE.easingValue(t,this._startOpacity,this._deltaOpacity,td,easeType);
this.scale.x = TRP_CORE.easingValue(t,this._startScaleX,this._deltaScaleX,td,easeType);
this.scale.y = TRP_CORE.easingValue(t,this._startScaleY,this._deltaScaleY,td,easeType);
return true;
}
}
//=============================================================================
// Sprite_SkitOverlay
//=============================================================================
Sprite_Picture.Sprite_SkitOverlay = function Sprite_SkitOverlay(){
this.initialize.apply(this, arguments);
};
var Sprite_SkitOverlay = Sprite_Picture.Sprite_SkitOverlay;
Sprite_SkitOverlay._cache = [];
Sprite_SkitOverlay.get = function(){
var instance = this._cache.pop();
if(!instance){
instance = new Sprite_SkitOverlay();
}else{
instance.texture = new PIXI.Texture(Sprite._emptyBaseTexture, new Rectangle());
instance._frame = new Rectangle();
}
return instance;
};
Sprite_SkitOverlay.cache = function(sprite){
sprite.bitmap = null;
sprite.clear();
this._cache.push(sprite);
sprite.texture.destroy();
sprite.texture = null;
};
Sprite_SkitOverlay.prototype = Object.create(Sprite.prototype);
Sprite_SkitOverlay.prototype.constructor = Sprite_SkitOverlay;
Sprite_SkitOverlay.prototype.initialize = function() {
Sprite.prototype.initialize.call(this);
this.clear();
};
Sprite_SkitOverlay.prototype.clear = function(){
this.x = this.y = 0;
this.actorName = '';
this.poseName = '';
this.partsKind = 0;
this.partsId = '';
this.expName = '';
this._exPartsKind = '';
this._exPartsSubType = '';
this._useSpriteSheet = false;
this._fadeSpeed = 0;
this._fadeInDuration = 0;
this._fadeOutDuration = 0;
};
Sprite_SkitOverlay.prototype.zOrder = function(){
return this.partsKind;
};
Sprite_SkitOverlay.prototype.isTypeSame = function(partsKind,partsId){
return this.partsKind===partsKind;
};
Sprite_SkitOverlay.prototype.equalsMultiLayer = function(actorName,poseName,partsKind,partsId){
return this.actorName===actorName
&& this.poseName===poseName
&& this.partsKind===partsKind
&& this.partsId===partsId;
};
Sprite_SkitOverlay.prototype.equalsSingleLayer = function(actorName,poseName,expName){
return this.actorName===actorName
&& this.poseName===poseName
&& this.expName===expName;
};
Sprite_SkitOverlay.prototype._setupCommon = function(sprite,actorName,poseName){
this.clear();
this.anchor.x = sprite.anchor.x;
this.anchor.y = sprite.anchor.y;
this.visible = false;
this.actorName = actorName;
this.poseName = poseName;
};
Sprite_SkitOverlay.prototype.setupForExOverlay = function(partsId){
return partsId;
};
Sprite_SkitOverlay.prototype.setupMultiLayer = function(useSpritesheets,actorName,poseName,partsKind,partsId,sprite){
this._setupCommon(sprite,actorName,poseName);
partsId = this.setupForExOverlay(partsId);
this.partsKind = partsKind;
this.partsId = partsId;
if(!isNaN(partsId) && Number(partsId)<0){
this.bitmap = null;
return;
}
this.loadBitmapForMultiLayer(useSpritesheets,actorName,poseName,partsKind,partsId);
};
Sprite_SkitOverlay.prototype.loadBitmapForMultiLayer = function(useSpritesheets,actorName,poseName,partsKind,partsId){
var imageName = poseName + '_' + (partsKind+1) + '_' + partsId;
if(useSpritesheets){
imageName += '.png';
var file = actorName+'_'+poseName;
this.bitmap = ImageManager.loadBust(actorName,file);
this.setupWithSheet(file,imageName,this.bitmap);
}else{
var imageName = poseName + '_' + (partsKind+1) + '_' + partsId ;
this.bitmap = ImageManager.loadBust(actorName,imageName);
}
};
Sprite_SkitOverlay.prototype.isSingleLayer = function(){
return !!this.expName;
};
Sprite_SkitOverlay.prototype.setupSingleLayer = function(actorName,poseName,expName,sprite){
this._setupCommon(sprite,actorName,poseName);
expName = this.setupForExOverlay(expName);
this.expName = expName;
this.loadBitmapForSingleLayer(actorName,poseName,expName);
};
Sprite_SkitOverlay.prototype.loadBitmapForSingleLayer = function(actorName,poseName,expName){
var imageName = poseName + '_' + expName;
this.bitmap = ImageManager.loadBust(actorName,imageName);
};
Sprite_SkitOverlay.prototype.show = function(){
this.visible = true;
this.opacity = 255;
this._fadeSpeed = 0;
this._fadeInDuration = 0;
this._fadeOutDuration = 0;
};
Sprite_SkitOverlay.prototype.startFadeIn = function(duration){
if(duration===0){
this.show();
return;
}
this.visible = true;
this.opacity = 0;
this._fadeSpeed = 255/duration;;
this._fadeInDuration = duration;
this._fadeOutDuration = 0;
};
Sprite_SkitOverlay.prototype.startFadeOut = function(duration){
this._fadeSpeed = -this.opacity/duration;;
this._fadeOutDuration = duration;
this._fadeInDuration = 0;
if(duration===0){
this.visible = false;
}
};
Sprite_SkitOverlay.prototype.updateFade = function(){
if(this._fadeInDuration>0){
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<length; i=(i+1)|0){
if(sprites[i].z !== zCache[i]){
zChanged = true;
break;
}
}
}
if(zChanged){
sprites = sprites.sort(this._compareChildOrder.bind(this));
if(zCache){
zCache.length = 0;
}else{
zCache = [];
}
for(i = 0; i<length; i=(i+1)|0){
zCache[i] = sprites[i].z;
}
this._bustPictureSpritesZCache = zCache;
}
};
Spriteset_Base.prototype.releaseBustPictureContainer = function(){
var container = this._bustPictureContainer;
if(container && container.parent){
container.parent.removeChild(container);
}
this._bustPictureContainer = null;
};
Spriteset_Base.prototype.bustPictureContainer = function(){
return this._bustPictureContainer;
};
Spriteset_Base.prototype.bustPictureBaseContainer = function(){
return this._bustPictureEffectsContainer
};
Spriteset_Base.prototype.needsBustPictureAddToScene = function(){
return this._bustPictureZOrder === 0;
};
/* animation
===================================*/
Spriteset_Base.prototype.findBustPictureTargetSprite = function(target){
if(this._bustPictureContainer){
return this._bustPictureContainer.children.find(sprite => 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<length; i=(i+1)|0){
list.push({
code:401,
indent:0,
parameters:[texts[i]]
});
}
};
//skit
pushText(list,['動作名とコマンド表示のあとに、動作を行います。']);
pushText(list,['←フェードイン','「SKIT フェードイン yuna t 左」']);
pushCommand(list,'skit fadeIn yuna t left');
pushText(list,['←スライドイン(登場位置がかぶるときはキャラを押し避ける)','「SKIT スライドイン shizu t 左」']);
pushCommand(list,'skit slidein shizu t left');
pushText(list,['反転→','「SKIT 反転 yuna t 4」']);
pushCommand(list,'skit flip yuna t 4');
pushText(list,['ジャンプ→','「SKIT ジャンプ yuna t」']);
pushCommand(list,'skit jump yuna t');
pushText(list,['←反転しつつ移動','「SKIT 反転 shizu f 1」','「SKIT 移動 shizu t 右」']);
pushCommand(list,'skit move shizu f right');
pushCommand(list,'skit flip shizu t');
pushText(list,['←ステップ','「SKIT ステップ yuna t 中央」']);
pushCommand(list,'skit step yuna t center');
pushText(list,['←強調', '「SKIT 強調 yuna t」']);
pushCommand(list,'skit emphasize yuna t');
pushText(list,['←シェイク', '「SKIT シェイク yuna t」']);
pushCommand(list,'skit shake yuna t');
pushText(list,['アニメーション→','「SKIT アニメーション shizu f 1」']);
pushCommand(list,'skit animation shizu f 1');
pushText(list,['回転→', '「SKIT 回転 shizu t 360」']);
pushCommand(list,'skit rotate shizu t 360');
pushText(list,['表情→', '「SKIT 表情 shizu t 2」']);
pushCommand(list,'skit expression shizu t 2');
pushText(list,['←ポーズ', '「SKIT ポーズ yuna t bend 3」']);
pushCommand(list,'skit pose yuna t bend 3');
pushText(list,['会話キャラの名前を検出して自動フォーカス','(話していないキャラが縮小&暗く)'],'ユナ');
pushText(list,['会話中の制御文字のテスト。\\!','\\SE[5]\\\\SE[5]表情変更\\!','\\SM[jump]\\\\SM[jump]ジャンプモーション'],'ユナ');
pushText(list,['\\SP[depressed]\\\\SP[depressed]ポーズ変更\\!','\\SA[1]\\\\SA[1]アニメーション\\!','\\SM[pop]\\\\SM[pop]登録マクロ~ポップジャンプ'],'シズ');
pushText(list,['以上、正しく表示されていれば、','プラグインが動作する可能性が高いです。']);
pushCommand(list,'skit end');
//end
list.push({
code:0,indent:0,parameters:[]
});
this.setup(list,this._eventId);
this._index = -1;
};
})();