Unity はじめました。
海賊王をめざす男 マツです。こんにちは。
Unity で iPhone & Android アプリをつくろう。
Unity for iPhone and Android
http://unity3d.com/japan/mobile.html
Unity Spring 2010 Highlight Reel from Unity3D on Vimeo.
Unity は、本格的なゲームの開発を誰でも可能にすることを目標に作られたゲーム開発ツールです。
iPhone や Android などのプラットフォームに対して効率よくゲームを提供することが可能です。
ダウンロード
UNITY: Download and Start Creating Games
http://unity3d.com/unity/download/
Unity から MonoDevelop を関連付ける
Unity といっしょにインストールされる MonoDevelop を Unity のエディタとして関連付けます。
Windows の場合
Unity [Edit]_[Preferences]_[External Script Editor]
Unity\MonoDevelop\bin\MonoDevelop.exe を選択
Mac の場合
Unity [Unity]_[Preferences]_[External Script Editor]
アプリケーション/Unity/MonoDevelop.app を選択
これで、Unity の Project パネルから js, C# ファイルを MonoDevelop で開くことができます。
Mac MonoDevelop の GUI 日本語 文字化け対応
MonoDevelop.app を右クリックで、[パッケージの内容を表示]
/Contents/Frameworks/Mono.framework/Versions/Current/etc/gtk-2.0/gtkrc
font = "Lucida Grande 12"
の下に
font_name ="Hiragino Kaku Gothic Pro 12"
を追加する。
Mac MonoDevelop の 日本語 文字化け対応(表示)
MonoDevelop [Prefarences]_[テキストエディタ]_[一般]_[フォント]_[カスタム]
"Hiragino Kaku Gothic Pro W3, 12" を選択。
ただし、表示だけで、直接 日本語の入力はできません。テキストエディット等をコピペで入力は可能。
デバッグ
ブレークポイントを指定してデバッグするには、Unity を MonoDevelop から起動する必要があるみたいです。一度、Unity を閉じて、
MonoDevelop [Run]_[Debug] を実行すると Unity が起動して、デバッグが開始します。
Unity の基本
Unity は、GameObject と Component の関係を理解することがまず一歩目。
Component
メッシュ、マテリアル、地形データ、パーティクルシステムなどの描画要素を表します。
カメラ、ライトなどの抽象的なものもあります。
GameObject
Componentのコンテナ。
全ての GameObject は、位置と向きを指定する transform コンポーネントを持ちます。
複数の Component をひとつの GameObject に付加できます。また、複数のスクリプトも格納できます。
しかし、パーティクルシステムを定義するようなコンポーネントは、1つの GameObject に1つだけです。
もし、複数のパーティクルシステムを使用したい場合は、ゲームオブジェクトを階層化し、複数がパーティクルシステムを保持するようにします。
Prefabs
テンプレート定義されたアセット。
Project で、Prefabs をクリックし、設定(Inspector)を変更すると Scene 中の全てのインスタンスに即座に適応されます。
ゲームに登場する敵など再利用可能な要素。敵の動きを変更したい場合、Scene 中のそれぞれの敵の設定を変更するのではなく、
オリジナルの Prefab に設定されたスクリプトを変更すれば OK です。
Scene 中の特定のインスタンスだけに個別に設定を行うことも可能です。
Flash 技術者のための Unity 講座
Unity for Flash Developers - Tutorial 1
Unity for Flash Developers - Tutorial 1 from Richard Hart on Vimeo.
こちらに Flash 技術者のための Unity のチュートリアル動画があります。動画は、Tutorial 1 ~ Tutorial 7 まであります。
Flash Lite や AS2 以降の Flash 経験者であれば、理解できる内容になっています。
Unity は、C#, または js でコードを書きます。
例)Project にある Prefab を動的に生成するには、Instantiate を使用します。
var object:GameObject; // Prefab var instance:GameObject = Instantiate(object, transform.position, transform.rotation);
例)Instantiate は最上層に生成されるので親となる GameObject を指定します。
var object:GameObject; // Prefab var parentObject:GameObject; var instance:GameObject = Instantiate(object, transform.position, transform.rotation); instance.transform.parent = parentObject.transform;
例)Scene 中にある GameObject を削除します。削除する GameObject 名と何秒後を指定します。
Destroy(gameObject.Find("Hoge"), 3);
例)Scene 遷移
Application.LoadLevel("シーン名");
例)Scene 中にある Hand ( GameObject ) の OtherScript ( Component ) の変数 foo に値をセットします。
transform.Find("Hand").GetComponent(OtherScript).foo = 2;
例)Scene 中にある Hand ( GameObject ) の OtherScript ( Component ) のメソッド DoSomething に引数 ("Hello") で実行します。
transform.Find("Hand").GetComponent(OtherScript).DoSomething("Hello");
iTween
iTween for Unity by Bob Berkebile (pixelplacement)
http://itween.pixelplacement.com/index.php
Unity に移植された Tweener ライブラリです。Plugins に設置して使用できます。
使用例
iTween.MoveTo(gameObject,{"x":3,"time":4,"delay":1,"onupdate":"myUpdateFunction","looptype":"pingpong"});
iTween.MoveTo(gameObject,Vector3(2,0,0),2);
iTween ドキュメント
http://itween.pixelplacement.com/documentation.php
Unity はじめてみて
以前、Android で OpenGL でつくったゲームと同じ内容のものを Unity でつくってみたのですが、1 週間かかったものを 数時間でつくることができました。
ガラケーからスマホへという流れで、ゲーム開発に必要だったものは、Flash と同等(それ以上)の表現力、そして iPhone と Android の同時リリースといったものが挙げられます。
Unity は今後のゲーム開発の鍵となるでしょう。毎日が発見の連続で、Flash をはじめてさわったワクワク感を思い出します。
これからも Unity の情報を載せていきたいと思います。