낮은 정밀도 레벨에서 해석

HumanIK역운동학 및 대상 변경 솔버를 사용하면 애니메이션을 더 사실적으로 표현할 수 있는 구성 가능한 설정을 통해 캐릭터의 움직임을 정확하고 세부적으로 제어할 수 있습니다. 하지만, LoD(정밀도 레벨)의 경우 성능에 어느 정도 영향을 미치므로 항상 필요한 것은 아닙니다.

예를 들어 게임의 특정 영역이나 세그먼트에 상당히 많은 캐릭터가 있는 경우 각 계산에서 사용되는 리소스를 줄이기 위해 각 캐릭터의 움직임을 사실적으로 표현하는 데 있어 약간의 부정확성을 인정하는 것이 바람직할 수도 있습니다. 마찬가지로 캐릭터가 플레이어나 뷰어에서 멀리 떨어져 있으면 약간 부정확해도 잘 보이지 않습니다. 따라서 이 시나리오에서는 HumanIK에서 제공하는 전체 정밀도 레벨이 필요하지 않을 수 있습니다.

HumanIK는 성능은 더 빠르게 하고 CPU 요구 사항을 낮추기 위해 역운동학 및 대상 변경 솔버 모두에 대해 낮은 정밀도 수준의 구현을 제공합니다.

역운동학

낮은 정밀도 수준의 역운동학 솔버를 사용하려면 역운동학 해석에서 소개된 HIKSolveForEffectorSet() 함수 대신 HIKSolveForEffectorSetLowLOD() 함수를 호출합니다. HIKSolveForEffectorSetLowLOD() 함수의 인수는 HIKSolveForEffectorSet() 함수와 똑같아야 합니다.

이렇게 낮은 정밀도 수준의 솔버의 제한 사항은 다음과 같습니다.

대상 변경

낮은 정밀도 수준의 대상 지정 솔버를 사용하려면 대상 변경 해석에서 소개된 HIKSolveForCharacter() 함수 대신 HIKSolveForCharacterLowLOD() 함수를 호출합니다. HIKSolveForCharacterLowLOD() 함수의 인수는 HIKSolveForCharacter() 함수와 똑같아야 합니다.

낮은 정밀도 수준의 대상 변경 솔버에서 수행되는 실제 대상 변경 작업은 접선 대상 변경 솔버에서 수행되는 작업과 동일합니다. 하지만 낮은 정밀도 수준의 대상 변경 솔버는 정밀도 수준이 낮은 역운동학 솔버를 호출하여 대상 캐릭터의 최종 위치를 생성합니다. 이로써 IK 패스의 속도가 빨라집니다.

성능 최대화

같은 설정에서, 낮은 정밀도 수준의 IK 및 대상 변경 솔버는 일반적인 대응 작업보다 최대 10배 빠르게 실행됩니다. 하지만 아래 설명된 대로 해석 매개변수를 간단하게 일부 변경하는 것만으로 CPU 성능을 한층 더 향상시킬 수 있습니다.

아래 나열된 일부 접근 방식으로 인해 계산을 통해 얻은 CPU 시간과 최종 결과의 정확성 간에 추가 손상이 발생할 수 있습니다.

팔다리 해석

낮은 정밀도 수준의 솔버에서 사용된 약 30% CPU의 시간이 팔다리 해석에 사용되었습니다. 일부 또는 모든 캐릭터의 팔다리 해석을 비활성화하여 이를 줄일 수 있습니다. 부분적으로 또는 전체적으로 각 팔다리에 대한 해석을 비활성화할 수 있습니다.

  • 팔다리에 대해 전체적으로 해석을 비활성화하려면 HIKEffectorSetState에 대한 해석 단계 설정에서 해당 팔다리에 대한 해석 단계를 제외합니다. 자세한 내용은 선택한 몸체 부분 해석을(를) 참조하십시오.
  • 팔다리에 대해 부분적으로 해석을 비활성화하려면 HIKSetTranslationActive() 또는 HIKSetRotationActive() 함수를 사용하여 이펙터 세트 상태에서 팔다리의 변환 도달 또는 회전 도달 값을 0.0f로 설정할 수 있습니다. 낮은 정밀도 수준의 솔버를 사용하는 경우 회전 도달 값을 일반적으로 0.0f로 설정하는 것이 좋습니다.

척추 해석

낮은 정밀도 수준의 솔버에서 사용된 약 13% CPU의 시간이 척추 해석에 사용되었습니다. 많은 경우 이는 최종 포즈에 거의 영향을 주지 않습니다. 최종 결과를 현저하게 손상하지 않고 안전하게 척추 해석을 비활성화할 수 있습니다.

척추 해석을 비활성화하려면 HIKEffectorSetState에 대한 해석 단계 설정에서 해당 해석 단계를 제외합니다. 자세한 내용은 선택한 몸체 부분 해석을(를) 참조하십시오.

당기기 정확도

낮은 정밀도 수준의 솔버에서 사용된 약 20% CPU의 시간이 간소화된 당기기 알고리즘에 사용되었습니다. HIKPullIterationCount 캐릭터 속성 값을 낮춰 이 시간을 현저하게 줄일 수 있습니다. 이 속성을 낮게 설정할수록 더 적게 반복됩니다. 이렇게 하면 CPU 소비가 더 낮아지고 최종 결과는 덜 정확해질 수 있습니다.

자세한 내용은 대상 변경 관련 속성을(를) 참조하십시오.