Unity

【Unity】Time.timeScaleを変更した上でdeltaTimeを取る方法

個人的に、かなり久しぶり(3ヶ月弱ぶり)のブログになりますが、今回はUnityのTime.timeScaleに関して書いていきます。

とはいえ、一口にTime.timeScaleを取ってみても注意点は幾つかあると思いますけど、この記事ではTime.timeScaleの値を変更したときに、Time.deltaTimeも一緒にずれてしまうのでその計算方法についてです。

Time.deltaTimeと、Time.realtimeSinceStartup

ゲームなどでよくある制限時間などは、Time.deltaTimeを利用して計算することが多いです。しかし、Time.timeScaleを変更すると、そのTime.deltaTimeの時間の流れをも変えてしまいます。(どう変わるかは後述します)

まず、Time.timeScaleの値の意味合いは以下になります。

  • Time.timeScale = 1.0f (通常(1倍速))
  • Time.timeScale = 2.0f (2倍速)
  • Time.timeScale = 0.5f (0.5倍速)

そのため、Time.deltaTimeも上記の速度になるので、Time.timeScaleが1fでないと実際の時間(1倍速)とはずれてしまいます。それは困りますよね。『おれ、ゾーンにでも入っているのか…』みたいな気持ちにさせてしまうかもしれませんよね。まぁそれはそれでアリな気もしなくはないですけど。

ということで、この場合に使えるgetterが用意されているわけです。それが、Time.realtimeSincesStartupです。これは、ゲームの開始から実際の時間軸で起動時間を計測しているので、この起動時間を利用すればTime.timeScaleに影響せずにdeltaTimeが取れるようになります。やったね!

 

そこで、Time.timeScaleと、Time.deltaTime、Time.realtimeSincesStartupを検証してみました。検証に使ったスクリプトと結果は以下になります。この結果のように、Time.timeScaleの値を変更しているときは、Time.realtimeSincesStartupを使ってdeltaTimeを計算できますよーという話でした。(多少のズレはご愛嬌ということで…)

※個人的に、Gistを使って見たかっただけという話もありましたw

 

 

【Unityメモ】背景をスクロールさせて、移動しているように見せる方法

Unity-Logo

シューティングゲームや、キャラがひたすら走るようなゲームにおいて、背景(マップ)を作り込むのはけっこうしんどいですし現実的ではないと思います。

そういったゲームの場合、基本的に背景は変えずにプレイヤーをその場で移動させているように見せることが主流なんじゃないかと。(特に、カジュアルゲーム)

ちょうど自分もいまそのような仕組みでゲームを作成していたので、整理がてら書いていきます。

続きを読む

【Unityメモ】Render Textureを使って、擬似的に鏡を表現する方法

Unity-Logo

Unityは以前から趣味的に使っていましたが、いよいよ本格的に使うことになってきたということもあって自分へのメモと理解を深めるためにブログでちょっと書いていこうと思います。

ということで、記念すべき第一回目は「Render Textureを使って、擬似的に鏡を表現する方法」です。

一回目から何でこんなテーマかと言うと、最近必要に駆られたやってみたからです。今後もそういう形でテーマは採択していくことになるかと思います。続けばですが。笑

続きを読む

Oculus対応も簡単!ついに、ユニティちゃんライブのデータが公開されたぞー

201411_unitychan

今年の夏コミで初披露されて以来、様々なイベントなどで披露されてきたユニティちゃんのライブのプロジェクトデータ(ソースコード)がついに、丸ごと無料で公開されました。ぼくがこのライブを初体験したのは、10/26に行ってきたDCEXPOのOcufesブースでした。

VRで体験したこともあって、本当にライブを独り占めしているような感覚でした。しかも距離感が絶妙に近くて、それこそ手を伸ばせば触れられそうと感じたくらいです。いやー、興奮しましたね。

実はこの体験をしたときに、「ユニティちゃんライブのデータ(ソースコードも)が公開されますよ。」という情報をキャッチしていました。これは公開されたら直ぐに体験しようかと。それで、勉強もしようと思ってました。なので、今回このデータが公開されたの個人的にとても嬉しいニュースでした。

続きを読む

Unity free版 が Oculus Rift に対応 !開発を始めるにあたっての敷居が下がってきた

201410_unity

先月に開催された、OculusVR社の開発者会議「Oculus Connect」では、新プロトタイプの Crescent Bay の発表だけでなく、ゲームエンジン Unity との戦略的提携の発表がありました。

Unity との戦略的提携の1つだと思われますが、従来「Pro」版でしか Oculus Rift の開発を行えなかったのを「free」版でも開発できるようにすると明言されて期待が高まっていました。そして、今回ついに Unity free 版での対応が完了し、SDKが公開されたようです。

これは個人的にすごく嬉しいニュースでした。ぼくは先週に、Oculus Rift DK2 が届いたので本当にナイスタイミングだと言いたくなりましたね。

続きを読む