結構真面目にテラメリテールの体験版を作っているところで、
とりあえず電源を入れたら流れるオープニングのテキストとメッセージが勝手に流れては消えていくってのは
できました。一応音楽と同期して流れていきます。ぶはー、意外と大変だった。
まあまだ絵はないのですが。俺の画力であんなすげーの描けねえって!!コラ言葉遣い。
ハイ。あんなすごい絵、ぼくには描けないよぉ…。
というかまあ今日は絵を描く作業というよりもプログラムがんばろ、と思っていたので
とりあえず挙動が出来上がったらそれでいいよねという感じです。絵は後で当てはめます。
UNDERTALEはまずタイトルロゴが表示され、OPストーリーが流れ、ボタンを押したらまたタイトルロゴ、
「Zキーを押して」と出るけどそのまま放っておくとまたOPが流れます。
だが文字が流れるのとボタンを押したらロゴ、放っておいてもロゴっていうのを作るのに
なぜか苦戦し、そこで体力を使い果たしてしまったので今のところタイトル画面になったらもうそのままです。
見た目は何とかなってるし、もういいかなと…!!
そういやメッセージを勝手に送るのは並列実行しているイベントによる「文章の強制中断」を使ったんだけど、
ファンクションキーのどれかで今の変数の一覧が見られることに気づき(遅すぎる)、
それに「ピクチャ文字速度」ってのがあるからコレ使えばラクだったんじゃないかと思った…けど、
見た目は何とかなってるし、もういいかなと…!!
さて次に作るべきはネームエントリ。落ちてきたニンゲンに名前をつけてください、というあの画面です。
…でも、どうせパソコンでプレイしてもらうんだからキーボード入力で名前を入れてもらうのが一番早いんじゃないか?
と、あいうえお表ではなく「キーボード入力」という初めて使うコマンドを使ってみました。
だけどどうも上手くいかず、文字を入れた後ENTERキーを押しても文字が消えるだけ。
一体なぜ、何が起きているのか…ちょっと検索してみたものの、そういうことで困っている人がいない。
(ちなみにさっきやってみたら普通に入力できた。ループしていて入力し終わったら直後に
入力待機状態になっていたみたいだ。バカなのか)
せめて体験版ではキーボードから直接、なんて思ったけどやっぱりちゃんと作るか!と思って
あいうえお表を作り、カーソルを動かして文字を入力してもらうことにしました。
えーと…UNDERTALEでは、あいうえお、まみむめも、と横に並んでいる…こんな感じか。
カタカナとひらがなを切り替えられるのか。アルファベットもあるのか。
カーソルというものはなく選んでいる文字は黄色になるのか。えーと、右を押したら一文字分右に移動、
下を押したら一文字分下に移動。…だけど、右端にカーソルがあるときに右を押したらこのままでは際限なくカーソルが右へ行く。
画面外へ行ってしまう。もはやそれはバグという次元ではない。欠陥だ。
「もしもし?ネームエントリ画面でカーソルが画面外に行っちゃうんですけど」
「仕様でございます」
認めないんかい。
しょーもなジョークは放っておき、カーソルの位置に番号を振り、端に行ったら0に戻す、カーソル位置もそのように、というプログラムにする。
…が、それだけでは空白部分にもカーソルが行く。困る…!
「あいうえおまみむめも」と隙間なく並んでいたらそれでいいんだが、「あいうえお まみむめも」と一文字分空白があるのである。
つまり「お」を選んでいるときに右を押した場合、2文字分右に移動しなければいけないということだ。泣くぞ俺は。
というわけで「お」の行、「も」の行など空白前の行や列でその方向にキーを押したら一文字飛んでカーソルが動くようにする。
ふう…と、思ったが、よく考えたら「ひらがな」や「カタカナ」、「けってい」などにもカーソルが行くんだよな。
そこまではまた1マス分あいているし、カーソルの大きさも4文字分にしないといけない。そこから下を押したら
カーソルは一周して一番上へ行かないといけない、さらにカーソルの大きさも戻さないといけない、
「あいうえお」から下を押したら「ひらがな」に、「まみむめも」で下を押したら「カタカナ」に、
どの文字にいるときもその項目にカーソルが移動しなければいけない。泣くぞ俺は!!
半泣きになりながらカーソルの移動の挙動を作る。端に行って、戻ってきて、カーソルの大きさは戻したり大きくしたり、
「ひらがな」にカーソルが合っている時に右を押したら6文字分右へ移動、カーソル位置もその分大きく増やさないとどんどんズレていくので注意。
何度も何度もテストプレイを繰り返し、おかしなところへ飛ぶカーソルにガックリしつつも…なんとかカーソルの移動の挙動は完成!よし!!
…って、コレで何が嬉しいのか。カーソルが正しく動いて、それだけで終わりか?
文字を選んで名前を入力するのが目的ではなかったのか?
そ、そうだ…そうだった。カーソルは正しく動くのはいいとして、カーソル位置に応じて文字を入力しなければいけないんだ。
だが一体どうやって?ウディタさんには「配列」はないっぽい。文字をどうやって扱えばいいんだ。
もしや全部条件分岐させて…縦が0ですか?⇒YES 横が0ですか? ⇒YES 「あ」と入力 ⇒NO 横が1ですか? ⇒YES 「い」と入力、
と50音分作るの?発狂するぞ。
あ、そうか、データベースに文字を入れればいいんだ。というわけでユーザデータベースに文字を1文字ずつ入れる孤独な戦いが始まる。
…とは言っても文字入力は全く苦ではないのですぐ終わった。
んで、決定キーを押したときの縦と横の数値によって文字をデータベースに応じて文字列変数に入れて、
それをピクチャで表示させて…って、あ。入力した文字を表示する場所を考えてなかった。うげげげ、じゃあ、あいうえお表をずらすの…!?
座標のほとんどを変数で管理していたから助かったが、ドキドキしながらY座標を変えてプログラムの数字も45から64に変更。
よ、よし、抜けはないな。
そして決定キーを押したら文字がついに表示されるようになったのです!よっしゃー!!
デバッグ用の文字が左下に表示されたままですが、とりあえずこんな感じ。
だが、まだ「カタカナ」や「アルファベット」への切り替えはできてない(データベースすら作ってない)上に、
1文字目しか入力できません。なんだそれは!!
ついでに「1文字削除」の項目もないです。もう「キャンセルキーで1文字削除」でいいかなと…。
「もどる」の項目(ネームエントリーから操作説明画面に戻る)もないけど、別にいいかなと…。
さらについでに言うと、例えば「は」で下を押して「ひらがな」へ移動し、さらに下を押したら「あ」に行くけど、
「ひ」で下を押し、「ひらがな」へ移動し、さらに下を押しても「あ」に行ってしまう。
こういう場合、「い」に行くのが自然かなとは思う。確かポケモン金銀がそうで、おお、と初プレイ時に思った記憶がある。
だけどもう「ひらがな」で下を押したら「あ」に移動と書いてしまっているので、もういいかなと…!!
さ、さ、さらについでに言うと、UNDERTALEでは横キーを押し続けると横から一周して戻ってくるのではなく、
一段下の端から出てくるんだけど…もう、いいかなと…。
なんだか妥協の嵐になって参りました。RPGでは基本中の基本、お約束過ぎる画面のネームエントリ画面だけで
この四苦八苦っぷりです。脳みそが豆粒ぐらいしかないんだからムリもないわよね。
ところで、実際にいるキャラの名前をつけたときにリアクションがあるってのは…今のところ
作ってはないけど、入れないつもりでいます。なんとなくどのキャラがどのキャラの担当かは分かっているのも多いけど、
ネームエントリ画面で全てがネタバレるというのもなんかなと…。
なので、「実際にいるキャラの名前をつけたとき」ではなく、なんか別の方法の小ネタを考えようと思っています。
何よりも、まずはネームエントリの挙動を完成させるべし。2文字目の入力、決定したら文字列を名前として確定、
可変データベースへ入れて以後ステータス画面で表示、カタカナや英数の切り替え、キャンセルキーで文字削除…やることは山積み。
やるぞぉー!!きっとラピュタを見つけてやる!!ラピュタは見つけなくてよろしい。
|