カテゴリー

















イベントスクリプトの活用方法

2018/01/20

~前回までのあらすじ~
「イベントのスクリプトを考える」というタイトルなのに考えないで寝た。

…というわけで、今日はちゃんと考えていきたいと思います。

そもそもイベントのスクリプトって書くスペースが狭いんですよ。
しかも勝手に改行コードが記述されてエラーになったりするし。
後から修正するのが面倒っていう問題もありますし、便利なんだけどかゆい所に手が届いてないというか。

ならば上手な使い方を模索すれば良い。
いろいろ考えた結果、モジュールの利用に活路を見出しました。

モジュールっていうのは、かいつまんでいうと「定数やメソッドをまとめる機能」みたいなもんですね。デフォだとサウンド周りとかに使われています。
画像363.png
例えばメニューで決定キーの音を設定する時。
それぞれのメニュー場面で決定キーの音を指定していたら、後で音を変えたいと思った時にひとつひとつ修正していく羽目になって大変です。だから音周りをまとめて一括して管理することで、効率を上げるわけです。

ボス戦のBGMを変える時、ボスとのバトル前にイベントコマンドで「バトルBGMの変更」とかやると、ボス戦BGMを変えようと思ったらいちいち全部のボス前のイベントを修正しないといけなくなるでしょ?

それを避けるのにコモンイベントでバトルBGMの変更だけ作って、ボス戦前はそのコモンイベントだけ呼び出すようにすれば、ボス戦BGMの変更は1回の修正で済みます。このコモンがモジュールみたいなもんだと思ってください。

んで、この考え方をイベントのスクリプトに応用する。
まぁ要するに、イベントのスクリプトで記述するのはモジュールを呼び出す1行だけにするって話ですね。

例えばイベントのスクリプトをこんな使い方してたとします。
画像364.png
もう見るからにこちゃごちゃしてますね。
どんな処理してんのかパッと見て分かんないでしょ。

これを改善する。
イベントのスクリプトから呼び出すモジュールを作って、上のスクリプト部分をコピペ。モジュール名はESとします。できるだけ短いほうがいいです。
画像365.png
Rubyの柔軟さを利用し、メソッド名を日本語にすることで分かりやすくする。

あとは上で作ったモジュールをイベントのスクリプトで呼び出すだけ。
画像366.png
最初と比べるとスッキリして何をやってるのかも一目瞭然です。
メソッド名が日本語になったことで、オリジナルのイベントコマンドのような感覚でイベントが作れます。スクリプトのコモンイベント化と言ったほうが分かりやすいかもしれませんね。

こんなの単にスクリプト書く場所を変えただけじゃんか、いちいちイベント画面を閉じてRGSSエディタを行ったり来たりする手間が増えるだけじゃん…と思った方がいたかもしれません。

しかし、これの肝はモジュール化なんです。
一度作ったメソッドは使い回せるんですよ。
例えばコマンドを羅列させた新規プロジェクトを別に起動させておく。
画像367.png
あとは必要な時にこっからコピペするだけです。
メッセージ系・場所移動系といった用途ごとに分けると管理もしやすい。
新しいメソッドを作ったら随時追加していく。

これってコモンイベントの考え方に近いんですよ。
頻繁に使うコマンド群をコモンイベントに登録して、必要な時に呼び出して使い回すっていう考え方ですね。

狭いスペースにコードを書いて勝手に改行されて見にくくなることもない。
何の処理をしているのかが分かりやすくなる。
実質的なコードはRGSSエディタ上にあるので、検索や置換が可能。
メソッド内の記述を後から追加・修正しやすい。
イベント以外の用途にも使える。
バグの原因となったコードが含まれていた場合、メソッド内部の記述を修正するだけで済み、全イベントのチェック&修正をしなくても済む。

もちろんデメリットもあります。
1行で済むような簡単なコードもいちいちモジュールに追加するのは面倒。
使い回すことのないメソッドが多すぎると効率は落ちる。
一度作ったメソッドを後から消したり名前を変えたりするのは非常に面倒。
どのイベントにどのメソッドを使ったか分かりにくい。

メリットとデメリットを比べてみて、個人的にはメリットの方が高そうな気がするんで帽子世界は今からこの方法でやろうかなぁと思ってます。ゲームの規模が大きくなるほど恩恵がありそうですね。

ただし、今まで作ったものを全部モジュール化しなおすのは厳しいので、そんなに恩恵はないかも。まぁ次回以降でRGSSを利用した作品を作るなら積極的に活用していきたいですね。

1/19までの拍手お返事です。
●人生から無駄を省いたら面白みがない
思う存分うろうろするのだ
■無駄とは究極の贅沢である

●>ADV系~
ゆめにっきってADV系だったかな?(困惑)
ゆめにっきは本当に『ジャンル:ゆめにっき』なのでそういった分類は考えていなかったです

あれ、分類するとどこに入るんだろう?
■LSDってあんま有名じゃないのか…

●>■別に押し倒すくらいあいさつみたいなもんですよワハハ!
押し倒した後に必然的に起きる次のステップが手をつなぐくらいの軽いアクションでいつのまにか少子化が改善されてそう(百合だけど)
■少子化が加速しちゃう!

●>■スターリンのように?

小峠のように!
■ヒットラーの復活

●システムを組んでから別の場所に移植しようとしたときに
テストプレイすると「〇〇が想定外の値」みたいなエラー吐いて止って
そこにデータを定義する(リンクする)一文を追加する作業が必要になる
定義漏れって勝手に呼んでる
■MVはデバッグしやすいらしいですけど、JSだからなぁ…

●そもそもゆめにっきには「LSD」という元ネタがあったと思う
未完成のまま発売されたような内容の一人称ADVなPS1ソフトで
進め方もわからず酔って低評価をつけるレビュアーが相次いだ
ゆめにっきはちゃんとクリアできるし2Dだからそんなに酔わない
■おお、LSDが通じる人いた!奇作中の奇作ですね!
LSDをモチーフにしたっぽい漫画「百万畳ラビリンス」も面白かったです

●いちいちバックアップとるのが面倒なら同期する設定にしましょう
ネットつながってる限り勝手にセーブしてくれますよ
自動セーブ便利です
てか以前確かバックアップとってないデータが消えたって日記書いてませんでしたっけ
■同期はファイル削除や上書きといった操作ミスに弱いので、非同期と同期両方を用意したほうが万全ですね。立ち絵の元データが消えたのもファイル削除が原因っぽかったんで、Onedriveを非同期、Googledriveを同期にしました

●夢についてですが、新約帽子世界のラスボスの姿を予想していたら、いつの間にか寝てしまってあの夢を見ました。
球体人間は、死んだアバターの集合体で、ホラー作品に出ても違和感がない怖いラスボス
自分喰いは、鋭い牙がたくさん生えた大きな口と100本以上の触手があるグロいラスボス
…という感じでラスボスの姿で心が折れないようにするために予想してました。
■なるほど。それだと1体だけきっついラスボスがいるかもしんないです…
大丈夫かしんぱい

●パソコン新調したので新約への準備は万端
■もちょっとまっててね!

●エディタ、というかIDEの機能で、使用箇所の検索はできるのが当然と思ってました。それが無理ならgrep -rですが、それすら出来ないんですね。むしろツクール使わない方が楽なんじゃないかと・・・
■マップエディタやアニメーションは何だかんだいって便利すぎるので、まだまだツクールは手放せそうにないですね

●いちいち停止するのが鬱陶しいので
とりあえず適当な値を入れながら進行させて
エラーログだけ後でくれるようなシステムがほしい
自分で作ろうとは思わない
■MVは少しマシになったらしいですね
まだ深く触ってないですけど…

●>「いじるな」っていう記述ばっかり
つまり、いじれということか!(ポチー

*いしのなかにいる*
■YOU LOST

●ポプテピピックは百合アニメであるという見解について隊長からのご意見をいただきたく
■じゃあクソユリで…

●構造体を操作するだけのスクリプトを作って、引数でオフセットと変更したいデータの指定を投げてやるだけで解決しちゃいませんか?
と、思うアセンブラ使い
■Exactly(そのとおりでございます)
それを今日長々とやってたという…

●>そういう過去とか最初に見たくない

そういう情報ってどのタイミングで開示するかで印象全く変わりますよね。上手く使えばいいスパイスになる要素も前段階とか予測に繋がるタイミングで示しちゃうと損な気がします。特に読む前か読んでる途中かとか。
自分は割とキャラや話に細かい設定作ってしまう方なんですが、その分設定した内容の開示どころにはかなり気を遣っています。
良いも悪いも生かし方次第ですよね。
■先の読める展開が必ずしもつまらないとは言えませんけど、明らかに損をすることってあると思うんです

●そういやFF15は追加エンディングもあるそうです。DLCかつifですけど
■まだDLCひとつも遊んでないんですよね
全部揃ってからでもいいかなぁって

●>別に押し倒すくらいあいさつみたいなもんですよワハハ!

職場の女の子たちにあいさつしてこようかしら
■ちょっとまてい!

●>あららお大事に。セキュリティもですけどバックアップも大事ですね

バックアップと言っても私の場合は、エロ画像・エロ動画を多数失うだけで他には大した物が入っていないし、エロ画像・エロ動画を除くと本当に再DLが非常に簡単な物が多いのでそれはそれで良いのですが、セキュリティだけはしっかりしてないと証券・銀行のID・パスワード乗っ取られると本当に人生終わりますので…
■エロ画像・エロ動画より大事なものもいっぱいありますけどとりあえずエロ画像・エロ動画も大事にしてあげてください

< なぜ全力を出さないのか  | ページTOPへ |  イベントのスクリプトを考える >