새로운 역동역학 힘 센서 툴을 활용하면 환경을 인식하는 정교한 로봇을 시뮬레이션할 수 있습니다. 새롭게 탈바꿈한 Physics Debugger와 동역학 시뮬레이션을 사용해보고 개선된 보간과 배치 쿼리 성능을 활용해 보세요.
Physics Debugger는 물리 엔진 내부의 작동 방식을 파악하고 프로젝트에서 관찰된 특정 동작을 이해하는 데 필수적인 툴입니다. 최신 기술을 적용하여 실제 세계와 비슷한 물리를 저작하려면 디버거의 성능이 좋아야 합니다. 이 점을 염두에 두고 사용자 인터페이스(UI)를 대대적으로 개편했으며 흥미로운 기능도 몇 가지 추가했습니다.
동일한 공간에 더 많은 정보를 넣을 수 있도록 프로퍼티를 탭으로 그룹화했고, 일부 새로 추가된 프로퍼티도 있습니다.
이전에는 Rigidbody와 ArticulationBody 컴포넌트의 인스펙터 창에 축소 가능한 'Info' 섹션이 있어 현재 선 속도(linear velocity)와 같은 추가 정보를 확인할 수 있었습니다. 그러나 이 섹션을 펼치면 에디터의 전체적인 성능이 크게 저하되는 문제가 발생했습니다. 또한 이전에는 서로 다른 바디의 파라미터를 비교하기 위해 두 개의 인스펙터 패널을 열어야 해서 다소 복잡했습니다. 이 문제를 해결하기 위해 모든 프로퍼티를 Physics Debugger 창의 'Info' 탭으로 옮겼으며, 선택한 각 오브젝트의 프로퍼티가 여기에 표시되므로 나란히 보면서 간편하게 비교할 수 있습니다.
이제 컨택트 노멀, 이격 거리와 함께 컨택트 포인트를 시각화할 수 있습니다.
Physics.Raycast 또는 Physics.CastSphere 같은 물리 쿼리는 보통 커스텀 캐릭터 컨트롤러 또는 차량 컨트롤러와 같은 일부 커스텀 물리 동작에 포함됩니다. 그런데 이러한 쿼리는 시각화되지 않아 디버그하기 까다롭습니다. 이 문제를 해결하기 위해 이번 릴리스에서는 물리 쿼리의 시각화 옵션을 제공합니다.
지금까지 Unity에는 일련의 오브젝트와 오브젝트에 가해지는 힘이 주어지면 그 궤적을 계산하는 정동역학을 지원하는 툴만 있었습니다. 이는 정말 유용하지만 유니티는 로보틱스 툴박스를 한층 확장하고자 했습니다. 따라서 Unity 2022.1에 역동역학에 대한 지원을 추가했습니다. 오브젝트와 예상 궤적이 주어지면 시뮬레이션 시 해당 궤적이 도출되는 힘을 계산하는 것입니다.
역동역학 지원은 반복적으로 개선하여 여러 릴리스에 반영될 예정입니다. Unity 2022.1에서는 ArticulationBody에 현재 가해지고 있는 총 힘의 컴포넌트를 계산하는 여러 함수를 공개하여 원하는 궤적을 그리기 위한 외부의 힘을 적용하기 전에 이를 상쇄할 수 있도록 했습니다. 솔버에 의해 적용된 충격을 상쇄하는 데 필요한 조인트 힘과 같이 더욱 흥미로운 기능이 향후 릴리스를 통해 공개될 예정입니다. 새로운 기능을 사용해 보고 포럼에서 의견을 공유해주세요.
이 기능으로는 다음과 같은 작업을 할 수 있습니다.
보간과 외삽
리지드바디는 부드럽게 움직이는 느낌을 내기 위해 비교적 낮은 빈도로 시뮬레이션하면서 보간과 외삽을 모두 사용합니다. 내부적으로는 업데이트마다 트랜스폼 포즈를 계산하여 이를 구현합니다. 보간의 경우 마지막 시뮬레이션 포즈 두 가지가 이 프레임의 새로운 트랜스폼 포즈를 계산하는 데 사용됩니다. 외삽의 경우에는 마지막 시뮬레이션 포즈와 속도가 사용됩니다. 하지만 경량으로 제작됐기 때문에 이 포즈를 다시 물리 엔진으로 전송하지는 않습니다. 포즈는 그래픽스나 애니메이션처럼 물리 외부의 시스템에만 표시됩니다. 이로 인해 보간된 포즈에서는 레이캐스트가 바디를 감지하지 않는 등의 현상이 일어납니다.
따라서 물리에서 트랜스폼 변경이 감지되지 않게 하기 위해 포즈를 작성하기 직전에 업데이트마다 Physics.SyncTransforms()를 호출하도록 되어 있으며, 내부 메서드 호출이 이어져 물리에 대한 모든 트랜스폼 업데이트를 삭제합니다. 하지만 그러면 다음 두 가지 문제가 발생합니다.
위 문제를 해결하기 위해 매 프레임에서 모든 트랜스폼을 동기화하지 않도록 보간 코드를 업데이트했습니다. 씬 복잡도에 따라 상이하지만 이 변경으로 성능이 대체적으로 향상되어 새로운 보간 코드가 이전보다 빠르게 실행됩니다.
포럼 내 피드백 수용
포럼의 한 섹션에서는 물리의 다양한 실험적 기능에 관한 논의가 이루어졌으며, 이를 반영하여 이번 릴리스에서 몇 가지 변경사항을 적용했습니다.
새로운 Inverse Dynamics API와 업데이트된 Physics Debugger로 어떤 작품이 탄생할지 벌써 기대됩니다! 지금 바로 최신 Unity 2022.1을 다운로드하고 로보틱스 포럼과 물리 프리뷰 포럼에서 대화에 참여해 보세요.
Is this article helpful for you?
Thank you for your feedback!