OpenGL ESが大変な3Dアプリ開発を楽にするUnity:ここが大変だよiPhone開発(5)(5/5 ページ)
iPhoneゲーム開発に必須のOpenGL ES。そのコーディングに手こずっている方に有用なツールを紹介し簡単なサンプルを作成します
□ ボールオブジェクトの作成と設定
次に、ボールオブジェクトを作成します。方法は、Unityのメニュー[Game Object]→[Create Other]→[Sphere]を選択します。
小さい球が[Position]でいう「0, 0 , 0」に作成されました。もう少し見やすく、またカメラの画角に入るために[Position]は「0, 25, 0」で、[Scale]は「50, 50, 50」に[Inspector]ビューで設定しましょう。[Game]ビューは下図のようになるはずです。
この状態で[Game]ビューの左下にあるコントロール(下図)の左のスタートボタンを押してみてください。
特に何も起こらないと思います。ここでボールに対して、現実世界と同様に重さを持つ物理モデルを適用します。Sphereを選択した状態で、Unityメニューの[Component]→[Physics]→[Rigidbody]を選択します。
すると、Sphereの[Inspector]ビュー上にRigidbodyのプロパティが追加されます。プロパティには[Mass](質量)などがあることが分かります。今回は、[Mass]を「100」に設定してください。
また、[Use Gravity]のチェックボックスはOnにしておいてください。ここでもう一度スタートボタンを押すと、ボールが落下し、floorに落ちるのが確認できると思います。
□ ボールオブジェクトに加速度センサのスクリプトを適用
ここからが本番です。ボールオブジェクトに動きを付けてみましょう。今回は、iPhoneの加速度センサを利用し、後ろに傾けると前進、前に傾けると後進(画面手前方向)、左に傾けると左方向、右に傾けると右方向に動くようなスクリプトを作成し、ボールオブジェクトに適用します。
まず、[Project]ビュー上の[Create]ボタンを押し、[C Sharp Script]を選択します。今回は、C#ですが、JavaScriptの方が得意な方は、JavaScriptでも作成できます。
次に、作成したScriptを選択すると、[Inspector]ビュー上にあるScriptが下図のように表示されます。[Edit]ボタンを押すと、Scriptのエディタが表示され編集可能になります。
Scriptエディタに、以下のように記述してください。
using UnityEngine; using System.Collections; public class BallBehaviourScript : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { float z = iPhoneInput.acceleration.z * -5; transform.Translate(0, 0, z); float x = iPhoneInput.acceleration.x * 3; transform.Translate(x, 0, 0); } }
重要な個所を順に説明すると、以下のようになります。
- using Unity Engineの使用を宣言
- MonoBehaviourクラスを継承したBallBehaviourScriptクラスを作成。MonoBehaviourクラスは、オブジェクトの動作を定義するために必要なクラス
- Update( )関数内にiPhoneInput.accelerationから各軸の加速度を取得
- 取得した加速度をtransform.Tranlateでセットし、ボールを移動させる
□ iPhoneにインストールして確認
「サンプルを動かしてみよう」の章で行った方法と同様にiPhoneにインストールしてください。iPhoneを傾けることで、ボールが転がっていることが確認できると思います。
□ ボールオブジェクトをカメラで追従するように設定
最後に、ボールオブジェクトをカメラで追従できるように設定します。これは簡単で、[Hierarchy]ビュー上でMain Cameraをボールオブジェクトに対して、ドラッグ&ドロップしてください。
もう一度、実機で確認すればボールの動きに対してカメラが追従しているのが分かると思います。これは、Hierarchy(階層化)によってボールオブジェクトがカメラの親となるため、親が動くと同様に子も動くためです。階層化は、よく使われるので、覚えておいてください。
iPhoneで動かした様子は、以下のキャプチャのようになります。
ボールオブジェクトの色が違うのはMaterialを作成して、DiffuseやSecularの色を変えたためです。自身で設定してみてください。
「ここが大変だよ」を乗り越えた先に……
今回は、OpenGL ESを使ったiPhoneアプリの作り方や、Unityの基本的なところを説明しましたが、いかがでしたでしょうか。今後、ゲームを作成するうえで、アニメーションの適用、Materialおよびコントローラの作成など種々の要素があると思いますが、[ヘルプ]メニューからドキュメントをたどっていけば、方法は書かれているので、ぜひ3Dのグラフィックを生かしたiPhoneアプリやゲーム作成にチャレンジしてください。
さて、本連載は今回で最終回です。いままで本連載「ここが大変だよiPhone開発」をご愛読いただき誠にありがとうございました。この連載では、「ここが大変だよ」というテーマの下、開発から販売するところまで一通り紹介致しましたが、いかがでしたでしょうか?
アップルが2008年にスタートしたAppStoreという革命的なソフトウェアマーケットは、いまや総アプリ数が15万本を超えるマンモスプラットフォームになっています(ちなみに、主な家庭用ゲーム機では1000〜3000本程度といわれています)。
iPhone端末自体のUX(ユーザーエクスペリエンス)が素晴らしいだけでなく、AppStoreがもたらしたアプリ開発者が簡単に代金回収できるシステムは、アプリ開発者のモチベーションを上げ、新アプリが続々登場することとなり、それによってアップルも後発、独自OSながら約1年半という短期間で対応アプリ数が15万本を超えるまでに成長しました。
今後もアプリは増えるだろうし、新型モバイル端末の噂もあり、ますます競争が激しくなっていくと思われますが、基本的に本連載で一通り網羅しています。本連載が新たに参入する皆さまのお役に立てたならば幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- iPhoneでC#アプリが審査に通るワケ
- App Store登録もOK! JavaScriptで作るiPhoneアプリ
HTML+JavaScriptでiPhoneアプリをWebアプリ的に開発しつつ、App Storeで販売できてしまう一挙両得のハイブリッド手法でCoCoTwitter作りました - はじめよう3D描画、BREWでOpenGL ESプログラミング
OpenGL ESプログラミングの準備とEGLインターフェイスの設定を行い、OpenGL ESによる3Dグラフィックス描画にチャレンジする - iPhoneアプリ開発入門
盛り上がるiPhoneアプリ開発。そのハウツーや魅力に関する@IT記事一覧です