爆速! Unity でアングリーバード的なゲームをつくる。
海賊王をめざす男 マツです。こんにちは。
最新各地で動きのある Unity ですが、初歩の進めとしてアングリーバード的なゲームをつくる簡単なデモを紹介します。
【Demo】
画面をクリックするとボールが発射します。
ブラウザでも確認できるように Unity の Web プレイヤーで書きだしています。
Unity Web Player ダウンロード
http://unity3d.com/webplayer/
これが今回のサンプルの完成形
グラウンドとボール、ブロックだけのシンプルなものです。
Unity を起動し、[File]_[New Project] でプロジェクトを新規作成をしたら TestScene という名前のシーンを保存します。
Hierarchy
このような GameObject 構成です。それぞれの作成方法は―
Player となるボール Sphere を作成
[GameObject]_[Create Other]_[Sphere]
Sphere に Rigidbody コンポーネントを追加
[Component]_[Physics]_[Rigidbody]
Sphere から Player に名前を変更。
(名前は、適当なもので OK です。)
Ground となる Cube を作成
[GameObject]_[Create Other]_[Cube]
Scale を調整して、地面とみたてます。
ブロック となる Cube を作成
[GameObject]_[Create Other]_[Cube]
Cube に Rigidbody コンポーネントを追加
[Component]_[Physics]_[Rigidbody]
Inspector の Mass で、Cube の質量を調整します。
値が小さくなると軽い Cube となります。
Cube を複製してブロックを積み上げます。
それぞれの Cube の Scale を調整して、縦長、横長のブロックを用意します。
明りとなる Point Light を作成
[GameObject]_[Create Other]_[Point Light]
GameObject がよくみえるところに配置してください。
ボールを発射する
PlayerConntroller となる空の GameObject を作成
[GameObject]_[Create Empty]
Project に JavaScript ファイルを作成します。
Project [右クリック]_[Create]_[JavaScript]
PlayerController.js
var player : GameObject; var shootPowerX : float = 400.0; var shootPowerY : float = 400.0; function Update () { if ( Input.GetButtonDown("Fire1") ) { player.rigidbody.AddForce(shootPowerX, shootPowerY, 0); } }
マウスクリックされたら、player に対して、力を加えるという簡単なお仕事です。
PlayerController.js を Hierarchy の PlayerConntroller(空の GameObject) にドラッグ&ドロップします。
自作のコンポーネントをつくり、GameObject に対して適応させたということになります。
Hierarchy の PlayerConntroller を選択すると Inspector にコンポーネントのパラメータが表示されます。
Player のところに Hierarchy の Player をドラッグしましょう。
リセットボタンをつくる
空の GameObject を作成
[GameObject]_[Create Empty]
名前を Trigger とします。
Project に JavaScript ファイルを作成します。
Project [右クリック]_[Create]_[JavaScript]
名前を Trigger.js とします。
Trigger.js
function OnGUI () { if ( GUI.Button(Rect(10, 10, 50, 50), "Reset") ) { Application.LoadLevel("TestScene"); } }
Reset ボタンをクリックしたら、シーンを再読み込みをするものです。
Trigger.js を Hierarchy の Trigger(空の GameObject) にドラッグ&ドロップします。
デモ
【Demo】
画面をクリックするとボールが発射します。
ブラウザでも確認できるように Unity の Web プレイヤーで書きだしています。
Unity Web Player ダウンロード
http://unity3d.com/webplayer/
ボールやブロックの数や設定を調整することで面白いゲームがつくれると思います。
Unity のゲームエンジンの可能性がなんとなくつかめたでしょうか。
Unity は 3D 描画や物理演算に加えて、パーティクルなどの GUI もそろっています。
今年の夏休みの自由研究は、Unity で決まりです!