ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
Unreal Engine 5(UE5)のEvent Tickノードは、毎フレーム実行されるイベントノードで、これを使って継続的な処理(回転、移動、カウントダウンなど)をイベントグラフに書きます。再生中、フレームが描画されるたびにこのノードから実行ピンが発火するため、「常に更新し続けたい処理」を接続するのが基本的な使い方です。ノードが扱う概念そのものの詳細は Event Tick も参照してください。本記事ではノードとしての出し方・配線・設定に焦点を当てます。
この記事の要点
- Event Tickノードは毎フレーム発火するイベントノード。ブループリントの継続処理の起点になる。
- 出力のDelta Secondsピンは前フレームからの経過秒数。これを掛けることでフレームレートに依存しない動きを作れる。
- イベントグラフで右クリックし「Event Tick」を検索すると配置できる(1グラフに1つ)。
- 不要なときはSet Actor Tick Enabledで無効化、クラス設定のStart with Tick Enabled / Can Ever Tickで初期状態を制御。
- Tick Intervalで実行間隔を間引ける。毎フレーム不要な処理はTimerでの代替も検討する。
- Tickは件数が増えるとパフォーマンスに直結する。重い処理を毎フレーム回さない設計が重要。
1Event Tickノードとは
Event Tickノードは、アクター(Actor)やコンポーネントに紐づき、ゲームのフレームレートに応じて毎フレーム1回実行されるイベントノードです。たとえば60FPSの環境ではおおよそ1秒間に60回、120FPSなら120回実行されます。実行回数がフレームレートに左右される点が大きな特徴で、後述のDelta Secondsを使わないと、PCの性能次第で動きの速さが変わってしまいます。
ノードの見た目は、左側に実行ピン(白い三角の出力)、そしてDelta Secondsという浮動小数点(float)の出力ピンを1つ持ちます。このDelta Secondsが、フレームレート非依存の処理を書くうえでの要になります。
2Event Tickノードの出し方
Event Tickノードはブループリントのイベントグラフに配置します。手順は次のとおりです。
1. Blueprint Class(Actorを親クラスにしたものなど)を開く。
2. イベントグラフ(Event Graph)の何もない場所で右クリックする。
3. 表示される検索ボックスに「Event Tick」と入力し、候補から選択する。
4. 配置されたEvent Tickノードの実行ピンから、行いたい処理のノードへ線をつなぐ。
新規のActorブループリントには、最初からコメント化されたEvent Tickノードがグラフ上に置かれていることもあります。その場合は右クリックから新規配置せず、既存のノードを使います。Event Tickは1つのイベントグラフに1つだけ配置でき、同じグラフに2つ目を置くことはできません(同名イベントの重複は不可)。
3Delta Secondsピンの使い方
Delta Secondsは「前のフレームから今のフレームまでに経過した秒数」です。60FPSで安定していれば毎フレームおよそ0.0167秒、30FPSなら約0.0333秒になります。移動量や回転量にこの値を掛けることで、フレームレートが変わっても1秒あたりの変化量を一定に保てます。
たとえば「1秒間に300ユニット前進させたい」場合は、速度300にDelta Secondsを掛けた値を1フレームの移動量として使います。これにより、重い場面でフレームレートが落ちても、見かけの速度はおおむね一定になります。
// 1フレームの移動量 = 速度 × Delta Seconds 移動量 = 300(ユニット/秒) * DeltaSeconds 新しい位置 = Get Actor Location + (前方ベクトル × 移動量) Set Actor Location に新しい位置を渡す |
ブループリントでは、Event TickのDelta Secondsピンを乗算(multiply)ノードへつなぎ、その結果をSet Actor Locationなどの設定ノードに渡す配線になります。Delta Secondsを掛け忘れると、フレームレートが高いPCほど速く動くという、フレームレート依存の不具合の原因になります。
4Tickの有効化・無効化
常に毎フレーム動かす必要がない場合は、Tick自体をオン・オフして無駄な処理を減らせます。制御方法は大きく2種類あります。
実行時に切り替える(Set Actor Tick Enabled)
Set Actor Tick Enabledノードを使うと、ゲーム実行中にそのアクターのTickを有効・無効に切り替えられます。たとえば「画面外に出たらTickを止め、近づいたら再開する」といった制御に使います。
Set Actor Tick Enabled(New Tick Enabled = false) // Tickを止める Set Actor Tick Enabled(New Tick Enabled = true) // Tickを再開する |
初期状態をクラス設定で決める
ブループリントのClass Defaults(クラスのデフォルト設定)には、Actor Tickに関する項目があります。代表的なものは次のとおりです。
| 設定項目 | 役割 |
|---|---|
| Start with Tick Enabled | ゲーム開始時にTickを有効にするか。オフにしておき、必要になってからSet Actor Tick Enabledで有効化する使い方ができる。 |
| Tick Interval (secs) | Tickの実行間隔(秒)。後述。 |
なお、C++クラスには「そもそもTickできるかどうか」を表すCan Ever Tick(PrimaryActorTick.bCanEverTick)という設定があります。これが無効だと、ブループリント側でEvent Tickをつないでも発火しません。C++を親クラスにしている場合は、ここが有効になっているかも確認しておくとよいでしょう。Tickをまったく使わないアクターでこれを無効にしておくと、わずかながらオーバーヘッドを減らせます。
5Tick Intervalで実行頻度を下げる
毎フレームほどの頻度が不要な処理では、Tick Interval (secs)を設定して実行間隔を空けられます。たとえば0.2を設定すると、おおよそ0.2秒ごとにEvent Tickが発火するようになり、実行回数を大きく減らせます。HPの自動回復チェックや、距離に応じた表示切り替えなど、毎フレームの精度が要らない処理に向いています。
Tick Intervalを使う場合の注意点として、このときのDelta Secondsは「前回Tickが実行されてからの経過時間」になります。つまり間隔を空けた分だけDelta Secondsの値も大きくなるため、Delta Secondsを掛けた計算であれば、間隔を変えても1秒あたりの変化量はおおむね保たれます。値を0にすると毎フレーム実行(デフォルト相当)になります。
6具体例
例1:オブジェクトを回転させ続ける
毎フレーム少しずつ回転を加えると、滑らかに回り続けるオブジェクトを作れます。配線の流れは次のとおりです。
1. Event TickのDelta Secondsを取得する。
2. 1秒あたりの回転速度(例:Yaw 90度/秒)にDelta Secondsを掛け、1フレーム分の回転量を求める。
3. その回転量をAdd Actor Local Rotation(または Add Actor World Rotation)に渡す。
こうすると、フレームレートに関わらず「1秒で90度」という一定の速さで回転します。
例2:カウントダウン
残り時間を毎フレーム減らしていくカウントダウンも、Event Tickの典型的な使い道です。
1. 残り時間を保持するfloat変数(例:RemainingTime)を用意する。
2. Event Tickで、RemainingTimeからDelta Secondsを引いた値を再びRemainingTimeに代入する。
3. RemainingTimeが0以下になったら、時間切れの処理を呼び出し、必要ならSet Actor Tick Enabledで以降のTickを止める。
ただし、こうした「一定時間後に何かする」だけの処理であれば、毎フレーム数値を引き続けるより、次に述べるTimerのほうが軽量で素直に書けることも多いです。
| パフォーマンス上の注意とTickを使わない代替 |
|---|
Event Tickは便利な一方、毎フレーム実行されるためコストが高い処理でもあります。多数のアクターがそれぞれ重いTick処理を持つと、フレームレート低下の直接の原因になります。次の点に注意してください。
|
7よくある落とし穴
| つまずきやすいポイント |
|---|
|
8FAQ
Q. Event Tickは必ず毎フレーム呼ばれますか?
A. Tickが有効で、かつTick Intervalが0(デフォルト)なら、原則として毎フレーム呼ばれます。Tick Intervalを設定するとその間隔ごと、Set Actor Tick Enabledで無効化している間は呼ばれません。また、フレームレート自体が変動すれば呼ばれる回数(=1秒あたりの実行回数)も変わります。
Q. Tickを使わずに継続処理をするには?
A. 一定間隔の処理ならTimer(Set Timer by Event など)、状態変化のタイミングだけでよいならイベントやデリゲートでの通知が使えます。これらは毎フレーム実行しないぶん軽量で、目的に対して意図も明確になります。「本当に毎フレーム必要か」を一度考えてから、必要な場合にEvent Tickを使うのがおすすめです。
Q. Delta SecondsとGet World Delta Secondsは同じですか?
A. 多くの場面で同じ値(そのフレームのデルタ時間)を示しますが、Tick Intervalを設定したアクターのEvent TickのDelta Secondsは「前回そのアクターがTickされてからの経過時間」を表します。間引いている場合は両者が一致しないことがあるため、Event Tickでの計算には、原則そのEvent Tickが出力するDelta Secondsピンを使うのが安全です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- Event BeginPlay
- Event ActorBeginOverlap
- Event Tick
- on component begin overlap
- On Component Hit
- CameraBoom(Spring Arm)
- Get Player Character
- Nav Mesh Bounds Volume
- AI MoveTo
- Pawn
- Create Render Target 2D
- Take High Res Screenshotノード
- Sphere Reflection Capture
- Event Tickノード
- ウィジェットのキャンバスパネル
- DefaultSceneRoot
- FloatingPawnMovement
- Set World Rotation
- Event Any Damage
- Set World Rotation
- VInterp To
- Get Socket Transform
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Scratch 作品の公開方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?