--------

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2012-01-15

【Unity】ぴーちゃんゲームを開発してみる1

Unity[http://unity3d.com/japan]
QuadUI[http://blog.equals-equals.com/quadui]
作成中のゲーム(最新版)[ぴーちゃんのゲーム」 ルールはクリックすれば火が飛んでくのでそれを鶏にあてるだけ!

Unityで2Dなゲームの「ぴーちゃんゲーム」を作成しています。
サポートツールとしてQuadUIを使用しています。

「ぴーちゃんゲーム」のルールは、ボタンを押すとひよこが火を飛ばすので
空を飛んでる鶏とかなんかに当ててスコアを稼ぐゲームみたいです。
ミサイルに当たるか時間切れでゲームオーバーになるっぽいです。
もともとは友人が開発した携帯向けのゲームでして、今回チュートリアルも兼ねてUnityに移植をしています。

まず、開発を始めるためにQuadUIをUnityのプロジェクトにインポートすることから始めました。
そしてQuadUIの目玉だと勝手に思っているテクスチャ切り出し+αツール(QuadUIEditer)を
使用して、「ぴーちゃん」で最低限必要な要素の「プレイヤーキャラ(ぴーちゃん)」、
「敵キャラ」「火」を作成してみたのですが、なんかうまくいかず
背景色が表示されたままの状態で表示されるようになってしまいました。

最初は透明色の指定でもできるかと思って調べてみましたが、
QuadUIではアルファ値で透過させる部分を指定する方法を採用しており
QuadUIに標準でついてきたシェーダー(2DBackfaceCulled)を設定したマテリアルを作って
そこから切り出すことでいい感じにぴーちゃんらが表示されるようになりました

必要な要素が用意できたので、それらをそれっぽい感じに配置し
敵キャラ生成処理と火生成処理、それらの行動処理を作成しました。
あとは当たり処理をつければ最低限のゲームにはなるので
それはUnityで勝手にやってくれるコリジョン処理にお願いすればOK!
いい時代になったものだなぁと感傷に浸っていましたが
当たりを判定した際にシステム側からコールバックされるイベント処理(OnTriggerEnterとか)
がまったく呼ばれる、ここまでの作業時間のほとんどはこの問題解決に費やされました。

結論から言うとこれはUnityの仕様で
コリジョン(XXXColliderのコンポーネント)同士の衝突判定をするためには
それを行うオブジェクトに剛体(ragidbody)のコンポーネントがないとダメってことでした。
更に、QuadUIEditerで作成したオブジェクトには標準でMeshColliderのコンポーネントがついてきますが
このMeshColliderをもつオブジェクトにragidbodyを追加するとエラーとなります。
どうやらragidbodyの仕様上、3次元の厚みを持たないCollider(x,y,zのいずれかに0が設定されている場合)
物理演算が行えないってことでエラーとなります。
なので、Colliderを使用してUnityでやってくれる衝突判定の機能を使う場合は
QuadUIEditerで作成されたオブジェクトのMeshClliderをBoxColliderなどに置き換えて
さらにragidbodyを追加してあげる必要があります。

そんなこんなで何とか最低限の機能がつけられたので
UnityのBuildターゲットをWebPlayerにして作成してみたのをあげてみました。
記事のトップにURLを張っておきましたで興味があるかたはどうぞ。
ちょこちょこ機能を追加していこうかと思っております。
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。