--------

スポンサーサイト

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

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

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

今回の更新では
敵・お邪魔キャラの速度や、プレイヤーの攻撃の調整など
ゲームバランスに関わるところの調整をしました。。
後はゲームオーバーのフローを作成すればひとまずは全要素が実装されるんではないかと思います。
もしかしたら今週末に完成するかもしれません。
仕事の合間にポチポチつくらねば・・・

今日はなんとなくデルタタイムのお話。

http://unity3d.com/support/documentation/ScriptReference/Time-deltaTime.html


いまどきのゲームエンジンは基本設計としてデルタタイム(DeltaTime)ってのを採用しています。
これは、前のフレームから現在のフレームまでに掛かった時間の値のことでして
60fpsのゲームで遅延が発生しなければマイフレーム約18msの値が入ります。
ゲームエンジンによって、デルタタイム1あたりの単位が変わってくるのですが
Unityでは単位が秒になっているので、18msなら0.018になります。

このデルタタイムは、アニメーションをさせる場合にかなり強力な数値となります。
例えばゲームでキャラクターや弾などを動かす場合、マイフレームx方向に1mずつ移動する処理にすると
60フレームで60mほど移動する計算になります。
60fpsのゲームでは通常時は1秒当たり60m進むことが見込まれますが
もしエフェクトなどが大量に発生して処理落ちが起こり1秒当たり50フレームしか処理できなかった場合では
50mしか動かないことになります。
これがデルタタイムを使用して、マイフレーム(デルタタイム*60m)って計算を行うと
1秒当たり60フレーム処理をした場合でも、50フレームの場合でもUnityでは1秒当たりデルタタイム=1となるので
同じ60m移動するようになります。
この様な設計を「可変フレーム」と呼び、処理落ちが発生した場合でもアニメーションの中割が抜けたような
表示になるだけでゲームのテンポが一定を保たれるために最近のゲームでは結構対応されています。

スマホは性能がピンキリなので、アクションゲームなどでどんな機種でも
一定のゲームスピードを保ちたい場合は採用することをお勧めします。
ちなみにUnity上ではこんな感じで使用できます。

position.x += Time.deltaTime * 10; // 1秒当たりx方向に10移動します。




スポンサーサイト

theme : ソフトウェア
genre : コンピュータ

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