ゲーム製作作業、まあまあ進んでおります。ウォーターフェルで頭に「足場のタネ」をのっけて橋を作って進むところ、 その変数をどういうわけか雨が降る変数や水溜りに鏡像を映す変数に使っていて、 「モンスターの子」の鏡像が「足場のタネ」を頭にのせているときに壁の向こうに出現というホラーが発生。

そこを何とか直したと思ったら今度は雨が降っているエリアで傘を持って「モンスターの子」に話しかけられ同行するときに 水溜りに主人公の鏡像しか映らない。ホラー!!

…そこもなんとか直しました。前にスノーペイントゲームの変数と雨が降る変数が共用してたものだから スノーペイントゲームを始めると2歩の間だけ雨が降るという超現象が起こったのは直したけど、 やっぱホントもったいながって変数を共有すんのはやめたほうがいいということを身にしみて実感。しみしみです。

ところで、転寝みるくさんからトンデモバグの報告を頂いてこれまた吹っ飛んでしまった…。吹っ飛んでばっかだなお前…。
幽体離脱。アカーン!

うそーん、と思って調べてみたらマジ。しかもすげえ簡単に起こせる。これは初期版(テラメリテールDEMO Ver.1)で修正した メニューがいつでも開けるバグを修正したせいで新しく起きたのではなく、最初から発生するものであり今まで一切気づかなかったのである…。

やり方としては、非常に簡単。セーブポイントを調べるために決定キーを押したらすぐさまそこから離れるだけ。メッセージが出ずに、 セーブポイントの光に主人公のソウルが移ってセーブ確認画面も出ずにおしまい。マジで幽体離脱です。

DEMO版の下の方に超目立たない感じで書いていた、あとラジオで言っただけだった「イベント調べると同時にメニューを出すとフリーズ」というのも 猛烈に狙ってやらないとタイミングよく押して何度も挑戦しないと起こらないバグだったからこっそりとしか書いていなかったんだけど、 これも見つけてしまうとはさすがみるくさん…!

幽体離脱はマジで簡単に起こるのでさすがにテラメリテールのページに「バグ・不具合」のページを作って注意喚起することにしました。 修正しないの?と思われてしまいそうですが、完成版では修正済みです。フリーズするのは相当狙ってやらないと発生しないので、 試すときは一度セーブしてからやってください。やってもらってどうすんねん。

DEMO版はもうアップデートはしない予定です…が、 そ、そういえば前にヘキサさんに教えてもらった「3本の木のパズル」を解いた後に前のマップに徒歩で戻ると先へ進めなくなる、というバグは 進行の妨げになる恐ろしいバグなので修正し、アップデートしました。テラメリテールDEMOプレミアム版もVer.4になりました。すみません。

お詫び…ではないが、3つほどマップを追加しておきました。UNDERTALEでは隠しキャラが出る、開かずの扉のあるあのマップまで入れるようになりましたが、 ストーリーが進むわけではないので蛇足です。しかもそのマップのせいでまたバグがあったらどうするのだ。 変なことをしない方がいいというのに…!

さらに隠しキャラで思い出した。アンケートに「隠しキャラは見つけましたか?」とい質問があって、見つけてない、二人見つけた、3人見つけた、という選択肢が ありました。でもすみません。これじゃ誰が隠しキャラだったのかわからないですよね。そうだわ…。

隠しキャラってのは、UNDERTALEの範囲外に隠されているキャラのことです。本当に隠れていて姿は見えません。 4匹目のありんこサイズのカエルはUNDERTALEの小ネタとして存在しているので隠れているけど隠しキャラじゃないのです。まぎらわしい。

DEMO版を公開して1週間以上経過したので言ってしまうと、隠しキャラは一人は名前も顔も分からない人、もう片方がアルフィーとアンダインの位置づけのキャラの会話です。 片方は二人セットで出てくるので「二人見つけた」と「3人見つけた」という選択肢しかなかったのですが、 まさか名前も顔も分からない人の方だけを見つける方がいらっしゃると想定しておらず、「一人見つけた」という選択肢を作っていなかったのだ…。

見つけてくださった方々はウルトラナイスです。

はてさて、どうして幽体離脱事件が起こったのか。今まで起こったバグは結構、イベントの発生条件が「プレイヤー接触」のものが多かったです。 プレイヤー接触とは、その名の通りプレイヤーが接触したら、その床を踏んだら起こるイベントのこと。

その床をイベントを起こさず通過することはできないし、その床に乗りさえすれば猶予フレームナシでそのイベントが必ず発生すると思っていたのです。

…が、意外とその「プレイヤー接触」ってのは発生するタイミングが遅いということが判明。 DEMO版作っている途中でそれに気づき、テラメリテールでは主人公の位置によってメッセージボックスが出る位置が変わるんだけど (下にいれば上、上にいれば下に出るようになっており主人公にメッセージボックスがかぶらないようになっている)、 それに時間差があることに気づいたのであった。

プレイヤー接触でメッセージが出るようなイベントを作っておくと、メッセージボックスの位置を決める処理が先に起こり、 位置が決まった後に大分経過してからプレイヤー接触のイベントが発生する、これによって丁度メッセージボックスの位置を決める境目をまたいで プレイヤー接触のイベントに乗るとメッセージボックスは上、だけどメッセージ(文字)は下に表示されるというおかしなことが起こりました。

プレイヤー接触で起こるイベントは、主人公がかなりの間その床にしっかり乗っていてくれないと起こらない。 それが分かってからは遺跡内のプレイヤー接触のイベントはなるべく削除して回りました。

部屋から部屋の移動はプレイヤー接触のままだけど、大事なイベントはもうそれでは作れない。 例えば「眠れるフォッグ」がいる部屋のカイの説明は、今は「自動実行」にしてあるけど元は近づくと説明が発生する「プレイヤー接触」にしていました。

はてさてここで幽体離脱の話に戻って来るんだが、セーブポイントはどういうわけかプレイヤー接触を起動条件にしていました。 しかもなぜか2ページに及んで作っており、調べるときは「決定キーで実行」、するとセーブポイントが2ページ目になり姿がソウルの形に変わり、 主人公は必ず隣にいるので「プレイヤー接触」で2ページ目になっているイベントが起動してセーブするかの画面が開く、というカタチにしていました。

だがどう考えてもそれらの動きは一連のものであり、イベントを分ける意味がない。意味がないんだけど、 光からソウルに変わる、というのがページを変えて画像を変えるしかセーブポイントを作ったゲーム製作時の初期も初期の頃はやりようがなかったのです。

そして幽体離脱が起こるメカニズムは以下の通り。

1.セーブポイントを調べ、主人公は半透明になる。イベント終了(動ける猶予がないと思っていたんだが、あった)

2.主人公が隣にいるときにセーブ画面が自動で開く。イベント終了

このようになっているセーブポイントのイベントとイベントの間で、セーブポイントを調べたあとにすぐに離れることによって 2ページ目のイベントが起こらずに半透明のままになってしまう、という感じ。再びセーブポイントに近づけばセーブ画面が自動で開きます。

完成版では2ページに分けるという意味不明なことはしておらず、光をソウルに変える、また戻すというのを一つのイベントにしてあります。 イベントは途中で終了しないので調べてすぐに離れることはできません。

さらにセーブ時のメッセージも全部データベースに入れたのでだいぶ根本的に変わっています。


これが元の(DEMO版の)セーブポイントを調べたときの処理。2ページに及んでいます。 だが完成版では…。


一行で終わり。か、簡潔…これだけで済むものが、2ページに分けて作っていたんだよパトラッシュ…。 にしても調べた直後に歩いて離れられる隙があるとは思わなかった。がっつり乗る位置だけに今は「プレイヤー接触」や「イベント接触」は使ってます。

そういう仕様を知らないせい、システムを作る技術の稚拙さによって発生するバグは勉強していくしかないけど、 やっぱりあのタイトル画面でメニューが開けるバグは酷かった。アレが一番酷かった。 完成版の完成に向けて頑張ろうと思いつつ、出かけてまいります。いっちきまし。
2019年10月17日

◆目次に戻る◆




inserted by FC2 system