This document is about: FUSION 2
SWITCH TO

이동

이동 단계

단일 이동 단계에 대해 원하는 위치 델타를 계산하기 위해 다음 방정식을 사용합니다:

위치 델타 = (동적 속도 + 운동 속도) * 델타 시간 + 외부 델타

동적 속도

  • 외력을 축적하는 속도
  • 중력, 폭발 충격, 힘의 장, 점프 패드
  • 경사면에서 KCC를 위로 밀어 올릴 수 있습니다
  • KCCData.DynamicVelocity, KCC.SetDynamicVelocity()

운동 속도

  • 사용자 입력 작업에서 계산된 비제약 속도
  • 보통 KCCData.InputDirection(입력점)을 기준으로 합니다.
  • 걸을 수 있는 표면만이 KCC를 위로 밀어 가파른 경사면에서 아티팩트가 발생하지 않도록 합니다.
  • KCCData.KinematicVelocity, KCC.SetKinematicVelocity()

외부 델타

  • 절대 위치 오프셋
  • 탈침투 후 시프트 및 보정에 사용
  • KCCData.ExternalDelta, KCC.SetExternalDelta()

KCC는 항상 움직이다가 겹쳐진 콜라이더를 뚫고 들어갑니다.

  • ✅ 이 방법은 기하학적 구조에 자연스러운 슬라이딩을 제공합니다.
  • ✅ 단일 캡슐 중복이 필요한 경우가 대부분이므로 KCC의 성능이 매우 우수합니다.
  • ❌ 여러 콜라이더(대개 일부 모서리)에 대해 이동할 때 지터가 발생하는 경우가 있으며, 이는 안티-지터 기능으로 보상됩니다.

캐릭터가 너무 빨리 이동하는 경우(단일 스텝의 위치 델타가 85% 또는 반지름보다 큼), 이동이 기하학적 구조를 통과하지 않도록 하위 스텝으로 분할됩니다. 이를 CCD(Continuous Collision Detection)라고 하며 기능 섹션에서 설명하고 있습니다.

충돌 필터링

  • 주 필터는 충돌 레이어 마스크로 KCCSettings.CollisionLayerMask 속성에 의해 제어되며, 물리 설정레이어 충돌 매트릭스는 KCC에서 사용하지 않습니다.
  • 자식 콜라이더는 생성 시 캐시 되며 무시됩니다. 자식 계층에 새 충돌기를 추가할 경우 수동으로 KCC.RefreshChildColliders()를 호출해야 합니다.
  • KCC.ResolveCollision에 위임자를 등록하여 추가 필터링 규칙을 적용합니다.
  • KCC.IsValidHitCollider()를 사용하여 KCC가 현재 설정으로 충돌할 가능성이 있는지 확인합니다.
  • KCC.SetIgnoreCollider()로 특정 콜라이더를 명시적으로 무시할 수 있습니다. 콜라이더에는 NetworkObject 컴포넌트가 있어야 합니다.
Back to top