3Dゲームを作るために

 この記事は、SLP Advent Calender 2014の14日目です。

  • まえがき

今回初めて、Advent Calenderを書くことになります。

今学期は、風邪やらテストやらでほとんど何も出来ていないので、

そろそろ進捗出さないとヤバい...

とりあえずUnity(ユニティ)に軽く触れて勉強しようと思います。

その前に、まずはUnityの紹介から。

 

  • Unityとは

UnityはWindowsOS X上で動作する統合型ゲーム開発環境であり、
WindowsMacLinuxAndroidiOSFlashなどのプラットフォームに向けた3Dアプリケーションを作成できる。Java Script、C#、Booの3種類の言語が使用可能である。

Unityで開発されたゲームは下記の公式ページで確認できる。
http://japan.unity3d.com/gallery/made-with-unity/game-list

いくつか知っているゲームもあるのでは?

多機能な有料のProバージョンもあるけど、個人的には無料版でも十分すぎると思う。

 

  • Asset Store

App StoreじゃなくてAsset Store。

僕みたいな「絵が上手く描けない」人や「3Dモデルなんかつくれるわけない」なんて人でも安心。Unityエディタ内から接続できるアセットストア内には、無料/有料のキャラクターモデルや、BGM、テクスチャ、スクリプトなどゲーム作成に役立つ素材が揃っている。

今回は、このAsset Storeに頼ってUnityにおける3Dゲーム制作の勉強をしようと思います。

 

  •  とりあえず

Unityで簡単な2Dゲームを作成したことはあるが、この機会に3Dモデルに少し触れてみようと思う。

まずは、アセットストアからUnity-chan(Unity Japan公式キャラ)をダウンロード。
Unityちゃんの動かし方が分からないので、次のサイトの「Unityちゃんを動かしてみる」の記事を参考にした。

マルチプラットフォーム対応のゲーム開発エンジンUnityを体験する | Think IT(シンクイット)

Unityの環境構築や操作ガイドも詳しく書いてあるので、初めての人はそちらを参考に(操作ガイドを読んだ前提で書いていきます)。

操作しない人は見なくても大丈夫です。


まずは、フィールドを作成。
[Game Object] - [3D object] - [Terrain]と選択すると、図1のような平面が出現する。

 

f:id:hururuas:20141213112034p:plain

 図1 Terrainの作成


画面右部[Inspector]内の[Terrain(Script)]で直観的に地形を作成することが出来る。
今回作成した地形は図2の通り。

 

f:id:hururuas:20141213104950p:plain

図2 10秒で作成した山

 

このままでは殺風景なので、[Terrain(Script)]内の筆のマークをクリックし、[Edit Textures] - [Add texture]を押してテクスチャを選択。Scene上で右クリックしながらなぞった部分にテクスチャが反映されます。

良いテクスチャが無いなら Asset StoreへGO! 詳しい方法は、先ほどのサイトで確認してほしい。今回はGround Texture Packというアセットを使用した。

空も薄暗いので、画面左の[Hierarchy]の[Main Camella]を選択した状態で[Component] - [Rendering] - [Skybox] を選択。Main CameraのInspectorにSkyboxの項目が出来るので、右端の小さなボタンで変更。ここではWispy skyboxというアセットを使用した。

先ほどのサイトを参考にUnityちゃんの設定を行い、最終的には図3のようになった。ここまでわずか30分ほど(糞回線のせいでアセットのダウンロード時間が長かった)。FPS等でおなじみのW・A・S・DキーでUnityちゃんが前後左右に動きます。

 

f:id:hururuas:20141213113233p:plain

 図3 完成?

 

ここまで自分自身はコードを一切書いていませんが、最低限の枠組みは出来ました。これをゲームにするためにはプログラムの制作は必須だと思うので頑張りたい。Unityでは物体を動かしたり回転させたりすることは簡単に出来るので、興味があればぜひ試してほしい。

 

 

  • あとがき

 なんとなく3Dモデルの扱い方が分かったような気がする。今回はプログラムを何一つ書いてないので、冬休みの間にプログラムを書いてゲームと呼べる物を作りたい。時間があれば3Dモデルの作成やイラストを描きたいと思っています。

 

とりあえず目の前の課題とテストを片付けねば...

拙い文章で失礼しました。

 

  • 参考文献

Unity - Game Engine

Wikipedia Unity(ゲームエンジン)

マルチプラットフォーム対応のゲーム開発エンジンUnityを体験する | Think IT(シンクイット)