イベントTickノードとフレームについて[Tick]

目次

イベントTickノードとは

  • 毎フレーム実行されるイベント。
  • イベントTickノードに接続したノードは毎フレーム実行されることになる。
  • 過剰に使用するとゲームのフレームレートが低下する可能性がある。

フレームとは

  • 映像やアニメーション、ゲームなどは静止画を連続して表示させることで動いているように見せている。
  • その静止画の1コマをフレーム(frame)と呼ぶ。

フレームレートとは

  • フレームレートは1秒間に何枚のフレームを表示するかを表す単位。
  • 一般的に、フレームレートは「fps(frames per second)」という単位で表される。
  • 例えば、60fpsの場合は1秒間に60枚のフレームが表示されることになる。
  • そしてイベントTickノードに接続されたノードは1秒間に60回実行されることになる。
  • フレームレートが高いほど動画やゲームは滑らかに表示され、低いと動きがカクカクになってしまう。

イベントTickノードのDelta Seconds

  • イベントTickノードのDelta Secondsは前回のTickイベントからの経過時間(秒)を出力する。

Delta Secondsを画面に表示する

  • Delta SecondsをPrint Stringで出力する。
  • 値はばらついているが0.015142という数値が見えたので計算してみる。
  • 1フレームの時間が0.015142秒なので、1秒間では1/0.015142=約66FPSでていることになる。

FPSを固定する

  • Delta Secondsの値を見やすくしてみようと思い、FPSを固定してみることにした。
  • 設定は「プロジェクト設定」から行うため、まずはメニューの「編集」から「プロジェクト設定」を選択する。
  • 「プロジェクト設定」タブが表示されるので、「エンジン」>「基本設定」にある「フレームレート」の項目を変更する。
  • デフォルトではフレームレートは可変になっているので「固定フレームレートを使用」のチェックボックスにチェックを入れてFPSを固定化する。
  • 「固定フレームレート」は60でやってみる。

エディタの機能でFPSを表示させる

  • エディタでFPSを表示させる機能があるのでついでにこちらも表示させてみる。
  • エディタ左上のボタンを押すと表示されるメニューから「FPSを表示」にチェックする。
  • これで画面の右側にFPSが表示されるようになる。

プレイしてみる

  • 画面右端に表示されているのがエディタで表示させているFPS。
  • 多少前後するが60FPSで固定されているのがわかる。
  • 画面左端に表示されているのがイベントTickから取得したDelta Secondsで、表示される数値が固定されている。
  • 60FPSは1秒間に60フレームなので、1フレームは1/60=約0.016667秒だから計算した値に合ってはいるものの数値がまったく動かない。

固定FPSの設定を上げてみる

  • 固定FPSの値を120にあげてみる。
  • 今の自分の環境だと120FPSは出ないので右端の数値では設定値に届いていないことがわかる。
  • しかしDelta Secondsの数値は120FPSの1フレームの秒数が表示されている。
  • ここまでの結果から、FPSを固定にするとイベントTickのDelta Secondsの値はそのFPSの値に基づいて計算された値が固定値で出力されてしまうみたいだ。
  • 今後FPSを固定させることがあるかどうかは不明だが気にしておく必要がある。

Get World Delta Secondsノード

  • イベントTickのDelta Secondsと同じ値が取得できる「Get World Delta Seconds」というノードがある。
  • 並べて表示させている。
  • 一時停止すると同じ数値を出力しているのが確認できる。

コメント

コメントする

目次