Unityで始めたゲームづくり

C#だからUnity

ゲームエンジンにもいろいろと種類があるのだが、だいたいUnityかUnrealEngine4で迷うことになるだろう。ゲーム好きならどちらもロゴを見かける機会があるだろうし、どちらも基本的に無料で導入できるからだ。

私の場合はC#しか学んでいないのでUnityの一択であった。先進的なグラフィックを使いたいわけでもなかったので。しかしC++で開発する本も購入しているので、ゆくゆくはC++も学んでUnrealEngine4や2D専門のCocos2d-xも触ってみたいと思っている。

最初は「ブロック崩し」から

どのゲームエンジンを使って始めても同じだと思うが、ゲームエンジン自体の操作を覚えなくてはならない。ゲームを作ることに特化して構成されているとはいえ機能が多いので大変だ。しかもゲーム作りも初めてとなると混乱は必至である。

調べてみるとUnityでは初めて作るものとしては「ブロック崩し」が定番であるらしいので、解説してくれているサイトを見て回りそれに習って作ってみた。

出来上がったのは本当にシンプルなゲーム画面だけのものであったし、ときどきすり抜けバグが発生するお粗末なものであったが、思っていたよりもちゃんとゲームが作れたのは嬉しかった。

それを完成させたうえで見えてきたものもあった。普段から遊んでいるゲームに付いていて当然の「タイトル画面」「ゲーム音楽」「効果音」「リトライ画面」「得点」「残機の概念」「パワーアップアイテム」やブロック崩し向けの「複数回で壊れるブロック」「だんだんスピードが上がる」「ブロックを壊したらHな絵が見える」等、夢が広がるアイデアの数々…商品として遊んでいるゲームはやっぱり凄いのだと思った。

これから「ブロック崩し」を作るひとへ

私もまだまだ初心者なので人に向かって「ゲーム開発」講座なんて書けるレベルではない。しかし曲がりなりにも「作った」ことはあるわけだ。「ブロック崩し」の記事を書いてらっしゃる方々はみんな詳しく分かりやすく記事にしているので、どの記事を見て作ってもちゃんとゲームとして遊べるものが完成するだろう。

しかし分かりやすいとはいえゼロから始める方にとっては専門用語が多いのも事実である。私も今だからブロック崩しの記事を「分かりやすく書いてあるなぁ」などと思えるのであって、作っていた当時は「こんなに理解できてなくて大丈夫かな?」と思いながらただ書かれているままにUnityを操作していた。

結論をいうと、「分かってなくても全然問題ないのでとにかく完成させよう」だ。「ブロック崩し」の作成でやっている操作はこれから何回も何回も繰り返す操作なので勝手に覚えられる。今はとりあえずゲーム作りのごくごくシンプルな流れを体験させてもらっていると考えて乗っかってるだけで十分だ。準備運動としてはちょっとハードに感じるかも知れないが楽しんでチャレンジしてみよう。

とはいえ、あらかじめ知っていればもっと馴染みやすくなることもあろうかと思うので、全体図というか「ブロック崩しの作り方」の簡素な説明を書いておく。これからUnityを始める方にとって、他の方々が書かれた「ブロック崩し」の記事が少しでも理解がしやすくなってくれればと思う。

必要な材料

  • オブジェクト(ポリゴン)
    • 壁(上下左右)
    • ボール
    • 自機(パドルとかラケット等の呼び方がある)
    • ブロック
  • 物理演算(リジッドボディ)
  • マテリアル(ポリゴンで作った材料に性質を加えるもの)
    • 色を与える
    • きちんと跳ね返るように調整を与える
  • スクリプト(プログラムで制御する部分)
    • 自機用(割り当てたキー操作でステージの範囲内で左右に動く)
    • ボール(ゲーム開始時に指定した力で打ち出す)
    • ブロック(ボールが当たったら消える)

ブロック崩しを作成するにあたって出てくるものはだいたいこんなものだと思う。これらの詳細な数値や調整は実際に作成する過程で設定するはずなのでここでは書かない。

作り方

  1. ポリゴンで壁・ボール・自機・ブロックのオブジェクトをそれぞれ作成し、いい感じの位置に配置します。
  2. それぞれの素材を視覚的に分かりやすくするためにマテリアルで色を付けます。
  3. ボールが動いてオブジェクトに当たったら跳ね返るように物理演算(リジッドボディ)を付けます。
  4. ボールがオブジェクトに当たった場合に勢いが失われず一定を保つようにフィジック・マテリアルを付けて調整します。
  5. 自機が壁からはみ出さない範囲で左右に動くようにスクリプトを書いて(プログラムを書いて)自機のオブジェクトに付けます。
  6. ゲームが始まったら一定の方向へ力を加えてボールが打ち出されるようにスクリプトを書いて(プログラムを書いて)ボールに付けます。
  7. ボールが自分に触れたら自分が消えるスクリプトを書いて(プログラムを書いて)ブロックに付ける。
  8. 簡単「ブロック崩し」できあがり!

順序は多少は入れ替わるとは思うが、おおむねこんな感じの流れで完成するはずである。記事だけでなくYou Tubeでも動画で解説してらっしゃる方もいるので、あきらめずに最後までやってみてゲームを完成させてほしい。そこまで頑張ったあなたは開発者としてゲームをひとつ完成させるという大きな一歩を踏み出したことになるのだ。