This document is about: FUSION 2
SWITCH TO

Render Behavior

Fusionの状態は固定された時間ステップでシミュレートされますが、これは一般的にレンダリングと一致せず、キャラクタの動きがぎこちなくなってしまいます。スムーズで正確、かつリアクティブな動きを実現するために、KCCは補間、外挿、完全予測レンダーモードをサポートしています。

以下の説明は、ローカルプレイヤー(入力権限)の視点から説明します。

レンダリング補間

レンダリング時の位置/回転は、直近の2つの固定tickの状態間の線形補間として計算されます。以下の図は、レンダリング位置がちょうど1固定時間ステップ分遅れていることを示しています。

render interpolation
Position (vertical axis) in interpolated between states in last 2 fixed ticks.

長所

  • ✅ 簡単
  • ✅ パフォーマンスが高い
  • ✅ エラーが少ない

短所

  • ❌ 一定時間ステップで入力ラグが増加する(60Hzシミュレーションで~16.67ms)。
  • ❌ 特に速いペースのゲームプレイで、視覚的なグリッチが発生する可能性がある。
  • ❌ エッジケースを正しく補間するために、追加データの保存とカスタムアルゴリズムが必要。

以下の画像は、反射された動き(ジャンプパッド上の段差)の例です。反射の角度が鋭く、移動速度が速いほど、問題は顕著になります(固定ティック内の位置間の水平距離が短いほど、固定ティック間のレンダリング速度が低くなり、最大 X レンダリングフレームまでスタックエフェクトが発生します)。これは、60Hzのシミュレーションと高いレンダリングレートで容易に認識できます。

render interpolation on jump pad
Render interpolation on jump pad.

⚠️ レンダリング補間はKCCのデフォルトのレンダリング動作として設定されています。

レンダリング補間

レンダリングでの位置/回転は、最後の2つの固定ティックの状態の線形外挿として計算されます。

render extrapolation
Position (vertical axis) in extrapolated from states in last 2 fixed ticks.

長所

  • ✅ 簡単
  • ✅ パフォーマンスが高い

短所

  • ❌ 誤った外挿の結果、ジッターが発生する(通常は方向が変わるとき)
  • ❌ 望ましくない状態のリスク(キャラクタがジオメトリに押し込まれる)

次の画像は、反射された動き(ジャンプパッドのバンプ)の例です。キャラクタは数フレームの間ジオメトリに押し込まれ、次の固定更新後に正しい位置にテレポートされます。

render extrapolation on jump pad
Render extrapolation on jump pad.

この効果は、固定された更新位置がインパクト ポイントに近い場合、さらに認識しやすくなります。

render extrapolation on jump pad
Render extrapolation on jump pad.

⚠️ KCCは非常に小さな差分時間(50us以下)のレンダリング更新にのみ外挿を使用します。小さな差分時間は、完全に予測された動きの計算でNaN伝搬につながる可能性があります。

レンダリング予測

レンダリング中の位置/回転は、最後の固定ティックよりも前に完全に予測されます。

render interpolation
Position (vertical axis) is predicted ahead of last fixed tick.

長所

  • ✅ 追加の入力ラグなしで即座に反応
  • ✅ 正確な動き(外挿なし)

短所

  • ❌ CPUコスト - 物理クエリを含むKCCパイプライン全体の実行
  • ❌ 部分的な積分誤差(16msの固定更新後の状態は、4x4msのレンダー更新後の状態と同じでなければならない)の蓄積を生じさせないよう、注意深く実装する必要がある。

次の画像は、反射された動き(ジャンプパッド上のバンプ)の例です。スタックエフェクトは最大で1レンダリングフレームかかりますが、これは許容範囲です。

render prediction on jump pad
Render prediction on jump pad.

何を使うか?

レンダリング補間はよりパフォーマンスが高く、メンテナンスも簡単なので、ローカルプレイヤーによってコントロールされていないすべてのキャラクターに推奨されます。

もし必要であれば、レンダリング予測を使いましょう。

  • ✅ キャラクタの動きを完全に制御したい場合(例:過去のペースのプラットフォーマー)
  • ✅ 即時応答(最低の入力ラグ、eスポーツ、シューティングゲームなど)

レンダリング予測/補間はKCC Settingsのプロパティ Input Authority BehaviorState Authority BehaviorProxy Behaviorで変更できます。

Back to top