連載
» 2010年01月27日 00時00分 公開

OpenGL ESが大変な3Dアプリ開発を楽にするUnityここが大変だよiPhone開発(5)(5/5 ページ)

[高浦二三康, 岩田和宏,株式会社コニット]
前のページへ 1|2|3|4|5       

ボールオブジェクトの作成と設定

 次に、ボールオブジェクトを作成します。方法は、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のエディタが表示され編集可能になります。

どのスクリプトを作成するか選択 [Edit]ボタンを押しましょう

 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で動かした様子は、以下のキャプチャのようになります。

iPhoneで動かした様子 そして、iPhoneへ…

 ボールオブジェクトの色が違うのはMaterialを作成して、DiffuseやSecularの色を変えたためです。自身で設定してみてください。

「ここが大変だよ」を乗り越えた先に……

 今回は、OpenGL ESを使ったiPhoneアプリの作り方や、Unityの基本的なところを説明しましたが、いかがでしたでしょうか。今後、ゲームを作成するうえで、アニメーションの適用、Materialおよびコントローラの作成など種々の要素があると思いますが、[ヘルプ]メニューからドキュメントをたどっていけば、方法は書かれているので、ぜひ3Dのグラフィックを生かしたiPhoneアプリやゲーム作成にチャレンジしてください。

 さて、本連載は今回で最終回です。いままで本連載「ここが大変だよiPhone開発」をご愛読いただき誠にありがとうございました。この連載では、「ここが大変だよ」というテーマの下、開発から販売するところまで一通り紹介致しましたが、いかがでしたでしょうか?

 アップルが2008年にスタートしたAppStoreという革命的なソフトウェアマーケットは、いまや総アプリ数が15万本を超えるマンモスプラットフォームになっています(ちなみに、主な家庭用ゲーム機では1000〜3000本程度といわれています)。

 iPhone端末自体のUX(ユーザーエクスペリエンス)が素晴らしいだけでなく、AppStoreがもたらしたアプリ開発者が簡単に代金回収できるシステムは、アプリ開発者のモチベーションを上げ、新アプリが続々登場することとなり、それによってアップルも後発、独自OSながら約1年半という短期間で対応アプリ数が15万本を超えるまでに成長しました。

 今後もアプリは増えるだろうし、新型モバイル端末の噂もあり、ますます競争が激しくなっていくと思われますが、基本的に本連載で一通り網羅しています。本連載が新たに参入する皆さまのお役に立てたならば幸いです。

前のページへ 1|2|3|4|5       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。