沖縄直撃の台風24号、、、。
ちょっと記憶に無いぐらい、強烈なやつでしたね。
2日間停電という事で、久しぶりにニンテンドーDSを
やりこんでやりました(笑)
真っ暗な中でやるバイオハザードは、大人でも恐怖です。
10分おきに「ひぃっ」とか言ってました。
そこで、今回はゲームの話題を。
少し前にpythonで2Dゲームを作成しました。
今回はUnityで2Dゲームを作成
してみましょうっ。そうです。
「ゆにてぃ」っていう読み方で大丈夫です。
Unityとはゲーム作りのためのプログラミングアプリ
Unity(別名:Unity3D)は、統合開発環境を内蔵し、~うんぬんかんぬん~。ウェブプラグイン、デスクトッププラットフォーム、ゲーム機、携帯機器向けのコンピュータゲームを開発するために用いる。100万人以上の開発者が利用している。Unityは主にモバイルやブラウザゲーム製作に使用する。このゲームエンジンはC言語/C++で書かれている。
(wikipediaより)
……わかりにくいと思うので簡単な言葉で表すと、色々な機械に対応したゲームを
簡単に作ることができるアプリって事です。
Unityを使って開発された市販のアプリは?
簡単に作成できると言ってもそれなりのものしかできないんでしょ?
と思ってるそこのあなたに、Unityはすごいですよ!ここでは実際にUnityを使用して作成された
作品をいくつか紹介します、ちなみに安定のウィキペディア調べです。
まずは1つめ
Unityで制作1|ドラゴンクエストⅧ(スマートフォン)
マジかよ、、、、。と思いませんでしたか?
言わずと知れたドラクエです、スマホ版ですが、Unityで作成されているようです。
すみません、僕はどちらかというとFF派ですね。クロノ・トリガーも大好きです。
とにかくこんな有名タイトルもUnityを利用して作られているんです。
続いて2つめ
Unityで制作2|ポケモンGO
なんですか?このキャラクター、、。台風で自分のPCが壊れたかと思いましが、
メルタンっていうらしいですね、ちなみに私は初代ポケモン世代です。
ちなみに、UnityでAR、VRに対応したゲームも作成できますよ。
Unityで制作3|スーパーマリオラン
ちなみに、小・中で走り方が変と言われたことがあります。
そして僕は人前で走ることをやめたクチです。
おっと個人的な話で失礼しました(笑)
世界一有名なキャラクターマリオも、Unityで作られてるんですね~。
こんな感じで、Unityは有名な作品にも広く利用されています。
unityが利用されるわけ
1.無料で利用することができる
売り上げや資金によっては有料のライセンスが必要となりますが、
これから学習を始める方には当てはまらない条件と思われますので
基本的には無料で利用可能です。
ライセンスについては以下URLをご確認ください。
https://store.unity.com/ja/products/unity-personal
2,色々な環境のゲームを作成することができる。
冒頭でも少しご紹介しましたが、Unityでは様々な機種に対応したゲームを作ることができます。
iOS、android以外にもwindows、mac等のパソコン、switch,ps4など多岐に渡ります。
ちょっと理解しにくいかもしれませんが、1つゲームを開発すれば、
上に挙げたゲーム機全てで遊べるようにすることができるということです。
3.素材がダウンロードできるアセットストアがある
簡単に表すと、ゲームの部品を販売しているストアです。
スマホでアプリをダウンロードするようにゲームの部品(キャラクターやマップ等)
をストアから購入して、作成中のゲームに組み込むことが可能です。
ストアなので、有料で販売されているものもありますが、無料のものだけでもゲームを
作ることが可能です。3Dモデルは自分で作成するのはハードルが高いですが
アセットストアを利用すると手軽に3Dゲーム作成にもチャレンジできるはずです。
4.ゲーム開発用に特化されている。
ゲーム開発用に特化されているため、衝突判定等のゲームに必要な処理を
1から書く必要がない。ゲームを0から作成するのは意外と手間がかかります。
当たり判定だったり、キャラクターを移動させてから画面の再描写とかですね。
Unityを利用するとめんどくさい処理を簡単に実装することができます。
5.利用者が多い
利用者が多いということは、参考になる情報もそれだけ多いので
開発に行き詰まった場合でもネットを探せば解決策がみつかる可能性が高いです。
ということで今回は簡単な2Dゲームを作成してみました。
こんな感じ。画像重めです!
unityでしていることをざっくりと
1.ジャンプ処理
下の処理は敵を踏んだ時の処理ですが、物理演算を利用して敵を踏んだ場合に
上の力を加えて反発するようにしています。
1 2 3 4 |
//踏んだ rbody.velocity = new Vector2(rbody.velocity.x, 0); rbody.AddForce(Vector2.up * jumpPower); collision.GetComponent<EnemyManager>().gameObject.GetComponent<EnemyManager>().DestroyEnemy(); |
2.当たり判定
Circle Collider 2D、Box Collider 2D を使って
当たり判定を行います。薄く見える緑の枠が当たり判定の範囲となります。
プレイヤーと敵キャラクター、ブロックに設定してを利用して
衝突の判定と様々なイベント判定を行っています。
3.アニメーションとアニメータ
キャラクター画像をパラパラ漫画のように切り替えたり、画面上を
上下にふわふわさせたりする等アニメーションを利用します。
このアニメーションを連携させてキャラの動きに合わせて割り当てていきます。
最初は色々なボタンやウィンドウがあり、とっつきにくいかもしれませんが
慣れればとても使いやすいので是非試して見てください。