ローテクでもいいんじゃない?
- どにち

- 7月1日
- 読了時間: 5分
こんにちは、ツクール2000大好きどにちです。
多感な時期に感銘を受けたもののことをふっと思い出すこと、みなさんもあると思います。
自分も同様にしてツクール2000のサンプルゲームのことをたまに思い出し、花嫁の冠やアビスダイバーは本当に素敵なゲームだよなと遊びなおしては感動し、中を見せてもらっては驚愕しと、さまざまな面で勉強をさせてもらいました。
今でも思い返すと、まだまだ新しい気づきがあります。
偉大なゲームです。
・
ゲームの組み方の面で、特に強く記憶しているのがサンプルゲーム『修道院』での雷鳴の処理でした。
『修道院』はホラーテイストのRPGで、ホラーゲームあるあるの「ときおりの雷鳴」を採用していました。
不定期に雷の効果音がして、画面が白くフラッシュするやつですね。
ツクールのイベントやコマンド(プログラムみたいなやつ)をご存じない方にはこの先の話は意味不明になってくるので申し訳ないとは思いつつも構わず続けます。
上記の雷鳴のやつ、ツクール上で再現すべく自分がイベントを組む場合、どうするでしょうか?
ふつうは並列処理のイベントを使うと思います。
普通のイベントは宝箱とか町人や怪物の姿をしていて、それを調べることでテキストが出たりバトルに入ったりします。並列処理は、ツクールだと、ゲーム上では目に見えない透明な状態でマップの左上などの端におかれていて、
プレイヤーさんが特に調べたりしなくても勝手に動いてなにかを進めるイベントを担当します。
シンボルエンカウントのゲームなら、モンスターの見た目をしたイベントがマップ中に配置されており、そのイベントは「主人公に向かって動く」「主人公に触れるとイベント内容=雑魚との戦闘を実行」といった設定がなされるでしょう。
これに対し、1分以内にこの部屋から脱出せよ! みたいな展開になったとき、「残り〇〇秒という表示を更新し、残り0秒になったら強制的にゲームオーバー処理に進む」のを担当するのが並列処理という感じですね。
『修道院』での雷鳴に話を戻します。
並列処理で雷鳴演出を組むなら、たとえばこんな感じでしょうか。
ウェイト(待機する秒数)の値をランダムで決定し、
そのウェイトを消化したら雷の効果音と画面の白フラッシュ処理を行い、
また処理の先頭に戻る
ランダム範囲に60~120秒となる指定を入れれば、1分から2分のインターバルをとりながら雷鳴演出を行う、といった動きをします
あとは微調整して使いやすくしていきます。
雷鳴を鳴らしたくない場面もあると思うので、「雷鳴許可」みたいな変数があり、この変数が1のとき、「雷鳴演出」という並列処理が動くようにする、とか。
そう、並列処理は「今は動かなくていいよ」といった場面を指定しないと仕事をし過ぎるんです。
ツクールで意図せぬ挙動(バグ)に悩まされたら、まっさきに原因として疑うのが並列処理です。
いい子なんですけども。
並列処理は便利ですが、このような性質もあって少々扱いが難しいです。
別の組み方ができるなら並列処理ではない形で処理を作った方がいい、とまで言われるぐらいです。
気づかないうちに複数の並列処理で同じ変数を上書きし合って互いの仕事の邪魔をしたりするんですよ。
いい子なんですけども。
・
さて、ここまで話しておいてなんなんですが『修道院』の雷鳴演出は並列処理を使っていません。
じゃあどうやっていたかというと、こうです。
・透明なイベントをマップの順路のあちこちにおく
・その透明イベントは、通常シンボルエンカウントのモンスターなどがするように
「プレイヤーキャラにゆっくり近づいてくる」動きが設定され、
「イベントがプレイヤーキャラ(主人公)に接触したとき、イベントの中身が実行される」という起動設定です
・そのようにして起動する透明イベントの中身が「効果音と白フラッシュ」を再生した後、
「この透明イベント(自分)を主人公から離れた適当な位置にワープさせる」。
・ワープ後もまた主人公に向かって移動してきて、おなじことをくりかえす。
先述の並列処理方式とは実プレイ上の手触りは若干変わってきますが、「不定期に雷鳴がゴロピカッとなる演出」という意味では、これも充分に用を果たしています。
並列式と修道院式。
どちらが優れているというわけではないのでTPOにより使い分けるべきものです。
並列処理でやった方がプログラムっぽいことをしていて技術としても高等っぽい感じがします。
修道院式は、並列処理の弱点を回避できますが、エディタ上にイベントがたくさん置かれるので処理負荷を増やしたり、エディタ上での他のイベント配置などがやりづらくなったり別の問題も呼び込みます。
が、並列式しか思いつけなかった当時の自分は、これに気づいた時は本当にしびれましたし、結局必要なのは「体験」の方だと教えられた気がしました。
「不定期に雷鳴がゴロピカッとなる演出」さえ作ることができたらそれでよいのであって、それを実現するゲームの内側の仕組みは、別になんだっていいのです。
遊んでる時にンなこと意識しません。今の雷の感触は並列処理だ! なんて思わない。
令和のAAAタイトルを遊んでる時も、このボイスはどんなマイクで録ったとか、この3Dはどんなソフトで作ったかとか、普通は気にしません。
むずかしい技術を使っているからこのゲームはいいものになるはずだ、というのは思い込みで、作っている側にはありがちな落とし穴です。
しかし、技術的・機材的に高級なことをしているからエラい、おもしろい、という話ではなく、おもしろいゲーム体験を作ることこそが肝要であり、その実現に必要なら高級な技術を頼ればいい、というのが本来の順番なのですよね。
高級なものに頼らなくても目的のモノゴトが実現できるなら、それはそれでいいじゃないか、と。結果として出てきた料理が美味しければそれでよく、その調理に使われた包丁が百万円だろうが千円だろうが関係ないのです。
任天堂の功労者・横井軍平さんが唱えた「枯れた技術の水平思考」も、これに似た話かなぁと理解しています。
「枯れた技術の水平思考」はもうネット上でいろんな記事が解説しているので検索してみてください。
あと横井さんご自身の本もぜひ。とってもおもしろいので。

コメント