~前回までのあらすじ~
「イベントのスクリプトを考える」というタイトルなのに考えないで寝た。
…というわけで、今日はちゃんと考えていきたいと思います。
そもそもイベントのスクリプトって書くスペースが狭いんですよ。
しかも勝手に改行コードが記述されてエラーになったりするし。
後から修正するのが面倒っていう問題もありますし、便利なんだけどかゆい所に手が届いてないというか。
ならば上手な使い方を模索すれば良い。
いろいろ考えた結果、モジュールの利用に活路を見出しました。
モジュールっていうのは、かいつまんでいうと「定数やメソッドをまとめる機能」みたいなもんですね。デフォだとサウンド周りとかに使われています。
例えばメニューで決定キーの音を設定する時。
それぞれのメニュー場面で決定キーの音を指定していたら、後で音を変えたいと思った時にひとつひとつ修正していく羽目になって大変です。だから音周りをまとめて一括して管理することで、効率を上げるわけです。
ボス戦のBGMを変える時、ボスとのバトル前にイベントコマンドで「バトルBGMの変更」とかやると、ボス戦BGMを変えようと思ったらいちいち全部のボス前のイベントを修正しないといけなくなるでしょ?
それを避けるのにコモンイベントでバトルBGMの変更だけ作って、ボス戦前はそのコモンイベントだけ呼び出すようにすれば、ボス戦BGMの変更は1回の修正で済みます。このコモンがモジュールみたいなもんだと思ってください。
んで、この考え方をイベントのスクリプトに応用する。
まぁ要するに、イベントのスクリプトで記述するのはモジュールを呼び出す1行だけにするって話ですね。
例えばイベントのスクリプトをこんな使い方してたとします。
もう見るからにこちゃごちゃしてますね。
どんな処理してんのかパッと見て分かんないでしょ。
これを改善する。
イベントのスクリプトから呼び出すモジュールを作って、上のスクリプト部分をコピペ。モジュール名はESとします。できるだけ短いほうがいいです。
Rubyの柔軟さを利用し、メソッド名を日本語にすることで分かりやすくする。
あとは上で作ったモジュールをイベントのスクリプトで呼び出すだけ。
最初と比べるとスッキリして何をやってるのかも一目瞭然です。
メソッド名が日本語になったことで、オリジナルのイベントコマンドのような感覚でイベントが作れます。スクリプトのコモンイベント化と言ったほうが分かりやすいかもしれませんね。
こんなの単にスクリプト書く場所を変えただけじゃんか、いちいちイベント画面を閉じてRGSSエディタを行ったり来たりする手間が増えるだけじゃん…と思った方がいたかもしれません。
しかし、これの肝はモジュール化なんです。
一度作ったメソッドは使い回せるんですよ。
例えばコマンドを羅列させた新規プロジェクトを別に起動させておく。
あとは必要な時にこっからコピペするだけです。
メッセージ系・場所移動系といった用途ごとに分けると管理もしやすい。
新しいメソッドを作ったら随時追加していく。
これってコモンイベントの考え方に近いんですよ。
頻繁に使うコマンド群をコモンイベントに登録して、必要な時に呼び出して使い回すっていう考え方ですね。
狭いスペースにコードを書いて勝手に改行されて見にくくなることもない。
何の処理をしているのかが分かりやすくなる。
実質的なコードはRGSSエディタ上にあるので、検索や置換が可能。
メソッド内の記述を後から追加・修正しやすい。
イベント以外の用途にも使える。
バグの原因となったコードが含まれていた場合、メソッド内部の記述を修正するだけで済み、全イベントのチェック&修正をしなくても済む。
もちろんデメリットもあります。
1行で済むような簡単なコードもいちいちモジュールに追加するのは面倒。
使い回すことのないメソッドが多すぎると効率は落ちる。
一度作ったメソッドを後から消したり名前を変えたりするのは非常に面倒。
どのイベントにどのメソッドを使ったか分かりにくい。
メリットとデメリットを比べてみて、個人的にはメリットの方が高そうな気がするんで帽子世界は今からこの方法でやろうかなぁと思ってます。ゲームの規模が大きくなるほど恩恵がありそうですね。
ただし、今まで作ったものを全部モジュール化しなおすのは厳しいので、そんなに恩恵はないかも。まぁ次回以降でRGSSを利用した作品を作るなら積極的に活用していきたいですね。
1/19までの拍手お返事です。
■無駄とは究極の贅沢である
■LSDってあんま有名じゃないのか…
■少子化が加速しちゃう!
■ヒットラーの復活
■MVはデバッグしやすいらしいですけど、JSだからなぁ…
■おお、LSDが通じる人いた!奇作中の奇作ですね!
LSDをモチーフにしたっぽい漫画「百万畳ラビリンス」も面白かったです
■同期はファイル削除や上書きといった操作ミスに弱いので、非同期と同期両方を用意したほうが万全ですね。立ち絵の元データが消えたのもファイル削除が原因っぽかったんで、Onedriveを非同期、Googledriveを同期にしました
■なるほど。それだと1体だけきっついラスボスがいるかもしんないです…
大丈夫かしんぱい
■もちょっとまっててね!
■マップエディタやアニメーションは何だかんだいって便利すぎるので、まだまだツクールは手放せそうにないですね
■MVは少しマシになったらしいですね
まだ深く触ってないですけど…
■YOU LOST
■じゃあクソユリで…
■Exactly(そのとおりでございます)
それを今日長々とやってたという…
■先の読める展開が必ずしもつまらないとは言えませんけど、明らかに損をすることってあると思うんです
■まだDLCひとつも遊んでないんですよね
全部揃ってからでもいいかなぁって
■ちょっとまてい!
■エロ画像・エロ動画より大事なものもいっぱいありますけどとりあえずエロ画像・エロ動画も大事にしてあげてください
思う存分うろうろするのだ