なんて?
いきなりブログのタイトルを「上皿てんびん型ロケットのゲームを作った件」にしてしまいましたが、上皿てんびん型ロケットとはそもそもなんなのかというと、それこそ上皿てんびんみたいなやつの2つの皿を交互に踏み込むと上に上昇するロケットのことです。

交互に踏み続けないと出力が出ないし、片方の皿で休んでいるともう片方が上に上がり切ってしまって高すぎて乗り移るのが困難になるので、常にいい感じにジャンプして乗り換えていく必要があるのです。
疲れるし危ないので普通に座って乗れるロケットを開発したほうがいいと思います。
こういうゲームです
というわけで動画としてはこれです。
IDはこれですのでよろしければ遊んでみてください。よろしくお願いします。

あと更新日時はが深夜なのは、ゲームのし過ぎでこんなことになっているんじゃなくて、最近またいろいろ忙しくなって深夜にゲームせざるを得ない機会が多いからです。

だから、健全ですよ……と書こうと思ったけど、理由関係なく不健全ですね。
今回のゲームもたまにちょっとずつしか進められなかったので、いつ完成に至るのかわからなかったです。
ゲームできた後に動画用にプレイを録画するまでにも5日間のゲームノープレイの期間を挟む始末……。
でも、逆にいうとそのうちなんとかなるので、時間ない時は寝るのを優先したほうがいいと思います。(自分のことは棚上げしてのコメント)
プログラミングのメモ
で、今回も作ろうとして悩むところが多かったのでメモします。たぶんどなたが最適な解を出していることが多いと思うのですけども、それをなんとか自力で解決したいというパズルゲーム的な遊び方をしています。
それでどうしても毎回スパッと作れるわけでなくて考えるところが出てきますね。プログラミングは深い。
プレイヤーを前後に移動させたくない
今回はヒト(プレイヤー)の移動が左右だけだったのですけども、遊んでいるといろんな理由で前後にずれちゃったりするのですよね。
すると立ち位置が変なことになる(今回だとロケットから落ちてしまう)ので、なんとかずれないような工夫が必要でした。
で、最初は人の前後(Z軸)に透明なカベを置いてみたりしましたけど、カベで2弾ジャンプが発動したりするのでダメでした。
というわけで、今回はヒトにつけた位置センサーで、前後に初期位置から0.1m超ずれたら0.1m以内になるように人が勝手に移動する(歩く)ようにしました。

最初は0.1mでなくて0mピッタリで作りましたけど、結構境目のところで前向いたり後ろ向いたりブルブルしちゃうので少し余裕を持たせました。
前後で合計0.2mくらいブレが出ますけども、そのくらいならゲームの大勢には影響ないです。
入り口を斜めにしてモノを斜めでワープさせる
ゲーム中に、スポンサーからの記念品が贈られます。
もらえるのはうれしいですけど、何も飛行中にくれなくてもいいというそんな感じですが、特にそれぞれの物がまっすぐの向きで落ちてくるとてんびんにどっかり乗っかってしまったりして難易度が高すぎるので、モノによっては斜めの状態で上から落ちるようにしました。
今回はモノをワープさせたのですけども、普段であればワープの出口を斜めにすればOKのところ、連結の都合により出口は水平に設置したかったのです。
(斜めに連結するためにヒンジれんけつで斜めにずらすとかのノードンを節約したかった)
というわけで、入り口のほうを傾けたらいい感じになりました。

そんな感じで、記念品が増えるとゲームオーバーのときの地上の画面でモノが増える(落ちている)みたいな感じになります。

ただ、超高度から落とすのでどっかにいっちゃうこともありますね。
ある程度は画面内に集まるように透明な壁などを用意していますけども、全部集めるのは今回は省略しました。
風の表現
あと悩んだのは横風の表現でした。
ランダムで左右どちらかから風が吹くのですけども、どうしたら風の向きが分かりやすい画面になるのかなという点で悩みました。
画面に矢印を出すと一番わかりやすいと思いましたけど、もっと画面全体的に動きがあったほうがいいかなとか考えて、前面にテクスチャで表示することにしました。
が、これがまた絵心の問題で風に見える表現ができなくて、試行錯誤で今の水色の長方形が動くスタイルになりました。

これを少しずつずらしたテクスチャを用意してアニメーションさせました。

絵は難しいですけど、使いこなしたいものです。
ちなみに、人に対して「うごかせるモノ」をつないでおいて、横風とともにその方向に少し引っ張るようにしています。

カメラ操作
ゲーム中、時々画面がズームアウトして小さく表示されたり、上空に行くほど地味に画面が小さくなったりします。
(当初はこの地味に画面が小さくなっていくというギミックのみで考えていました)

私はたいていカメラのノードンで画面を調整することが多かったのですけども、今回使ったゲーム画面ノードンだと直感的に使えて楽だなと思いました。
今後積極的に活用したいです。

はじめて距離の限界に到達した
YouTube動画の最後におまけとしてのせているのですけども、作っている途中でうっかり上にずっと上昇するようにしてしまったことがありました。
で、ぼーっと、どこまでいけるのかな、1000m?10000m?……って思いながら見てたら急にエンジン音が消えて、ヒトも消えて、ロケットが降下を始めたので意味が分からなくて大変こわかったです。
とりあえずワールドの限界かなと思ったらやはりそのようでした。

409.6mというのは半端ですけど、2の12乗=4096的な感じな気がしますね。
なので、今回のゲームは400mで終わりになるようにしたつもりですけども、動画にもあるとおり私が400mまで到達できないのでデバッグができていないという……。
まとめ
そんなこんなで、まだ忙しいのが続きそうなので、ゆっくり遊びたいと思います。
それにしてもはじプロは長く遊べますね。
コメント