戦車の塔(ベータバージョン)
WASDで移動 Qでオプション Eでオプション画面キャンセル クリックでその場所に向かって球発射 球は一回跳ね返ります!うまく活用しましょう! ーーアップデート情報(5/22)ーー 自機戦車の移動描画の変更 ポインター画像の変更 ※iphone用ジョイスティックの実装は一度中止し、近いうちにiohoneを傾けての操作の実装を予定しています※
https://unityroom.com/games/sensyanotoukari
前回に引き続き、このストーリーは私の思い出格納庫として書いていきたいと思います。
今回は前回の続きです。インターン採用されるまでのざっくりお話、中編となります。ゲーム作品制作が中心のお話です。
戦車のゲームを完成させたのがかなり前なので、覚えてる範囲で当時の苦悩をお伝えできたらなと思います...!!!
【戦車ゲームを完成させたい】
どんなゲームが作りたいかをイメージして、いざ初心者本を読んだだけの力でゲーム制作に取り掛かりました。進めていく中でまず引っかかったのが、「フィールドの壁を戦車が通り過ぎてしまう問題」でした。
これは結論から言うと、自分自身の機体の移動をRigidBodyにするかtransformにするかと言う点と、フィールドの壁オブジェクトの厚さの問題だった気がします。 当時の私は完成させることがメイン目標だったので、理論的ではなく、いろいろ試して無理やり解決してしまいました笑。無理やり解決していく中でたくさん調べたり、たくさん試したりした経験とその力は今でも生きていると思います。
二つ目の問題は「敵が自分の機体に向かって、弾を一回跳ね返して狙ってくる仕組み」でした。これは一番苦労したかもしれません。
引用:https://www.nintendo.co.jp/wii/rhaj/9steps/step9.html
これは任天堂さんの(つまり僕が作ろうとしたゲームの本家)の画像です。
このようにフィールドの中にも壁や障害物があり、それを駆使して戦うわけですが、このゲームの特徴として弾が一回だけ跳ね返ると言うものがあります。
私が制作するゲームでも、そのルールを取り入れました。
プレイヤーもそれを生かして死角から狙ったりできるわけですが、敵戦車に実装するとなるとあら大変。どんなロジックにしようかとても悩みました。
悩みに悩み、いろいろ考えていく日々。ゲーム制作をしながら当時中学生の塾講師もしていた私は、生徒に理科を教えながら思いました。
俺「跳ね返して弾を当ててくる実装、これ鏡の仕組み使えばいけそうじゃね....??」
生徒「なんの話ですか?笑」
引用:https://chuugakurika.com/2018/06/26/post-2919/
これは適当に拾ってきた画像です。今回の場合、目はプレイヤーの動かす機体となります。そしてPが敵の機体です。
勘の良いみなさんならもうお分かりですね! そう、フィールドの壁を鏡に見立てて、敵の機体がプレイヤーの像を狙えば良いわけです。この画像だと赤い点が像です。
光は無限に跳ね返る(?)ですが、今回のゲームは弾は一回しか跳ね返らないので、左上の像は狙っても当たりませんが、左と上の像は狙えるわけです。
これに気づいた時、俺天才かよ、と思ったことを覚えています(笑)。そんなに難しいことでもないし、もちろん天才なわけないのですが、自分の生活の中からヒントを得て実装ができたので、もうめちゃくちゃ嬉しかったです!
コードとしては①自分の機体の位置を取得 ②壁の位置を取得 ③機体から壁までの最短距離を計算し、壁から機体の反対の方向にその距離分伸ばす ④そこにマーカーを用意し、それに向かって敵の機体からプレイヤー機体に向かって見えない高速の弾を発射する ⑤その弾が壁を跳ね返り当たったら、跳ね返して当てられると言うことなので、本当の弾を発射する と言う仕組みになりました。
じっさいに壁越しに狙ってきて弾が自分に当たりゲームオーバーになった時はとても嬉しかったですが、今考えると穴だらけでした。例えば
① 上下の壁でしか実装していなかった(左右の壁を使って跳ね返すメソッド忘れ) ②フィールド内の障害物を使って跳ね返すことができない(障害物を全て取得して自動で上記の弾跳ね返しメソッドを作る力がなかった) って感じです。
【完成、余談】
いろいろな苦悩がありましたが、そんなこんなでついに、完成させることができました....!!!
かなり前に作ったものだし、今見ればコードもぐちゃぐちゃ、全スクリプトでMonobehaviour継承してるし全てUpdateの中で記述してるし....w 見るも無惨ですが、表向きはそれなりに良い感じのミニゲームになっていると思います笑
ゲーム内の音楽も半分くらい自作しました。オープニングの音楽はボカロ「King」をカバーしましたし、敵機全滅した時はFFの音楽をカバーしました。音楽作りも楽しいですね。
せっかくなのでプレイできる方はしてみてください。バグ報告、つまらない報告などは受け付けません。笑
よし、作品ができたぞ.....!! お、wantedlyというサイトがおすすめなんですね?やってみます!
ここから私はインターンをするため、RWGの面接に挑戦します.....!!!
・・・・・・・・・・・・・・・・・・・・・
今回は自分のゲーム制作を振り返りました!とても懐かしい気持ちになりました。
初心を忘れずに、いつまでも一生懸命開発に取り組んでいきたいと思います!
次回は、面接がどんな感じで進んだか、私の場合は少々テスト等があったのでその内容をざっくりお伝えできたらなと思います。
そして、私が所属している会社では今もインターン生を募集しています。C#エンジニア、Goエンジニア以外にも事業部のエンジニアも採用しているようです。
興味がある方は話を聞いてみるといいと思います!
ストーリー書くの結構疲れるな! 失礼します!
↓続けて見る↓