レンダリングビヘイビア
Fusionの状態は固定された時間ステップでシミュレートされますが、これは一般的にレンダリングと一致せず、キャラクタの動きがぎこちなくなってしまいます。スムーズで正確、かつリアクティブな動きを実現するために、KCCは補間、外挿、完全予測レンダーモードをサポートしています。
レンダリング補間
レンダリング時の位置/回転は、直近の2つの固定tickの状態間の線形補間として計算されます。以下の図は、レンダリング位置がちょうど1固定時間ステップ分遅れていることを示しています。
長所
- ✅ 簡単
- ✅ パフォーマンスが高い
- ✅ エラーが少ない
短所
- ❌ 一定時間ステップで入力ラグが増加する(60Hzシミュレーションで~16.67ms)。
- ❌ 特に速いペースのゲームプレイで、視覚的なグリッチが発生する可能性がある。
- ❌ エッジケースを正しく補間するために、追加データの保存とカスタムアルゴリズムが必要。
以下の画像は、反射された動き(ジャンプパッド上の段差)の例です。反射の角度が鋭く、移動速度が速いほど、問題は顕著になります(固定ティック内の位置間の水平距離が短いほど、固定ティック間のレンダリング速度が低くなり、最大 X レンダリングフレームまでスタックエフェクトが発生します)。これは、60Hzのシミュレーションと高いレンダリングレートで容易に認識できます。
⚠️ レンダリング補間はKCCのデフォルトのレンダリング動作として設定されています。
レンダリング補間
レンダリングでの位置/回転は、最後の2つの固定ティックの状態の線形外挿として計算されます。
長所
- ✅ 簡単
- ✅ パフォーマンスが高い
短所
- ❌ 誤った外挿の結果、ジッターが発生する(通常は方向が変わるとき)
- ❌ 望ましくない状態のリスク(キャラクタがジオメトリに押し込まれる)
次の画像は、反射された動き(ジャンプパッドのバンプ)の例です。キャラクタは数フレームの間ジオメトリに押し込まれ、次の固定更新後に正しい位置にテレポートされます。
この効果は、固定された更新位置がインパクト ポイントに近い場合、さらに認識しやすくなります。
⚠️ KCCは非常に小さな差分時間(50us以下)のレンダリング更新にのみ外挿を使用します。小さな差分時間は、完全に予測された動きの計算でNaN
伝搬につながる可能性があります。
レンダリング予測
レンダリング中の位置/回転は、最後の固定ティックよりも前に完全に予測されます。
長所
- ✅ 追加の入力ラグなしで即座に反応
- ✅ 正確な動き(外挿なし)
短所
- ❌ CPUコスト - 物理クエリを含むKCCパイプライン全体の実行
- ❌ 部分的な積分誤差(16msの固定更新後の状態は、4x4msのレンダー更新後の状態と同じでなければならない)の蓄積を生じさせないよう、注意深く実装する必要がある。
次の画像は、反射された動き(ジャンプパッド上のバンプ)の例です。スタックエフェクトは最大で1レンダリングフレームかかりますが、これは許容範囲です。
何を使うか?
レンダリング補間はよりパフォーマンスが高く、メンテナンスも簡単なので、ローカルプレイヤーによってコントロールされていないすべてのキャラクターに推奨されます。
もし必要であれば、レンダリング予測を使いましょう。
- ✅ キャラクタの動きを完全に制御したい場合(例:過去のペースのプラットフォーマー)
- ✅ 即時応答(最低の入力ラグ、eスポーツ、シューティングゲームなど)
レンダリング予測/補間はKCC Settingsのプロパティ Input Authority Behavior
、State Authority Behavior
、Proxy Behavior
で変更できます。