SRPG Studio ~ シミュレーションRPG作成ソフト

カスタムパラメータの使用

カスタムパラメータとは、ユーザーが独自に定義するパラメータのことです。 たとえば、「データ設定」の「クラス」で、こういったデータを設定できたら…という思いがあった場合に、 そのデータをユーザー自身が定義することができます。 例として、クラスにカスタムパラメータを設定してみましょう。

カスタムパラメータは、json形式で設定することになります。 まず、全体は{}で囲まれている必要があります。 パラメータの指定方法は、"名前:値"の形式であり、 上図の例であればcrtというパラメータに10を設定しているということになります。 パラメータを増やしたい場合は、,をつけて区切ることになります。

このようにすると、crtだけでなくdefというパラメータも設定したことになります。

上図の設定で何が起こるかというと、現時点では何も起こりません。 crtという独自のパラメータを定義しても、それをゲーム側が無条件で理解できるわけではないため、 crtというパラメータを使用して何かを行うスクリプトが必要になるのです。 今回は、下記のスクリプトを例に取り上げます。

(function() {

var alias1 = CriticalCalculator.calculateSingleCritical;
CriticalCalculator.calculateSingleCritical = function(active, passive, weapon) {
	var percent = alias1.call(this, active, passive, weapon);
	var cls = active.getClass();
	
	if (typeof cls.custom.crt !== 'number') {
		return percent;
	}
	
	if (percent < 0) {
		percent = cls.custom.crt;
	}
	else {
		percent += cls.custom.crt;
	}
	
	return percent;
};

})();
	

このスクリプトは、クラスがcrtという名前のカスタムパラメータを持つ場合に、 クリティカル率を指定分だけ上昇させます。 このようなカスタムパラメータを参照するスクリプトが存在することにより、 カスタムパラメータは初めて意味を持ちます。 なお、上記コードは公式サンプルのcustom-class.jsの中身です。

有志のスクリプトを導入するユーザーは、基本的にカスタムパラメータの設定を先に行うことはありません。 まず、導入したいスクリプトをダウンロードし、 そのスクリプトがどのようなカスタムパラメータを必要としているのを調べてから、 カスタムパラメータを設定することになるでしょう。 スクリプトの開発者は、ファイルの冒頭などに使用できるカスタムパラメータを記載するのが好ましいといえます。

スクリプトを使用する例は、カスタムパラメータ以外にもいくつか存在するため、 各種確認しておきましょう。 まず、イベントコマンドの「スクリプトの実行」を取り上げます。

「イベントコマンド呼び出し」にチェックをつければ、 オブジェクト名に独自のイベントコマンドの名前を設定できます。 既定で存在しているイベントコマンドでは、思うような動作が実現できない場合は、 こうした独自のイベントコマンドが役に立ちます。 一番下のテキスト領域にはオブジェクトに渡したいパラメータを設定でき、 これはカスタムパラメータと同じくjson形式です。 この独自のイベントコマンドは勝利条件を表示するというものであるため、 nameに指定している通り"敵の全滅"と表示されることになります。 ObjectiveEventCommandは、公式サンプルのscriptexecute-objectiveeventcommand.jsに定義されています。

イベントを実行するには、イベントが実行条件を満たしている必要がありますが、 その実行条件にスクリプトコードを指定することもできます。

OfficialEventTrigger.isWeaponAvailable(0)は、 現在アクティブであるユニットがid0の武器を装備しているかを確認します。 trueを返ればイベントの条件は満たされていることになり、イベントは実行されることになります。 OfficialEventTriggerは、公式サンプルのeventtrigger-weaponavailable.jsに定義されています。

「データ設定」の「コンフィグ」にはスクリプトというボタンがありますが、 ここでもスクリプトコードを指定することができます。

初期コードには、ゲームの初期化段階で実行したいコードを記述できます。 コードは、pluginフォルダ以下に配置するのが一般的ですが、 この場所で記述しても特に問題はありません。 上記ではScriptCall_Initializeを独自の処理に置き換えることによって、 ゲームウインドウのサイズを拡張しています。

グローバルパラメータには、特定のデータに関連されないパラメータをjson形式で定義します。 カスタムパラメータは、ユニットやクラスなど何らかのデータに関するパラメータになりますが、 グローバルパラメータはそうした枠に入らないパラメータを定義することになります。 上記ではwlvMaxに30を指定することで、熟練度という独自パラメータの上限を設定しています。 これは公式サンプルのconfig-unit.jsを考慮したものです。

システムパラメータには、environment.evsに保存可能なパラメータをjson形式で定義します。 たとえば、一度見た回想イベントはセーブファイルが一切なくなっても閲覧できたりしますが、 これはそうした記録がenvironment.evsに保存されているためです。 このように、何らからの記録を保存したい場合は、システムパラメータを使用します。 上記ではanimeIdArrayに0, 1を指定することで、id0とid1のアニメを閲覧済みにしています。 これは公式サンプルのextra-animeview.jsを考慮したものです。

目次

スクリプト・マニュアル

ヘルプ・マニュアル