プラグインによっては、変数がそのままでは使用できないプラグインコマンドになっているものがあります。
こちらをスクリプトでプラグインコマンドを実行することで、変数を使用する方法をご紹介します。
実例があると分かりやすいので、今回は下記の2つのプラグインを組み合わせて、パーティ内のアクターから誰かを選び、その姿を指定したものに変更するイベントを作成します。
使用プラグイン
▼ アクターを選ぶための選択肢(KPoal様作)
plugin.fungamemake.com/archives/16362
条件を満たすアクターのみで選択肢を作り、選択されたアクターのアクターIDを変数に取得する
▼ アクターの画像を一括して変更(ツミオ様作)
plugin.fungamemake.com/archives/19344
アクターの画像を変えます
画像が予め必要ですが、新規プロジェクトに入っているもので済ませられる範囲のものを作成します。
プラグインの設定
アクターを選ぶための選択肢 ChoiceActors プラグインは、パーティに入っているアクターの選択肢リストを自動作成し、選択したアクターIDを変数に代入します。
予めプラグインパラメーターで変数ID8(選択アクター)に代入されるように指定します。
アクターの画像を一括して変更 ChangeActorImageSystem プラグインはデフォルトの設定のままです。
マップイベント作成
以下のマップイベントを作成します。
◆文章:なし, ウィンドウ, 下 :文章:こちらでは、姿を変えられます。 :文章:どなたの姿を変えますか? ◆プラグインコマンド:ChoiceActors cancelchoice ◆プラグインコマンド:ChoiceActors all ◆条件分岐:選択アクター ≠ 0 ◆スクリプト:var args = new Array( :スクリプト: "2", "2", String($gameVariables.value(8)) :スクリプト:); :スクリプト:this.pluginCommand("Go_ChangeActorImageSystemScene", args); ◆ :分岐終了
処理の情報の整理
ChoiceActors はアクター選択をキャンセルすると、0を代入します。
変数ID8(選択アクター)が0の時は処理をしない条件分岐を設定しています。
スクリプト:配列
最初の3行である下記は、配列(args)を設定しています。
$gameVariables.value(8) は変数ID8の値が入ります。
プラグインコマンドの配列は全てを文字列にするために、それまでの数値を""で囲い、変数を String( )で囲っています。
var args = new Array(
"2", "2", String($gameVariables.value(8))
);
スクリプト:プラグインコマンド
プラグインコマンド Go_ChangeActorImageSystemScene は下記のようにヘルプに書かれています。
例1:Go_ChangeActorImageSystemScene 30 3 1
ページ30まで表示し、Actor1からActor3まで読み込み、1番のアクターを変換させる
今回は2ページまで表示し、Actor1からActor2まで読み込み、変数ID8のアクターを変換させます。
直接プラグインコマンドを書くと「Go_ChangeActorImageSystemScene 2 2 変数8」としたいところですが、このプラグインコマンドには変数IDを指定する機能がありません。
このため、プラグインコマンドの指定値を配列としてスクリプトで収めた上で、スクリプトでプラグインコマンドを下記のように実行します。
this.pluginCommand("Go_ChangeActorImageSystemScene", args);
このような手法で、プラグインコマンドに変数が使えないプラグインでも、スクリプトを経由することで使用することが可能です。
おまけ:短縮記述
this.pluginCommand(
"Go_ChangeActorImageSystemScene", ["2", "2", String($gameVariables.value(8))]
);
と1行で書くこともできます。
コメントを投稿するにはログインしてください。