Unityでゲーム作りをしようと勉強を始め、とりあえず何かゼロから考えて1つの作品を作り上げようと思いレトロゲーム「キャノンボール」作りに挑戦する事にしました。
まだ始めたばかりなので途中で頓挫するかもしれないですが当ブログで進捗を報告していこうと思います。
レトロゲーム「キャノンボール」とは?
そもそも「キャノンボール」というゲーム自体を知らない人も居ると思うので「キャノンボール」についてここで少し紹介します。
レトロゲーム「キャノンボール」は1983年(38年前)にハドソンから発売されたPC用ゲームソフトの事です。(以下の記事に詳しく書かれています)
ゲームの内容は単純明快で画面内を飛び跳ねるボールを消していくゲームです。
なぜ「キャノンボール」なのか?
Unityでの作成にレトロゲーム「キャノンボール」を選んだ理由はMakeCode Arcadeにて同様のゲームを既に作成した事があるからです。
この事もあり、どんな仕様にするかは基本考えなくてゲーム作りに没頭できそうだったからです。
後は単純に作りやすそうだったからですね。
とりあえず作ってみよう
まだUnityの扱いに慣れておらず、どんな事が出来るかが手探りのため、出来そうなところから作り始める事にしました。
ステージを作る
まずはステージです。
キャノンボールには床と左右の壁がステージになります。
これには単純にGameObjectのCubeを3つ使って良い感じに配置して完成です。
もしかしたら今後改修するかもしれないですがたたき台としてはこれで良いでしょう。
ボールを作る
次に主役(?)となるボールの作成です。
これもステージ同様GameObjectのSphereを使って適当な位置に置いたら完成です。
これで見た目は「キャノンボール」のそれですw(キャラクターはまだ居ないですが)
ボールを動かす
ステージとボールが出来たのでボールに動きを与えます。
プログラムはあまり凝った作りをしないようにと考えてUnityの物理エンジンでボールの動きを表現しようとしたのですが上手く制御出来なかったです。(何度かステージ内を跳ね回っても最終的には重力に負けて弾まなくなる)
ここで時間をかけるのも何なので方針を変更してプログラムで制御する事にしました。
考え方は壁に当たった場合には完全反射、床に当たった場合には上(重力とは逆)方向の固定値のベクトルを求め、そのベクトルの力をボールに直接与えて動きを制御します。
これでステージ内を飛び跳ねるボールの動きはできました。
まとめ
とりあえずはステージとその中を飛び跳ねるボールまで作る事が出来ました。
物理エンジンは複雑な事をUnityが一手に引き受けてくれて現実世界に近い動きを簡単に作ってくれるのですが今回のようにゲームとして重い通りの動きをさせようとすると直接動きをプログラムする方法になるかなと思いました。
プログラムもまだイマイチな感じがしますがこのままキャラクターを追加していこうと思います。
ちなみに現時点でキャラクターの動きやボールを破壊する装置、分裂するボールの表現などはノープランの状態です(;’∀’)
コメント