こんにちは。松田です。 最近ハマっているUnityについてご紹介します。
Unityとは
Unityとは、PC/スマホ/タブレット/家庭用ゲーム機などのプラットフォーム向けに3Dゲームが作れる開発環境です。
※ 対応プラットフォーム
http://japan.unity3d.com/unity/multiplatform/
有名なゲームアプリ「白猫プロジェクト」や「ドラゴンクエストVIII」のスマホ版などの開発でも使われています。その他にもUnityを使った開発事例はたくさんありますので、ご参考ください。
※ Unityの製作事例
http://japan.unity3d.com/gallery/made-with-unity/game-list
Unityの開発環境の準備
開発環境の構築は、公式サイトからダウンロードしてインストールするだけです。Unityは有償ですが、無償でも使えます。
ただし無償の場合はゲーム起動時にUnityのロゴが表示されます。
※ Unityのダウンロード
http://japan.unity3d.com/
Unity Asset Store
3Dゲームを作るうえで欠かせないのが3Dモデルです。しかし、複雑なモデルをいちから作るのは敷居が高く感じるかと思います。
でもご安心ください。UnityにはUnity Asset Storeというものがあり、有償・無償の3Dモデルが数多く提供されています。
私もモデリングのスキルはありませんので、Unity Asset Storeのものを使ってゲームを作っています。
ゲームを作ってみる
では実際にゲームを作ってみましょう。まずは土台となる地面を作ります。
地面をつくる
地面はUnityの機能であるTerrainオブジェクトを設置することで実現します。
地面っぽく見せるために、テクスチャを設定します。 私は絵を描くスキルもありませんので、テクスチャはAsset StoreのOutdoor Ground Texturesを使わさせていただきました。
また地面の周辺を高くし、地面の端っこの切れ目が見えないようにします。
地面の先に何もない空間が広がっているのが見えると不自然ですからね。
空を表現する
UnityはSkyboxという機能で簡単に空を表現できます。テクスチャはSky5X Oneを使わさせていただきました。
- Skybox設定前
- Skybox設定後
町を作る
地面ができましたので、今度は建物を設置していきます。モデルは以下を使わさせていただきました。
町っぽくなるように設置します。
キャラを配置
ゲームの主人公としてAnimated Spartan King、敵キャラとしてSkeletons Packを設置します。
この2つのモデルはモーションも付いていてすぐにゲームに組み込めて便利です。
無料で提供してくださっている作者の方に感謝です!
キャラを動かす
ここからプログラミング作業になります。逆にいうとここまではプログラミングなしで作成できます。
プログラミング言語としてC# または JavaScript または Boo を使います。私はC#を使っています。
プログラムの概要は以下の通りです。
主人公が常に表示されるよう、カメラを追従させる
敵に近づくと、主人公へ攻撃させる
敵をクリックすると、主人公が攻撃する
敵の体力が0になったら消す
主人公の体力が0になったら倒れる
プログラムコードは3Dモデルなどのオブジェクトに取り付けます。このあたりはFlashの開発に似ているなと感じました。
ゲームを動かしてみる
開発環境上で動かす
Unityは開発環境上でゲームを実行できます。すぐに動作を確認できるので作業が捗ります。
では実際にゲームを動かしてみます。こちらが完成したゲームです。
町に出現したスケルトンを倒していくゲームが完成しました。フィールド内を自由に移動できるオープンワールドなゲームになっています。
動かしてみて気づいたのですが、攻撃の当たり判定がおかしかったり、攻撃が届かない距離で攻撃モーションを出してしまったりと、いろいろと改善の余地がありそうです。
手元のスマホで動かす
Unity は Android や iPhone* 向けにビルドしてスマートフォン上で動かすこともできます。プログラムコードを一切変更することなく手元のAndroidで問題なく動作しました。
* iPhone 向けのビルドは MacBook が必要になります。
手元のAndroid端末(HTC J)で実行したところ
まとめ
今回Unityをご紹介しましたがいかがだったでしょうか。雰囲気だけでも伝わりましたでしょうか。
1から3Dゲームを作るのは、絵を描いたり、モデリングしたり、プログラミングしたりと、色々なスキルが必要ですが、Unityを使えばAssetStoreでテクスチャや3Dモデルが手に入り、物理演算などの高度なプログラミングも必要なく(Unityのゲームエンジンが担ってくれます)3Dゲームが作れます。
Unityは無料ではじめられますので、興味を持たれた方はぜひ挑戦してみてください。