Unity4入門という書籍を買ったので、早速クソゲーを作ってみた!【前編】
去年くらいから、ちょっと気になっていた「Unity」という無料の3Dゲームエンジン…。
バージョンが4になって以降、iPhone/Androidの書き出しが無料になり、3Dアニメーションも簡単に作れて、最新版では2Dゲームも標準で作れることになりました。
そんな情報を聞きつつ、気持ちが高ぶっている状態で、ある日…以下のようなYouTube動画を見てしまった。
今までも、Unity関係の動画はいろいろあったのだけど、日本語で「番組」というカタチで進行する動画は初めて見たのです。
そして、動画内で紹介されているUnity本を、思わずポチってしまったわけです。
…のせられるがままに、本を買ってしまった。
でも、せっかく買ったわけだし、前からUnityに興味もあったので、早速読んでみた。
で…、
感想として、スクリプトの解説が少ないこと以外は、なかなか面白くて分かりやすくまとめられていると感じました。Amazonの評価もまずまずのようで…。
何よりも、素人の私でも内容が理解できたのが嬉しかった…。
とりあえず、本に書いてある通りに実行して、スクリプトはそのまま丸写し、そしてだいたいの操作方法とUnityの機能を広く浅くゲットしました!
とりあえず、チュートリアルをやる!
ひと通りザクッと本を読んだところで、Unity公式サイトにあるブロック崩しのチュートリアルをやってみました。
全部日本語で書かれており、かなり詳しいです。
これがあるなら、本はいらなかったのでは?と思ったが、第2回以降がまったく更新されてない…。(2014年1月時点)
しかも、第1回のチュートリアルでは、ブロック崩しの骨組みだけしか紹介されてないので、続きは自力でやるしかない…みたい。
とりあえず、第1回のチュートリアルで作れるのは、ここまで。
ブロック崩しの枠と、ラケット、ボールを作って、ボールは勝手に動いている状態で、ラケットを操作して打ち返す…という機能だけ。
これだとゲームとは言えないし、第2回以降がいつ更新されるか分からないので、購入した書籍とGoogle様のちからを借りて、続きをやってみました!
クソゲー「ブロック崩し」を作る!
とりあえず、見た目を少しそれらしくしたかったので、書籍に書かれていた通りUnityに搭載されている「Asset Store」から、テクスチャをインポートしてみました。
意外に無料のものが多いことに驚きながら、ブロック崩しの壁やラケットなどにテクスチャを適用!
あと、適当にブロックを配置して「ブロック崩し」に見えるようにしてみたのがこちら!
もの凄い「クソゲー感」が漂ってますが、練習ということで…。
背景は、メインカメラの色を変えると変わります。それと、カメラの位置を少し前にして、一番下の外枠が見えないようにしてます。
次に、ボールが一番下に落ちたらゲームオーバーになるようにしてみました。
そこで、外枠の一番下に位置するオブジェクトに、書籍の例題を少しいじったスクリプトを貼り付けます。
function OnCollisionEnter ( collision : Collision ) {
GameObject.DestroyObject ( collision.gameObject );
gameover = true;
}
「OnCollisionEnter()」というファンクションで、「何かが当たったら〜何かをする」みたいな処理ができるので、ブロック崩しで言えば「一番下のブロックにボールが当たったら…」という処理に使えそう。
とりあえず、今のところ当たるものがボールしかないので、このスクリプトでやってみました。
処理内容は、当たりに来たオブジェクト(ボール)を消して、gameover変数のスイッチをtureにするというもの。
gameoverの変数は、冒頭に「boolean」で指定してます。このスイッチを切り替えることで、「ゲーム中」と「ゲーム終了」を区別できそう。
で…、
もう1つ下に、別のファンクションを書きます。
function OnGUI() {
if ( gameover ) {
GUI.Label ( Rect ( Screen.width / 2 -120, 250, 200, 30 ), "GAME OVER" , style );
if ( GUI.Button ( Rect ( Screen.width / 2 -100, 200, 200, 30 ), "Retry!" ) ) {
Application.LoadLevel ( Application.loadedLevel );
}
}
}
これで、ボールが一番下に落ちた時点で画面に「GAMEOVER」と表示されて、もう一度プレイするか?のボタンが現れます。(ボタンを押すと、最初からプレイできる)
とりあえず、それらしくなってきたところで、ブロックを消したり、効果音を付けたり、エフェクトを入れたりなどなど…、まだまだやりたいことがあるので【後編】で続きを書きます!
今回、参考にした書籍!