ど素人のゲーム制作記

unityはじめてまもないど素人のゲーム制作記です

2Dゲームを作ってみた!(2)

2Dゲーム「走れ、太郎!」を作ってみた、2回目の投稿
前回までで太郎が走ってジャンプして、ってところまでは出来たので今回はゴールと敵を作って、とりあえず完成させたと思います。
前回の記事はこちら

その前に、背景が殺風景で悲しかったので、ちょいと変化を加えました。
Materialに適当にテクスチャを貼り付けて、それをSkyboxに設定。
今回はテクスチャとしてSprite Pack #1 - Tap and Fly < Sprites < Background < scene_01_sky を使用しました
あとは雲Sprite Pack #1 - Tap and Fly < Sprites < Background < scene_01_cloudをシーンに追加してちょっとだけマシになりました
ついでに床を少し追加。








写真は太郎が床と床の間にハマって身動きが取れないシーン笑

ゴールを設定する

ゴールがないと太郎がひたすら走らなきゃ行けなくなるので...ゴール作ります。
ゴールは花Sprite Pack #1 - Tap and Fly < Sprites < Background < scene_01_midgroundとテキスト3D Object < 3D Textを組み合わせて作った









っで、これらを全て子要素として親要素にCollider2Dをつけて接触判定をありにする。なお、タグをゴールとする。
あとはゴール後のシーン(シーン名:Clear)を作成して以下のスクリプトをMovePlayerに追加すればゴール後シーンが変わる。


敵キャラを作る

敵キャラはこいつ、二郎(名前はかなり適当)
Sprite Pack #1 - Tap and Fly < Sprites < Background < scene_03_pandulum にいます









っでこいつはひたすら右(進行方向)に進みながら爆弾を落としていくだけ。
爆弾は100フレームに一度落とすことにしました。
爆弾は適当に選んで、爆弾が何かに接触すると接触した物を破壊するっていうスクリプトを貼り付けてPrefabにします。
そして、以下のスクリプトを二郎に貼り付けてopponentに爆弾のPrefabを設定すればいい感じに出来た。

これでだいたいゲームとしては成り立つレベルには出来上がった。

そういえば、今のままだと落とされた爆弾は下に落ち続けるだけなので、以下のコードを爆弾の接触判定をしているスクリプトに付け足して、ある高さ以下まで落下したら自然消滅するようにしましょう。

それから以下を行うコードもスクリプトに追加しておきましょう。
コードは省略します。
・爆弾が太郎にぶつかったら、初期画面に戻る
・太郎が一定距離落ちたら、初期画面に戻る

ステージを頑張れば完成!

ステージを頑張って作れば、とりあえず完成です。
どういったステージにするかで個性が出てきそうですが、とりあえず僕が作ったのは以下の動画を参照。

今回はしなかった
・スコアをつける
・敵の種類を増やす
・攻撃のバリエーションを増やす
・太郎が攻撃する
・アイテムがある
とかすると、もっと面白くなりそうですね!
そのうち頑張ろう...

ちなみに、ここまでは2時間もかからず出来ました。
やっぱりこの程度のゲームを作るのは簡単ですねー。Unity素晴らしい。

--- 関連記事 ---
2Dゲームを作ってみた!(1)
2Dゲームを作ってみた!(2)

2Dゲームを作ってみた!(1)

まだまだUnityを初めて間もないわけですが 、とりあえず過去に流行ったゲームを作ろうと思ってチャ◯走に似た(ほぼパクリな)ゲームを作りました。

ゲームタイトルは「走れ、太郎!」
(ひたすら敵が襲ってくるのでゴールまで逃げるだけです)

↓完成動画


2D画面にステージと主人公(太郎)を作成

まずは、ステージと主人公がいなけりゃ何も始まらない。
ってことで適当にステージと主人公(太郎)をシーン上に作成。

ちなみにこのゲームではAsset StoreからSprite Pack #1 - Tap and Flyをインポートしてます
こいつを太郎と命名して本ゲームの主人公としてます笑








太郎はSprite Pack #1 - Tap and Fly < Sprites < Player にいます
太郎とSprite Pack #1 - Tap and Fly < Sprites < Background にあるステージになりそうなの以下をシーンに配置します
そして、太郎と床にAdd ComponentからCollider2Dをつけて当たり判定をします。なお、太郎にはRigidbody2Dもつけて重力を反映させます
※ Colliderはいい感じに大きさを調整してください。

これで、太郎が床に着地するようになりました!万歳!
こんな感じ↓







まだ背景も殺風景で悲しい...
けど、とりあえず我慢。

太郎よ、動け!

次は太郎を常に右方向へ一定速度で動かすようにします。
以下のスクリプトを太郎に貼り付ければ動くようになります。

ちなみに関数Updateの1行目以外はジャンプ動作のコードになります。
このコードでは床との接触判定をして接触していればジャンプ可能、していなければジャンプ不可ってのを実現してます。
詳しくはここを参考にしました。
さて、ここまでで動かすと太郎が可愛くコロコロ回りながら進みます。

全く狙ったわけではないけど、太郎の頭が真下向いているときはジャンプできないのが面白い。
スペースキーを押すタイミングが、このゲームのキーになりそう。

カメラを太郎に追従させる

今のままだと、太郎が画面から消えちゃうんで、カメラに太郎を追従させます。
まずはCamera Parentを作ってMain Cameraを子にします。
するとParentを動かすと子はついてくるようになります。
ってことはスクリプト的にはParentの位置を太郎の位置に応じて変化させればいい感じに追従するはず!ってことで以下のスクリプトをParentに貼り付ける。

あとはParentと子カメラの位置を微調整すればOK



今回はここまでで。
次はゴールと敵キャラ(太郎を追っかける悪者)を作りたいと思います。

--- 関連記事 ---
2Dゲームを作ってみた!(1)
2Dゲームを作ってみた!(2)

Unity始めるなら、この本!「Unityで神になる本」

Unity関連のイベントを一気に3つも開くにもかかわらず
実はUnityをまじめに触り始めてまだ2,3週間という....

というのも、○○プロジェクトの某社に9月末インターンで行くことになり
やばい!勉強しないと!となりUnityをあさり始めたら
すっかりハマってUnityおもろいじゃないか!
しかもちょっと勉強しただけで結構のクオリティーのゲームが作れる!


気づけばイベントを開くことになってました。
イベントについては↓を参照
第4回 Oculus Game Jam in Japan 広島会場
第4回 Oculus Game Jam in Japan 広島会場 で作るゲーム案を考えよう
Unity勉強会 + VR勉強会 +有料アセットお試し会


っで、本題。













Unityで神になろうじゃないか!

Unityの参考書はたくさんある。
そもそもネット上でいっぱい解説されている。
それでも、これを買おう!
Unityで神になる本

実際に買ってみて、おぉーUnityすげー!の連発でした。
初めて、Unityを始めたらみんな同じ感覚になると思います。

中身も非常に丁寧だし、可愛い独特のイラストも多く
見やすい・分かりやすい

一つ、Javascriptなのが残念だけど、
ほかに特に不満なことはない、まさに神本です。

ってことで、これからUnityを始めようっていう方に是非お勧めします。