【解決済】イベントの内容を外部ファイルのスクリプトで記述した関数で処理したい

gundamoe

ユーザー
はじめまして。つい先日MZを購入したツクール初心者です。
早速製作中のゲームで複雑な動作をするイベントを作成するときに、
ツクール標準のイベントの記述方法だと、とても大変に思いました。

変数の計算や条件式の評価が1つずつしかできなかったり、
配列などのデータ構造が使えなかったり。
イベントコマンドのスクリプトや条件分岐等のスクリプト行を使えば色々できるのでしょうが、
あれはjsのevalを使っているだけだそうで、数行以上の内容は記述できません。

そこで、ゲーム内のどこかで requie のような事をして、
外部のjsファイルを読み込んでその中に定義された関数を実行する事はできないでしょうか?

外部ファイルの関数の実行方法をご存知のかた、ご教授いただけたら幸いです。
また、私はツクール初心者ですので、外部関数を使用する以外の方法で
問題を解決できるやり方がありましたら、お教えいただけたら幸いです。

ツクール楽しいですね! ちょっと背伸びしすぎかもしれません(笑)
 

げれげれ

ユーザー
はじめましてこんにちばんわ~

そこで、ゲーム内のどこかで requie のような事をして、
外部のjsファイルを読み込んでその中に定義された関数を実行する事はできないでしょうか?

requieはNode.js(CommonJS)のrequireのことと解釈しました。
つまりは外部jsファイルを読み込みたいわけですね。

実はMV/MZにはそれが簡単にできる機能が初めから用意されています。

それがプラグインです。

プラグインというとツクール独自の特別な機能のように感じるかもしれませんが、
基本的には js ファイルを読み込んでいるに過ぎません。
なので、独自の関数を定義してそれをイベントコマンド-スクリプトから呼び出したり
他のプラグインから呼び出したりすることが可能です。
関数を直接呼び出すのが(つまりスコープ汚染が)気になる場合には
プラグインコマンドとして処理を呼び出せるようにしておけば、
スコープ汚染の心配もなく必要な機能をエディタのUIを通して呼び出せるので
とても便利です。

まずは 公式のプラグイン講座 から着手してみることをオススメします。

ご健闘をいのります!
 

gundamoe

ユーザー
げれげれさん
ご回答ありがとうございます。
おっしゃるとおり、Node.js等で使用されるrequireのつもりで書きました。
requieと誤字っていますね、、、失礼しました(汗)

一応js/main.jsの先頭にある、子コアモジュール(?)のリストに
自作モジュールを追加して、無理やり動かすことはできたのですが、
システム的にやっていいことなのか、何か不具合が出ないか心配していました。
おっしゃるとおり、スコープ汚染等が・・・(笑)

でも、紹介していただいたプラグインを使えば全体が汚いコードにならずに機能を外出しできそうですね!
とても感謝です! プラグイン講座熟読してみますね!
 
トップ