Unityで3Dゲームを作ってみる

技術

 

こんにちは。松田です。 最近ハマっているUnityについてご紹介します。

Unityで3Dゲームを作ってみる_画像1

 

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/

Playframework

 

Unity Asset Store

3Dゲームを作るうえで欠かせないのが3Dモデルです。しかし、複雑なモデルをいちから作るのは敷居が高く感じるかと思います。

でもご安心ください。UnityにはUnity Asset Storeというものがあり、有償・無償の3Dモデルが数多く提供されています。

Playframework

私もモデリングのスキルはありませんので、Unity Asset Storeのものを使ってゲームを作っています。

 

ゲームを作ってみる

では実際にゲームを作ってみましょう。まずは土台となる地面を作ります。

 

 icon-check 地面をつくる

地面はUnityの機能であるTerrainオブジェクトを設置することで実現します。

Playframework

 

地面っぽく見せるために、テクスチャを設定します。 私は絵を描くスキルもありませんので、テクスチャはAsset StoreのOutdoor Ground Texturesを使わさせていただきました。

Playframework

 

また地面の周辺を高くし、地面の端っこの切れ目が見えないようにします。

地面の先に何もない空間が広がっているのが見えると不自然ですからね。

 

 icon-check 空を表現する

UnityはSkyboxという機能で簡単に空を表現できます。テクスチャはSky5X Oneを使わさせていただきました。

Skybox設定前

Skybox設定前

Skybox設定後

Skybox設定後

 

 icon-check 町を作る

地面ができましたので、今度は建物を設置していきます。モデルは以下を使わさせていただきました。

 

町っぽくなるように設置します。

Playframework

 

 icon-check キャラを配置

ゲームの主人公としてAnimated Spartan King、敵キャラとしてSkeletons Packを設置します。

 

この2つのモデルはモーションも付いていてすぐにゲームに組み込めて便利です。

無料で提供してくださっている作者の方に感謝です!

 

 icon-check キャラを動かす

ここからプログラミング作業になります。逆にいうとここまではプログラミングなしで作成できます。

プログラミング言語としてC# または JavaScript または Boo を使います。私はC#を使っています。

 

プログラムの概要は以下の通りです。

 icon-chevron-circle-right 画面上のクリックした位置に主人公キャラを移動させる
 icon-chevron-circle-right 主人公が常に表示されるよう、カメラを追従させる
 icon-chevron-circle-right 敵に近づくと、主人公へ攻撃させる
 icon-chevron-circle-right 敵をクリックすると、主人公が攻撃する
 icon-chevron-circle-right 敵の体力が0になったら消す
 icon-chevron-circle-right 主人公の体力が0になったら倒れる

プログラムコードは3Dモデルなどのオブジェクトに取り付けます。このあたりはFlashの開発に似ているなと感じました。

 

ゲームを動かしてみる

 icon-check 開発環境上で動かす

Unityは開発環境上でゲームを実行できます。すぐに動作を確認できるので作業が捗ります。

Playframework

 

では実際にゲームを動かしてみます。こちらが完成したゲームです。

 

町に出現したスケルトンを倒していくゲームが完成しました。フィールド内を自由に移動できるオープンワールドなゲームになっています。

動かしてみて気づいたのですが、攻撃の当たり判定がおかしかったり、攻撃が届かない距離で攻撃モーションを出してしまったりと、いろいろと改善の余地がありそうです。

 

 icon-check 手元のスマホで動かす

Unity は AndroidiPhone* 向けにビルドしてスマートフォン上で動かすこともできます。プログラムコードを一切変更することなく手元のAndroidで問題なく動作しました。

* iPhone 向けのビルドは MacBook が必要になります。

Playframework

手元のAndroid端末(HTC J)で実行したところ

 

まとめ

今回Unityをご紹介しましたがいかがだったでしょうか。雰囲気だけでも伝わりましたでしょうか。

1から3Dゲームを作るのは、絵を描いたり、モデリングしたり、プログラミングしたりと、色々なスキルが必要ですが、Unityを使えばAssetStoreでテクスチャや3Dモデルが手に入り、物理演算などの高度なプログラミングも必要なく(Unityのゲームエンジンが担ってくれます)3Dゲームが作れます。

Unityは無料ではじめられますので、興味を持たれた方はぜひ挑戦してみてください。

 

̃Gg[͂ĂȃubN}[Nɒlj