トピック件名にて上手く伝えられているか不安なところがございますが、以下のようなことが可能なのかどうかお知恵を拝借したく投稿をいたしました。
現在、姫HimeWorks様が提供されているプラグイン「Placeholder States」を利用してゲームの制作を進めております。
[参考URL]
姫HimeWorks様のHPはこちら
ムノクラ様の日本語版はこちら
本プラグインの機能を端的にご説明いたしますと、ステートのメモ欄にJavaScriptによる式を記載することで、その条件に合致したステートを付与できる…といったもので、付与する条件を細かく設定できるプラグインといったイメージです。
その他のプラグインと組み合わせることで可能性が大きく広がる、大変自由度の高いプラグインだと感じて重宝しているのですが、その条件式を記述する際に、何度も同じスクリプトを呪文のように記述するのはなかなかに骨の折れる作業であり、加えて条件式を増やすに連れて可読性や保守性の低下も感じています。
特に、現在構想中のゲームでは大量のステートを裏パラメータ的に使用する予定のため、一つのメモ欄に記載する条件式がしばしば非常に長大なものになってしまいます。
簡略化したイメージ例としてはこのような感じです。
コード: 全て選択
<placeholder state>
if ($gameVariables.value(1)==1) {
1;
} else if ($gameVariables.value(1)==2) {
2;
} else if ($gameVariables.value(1)==3) {
3;
} else if ($gameVariables.value(1)==4) {
4;
}
</placeholder state>
もちろん、実際には&&や||などで条件式が複雑だったり、変数に加えてスイッチなど別の関数を使っていたり、分岐先が4つではなく100とか200とかだったりといった具合です……。
トリアコンタン様のデータベースコンバータをお借りしてツクール上ではなくExcel上で書いているため、関数やVBAなどを使いある程度の効率化やヒューマンエラーに対するフォローは出来ているのですが、それでもやはり結構な手間がかかります。
こういった際に、一種の自作関数のように(例えばVar(1,2)で$gameVariables.value(1)==2を意味するような風に)短く書けたり、あるいはせめて$gameVariables.value(1)==2を$gV.v(1)==2のように短く書けるだけでも、少しは書いたり読んだりするのが楽になるのになぁ…とふと思いました。
ただ、こうした事ができるのか、できるとしてどうすれば良いのか、その辺りの知識が全く足りていない状況です。
過去のトピックを拝見いたしますと、こちらが比較的内容に近いように思ったのですが、拝読しても今ひとつピンと来ておらず、恥ずかしながら自力では正解にたどり着けておりません。
勉強不足で大変恐縮ではございますが、もしご存知の方や知見をお持ちの方がいらっしゃいましたら、ご教授・ご助言等頂けますと大変うれしく思います。
よろしくお願いいたします。