단순 물리 시뮬레이션 Control Rig vs AnimPhys 성능 비교

김지윤·2025년 9월 5일
0

UE5

목록 보기
16/16

최근 언리얼 페스타에 다녀왔다. 다양한 최적화 시도와 언리얼 신기술 시연, 그리고 그 아이디어를 엿볼 수 있는 좋은 시간이었다. 눈길을 끄는 것 중 하나가 Control Rig이었다. 들어보니 언리얼 내에서 IK를 활용한 애니메이팅과 물리 시뮬레이션을 가능하도록 해주는 기능인 듯했다. 마침 동료분이 AnimBP를 리팩토링하면서 머리카락 물리 시뮬레이션에 적용되었던 KwaiiPhysics 플러그인을 제거한 참이다. 그대로 다시 재사용하거나, 새로운 기능을 적용하기 위해 알아보던 참에 페스타에서 Control Rig 시연을 듣게 된 거다. 애니메이팅은 필요 없지만, 신발을 신었을 때 뒤꿈치가 올라간다거나 의상, 헤어 등의 간단한 물리 시뮬레이션도 가능하다고 하니 한 번 적용해보자는 얘기가 나왔다.

이에 대해 알아보던 중 AnimPhys라는 넥슨의 플러그인도 있다는 사실을 알았다. 우리는 IK나 애니메이팅이 필요한 게 아니지만, 단순 물리 시뮬레이션에서 어느 정도의 성능 차이가 있는지 우선 비교해보기로 했다. 성능 차이가 미미하다면 추후 기능 추가에 유리한 Control Rig를 채택하는 게 좋겠다는 생각이었다. 관심이 있어 내가 해보았다.

AnimPhys
AnimPhys는 넥슨에서 배포한 플러그인으로, 언리얼 기본 기능인 AnimDynamics 기반의 애님 노드다. 만져보자 마자 든 생각은.. 뭐 이렇게 쉽지? 였다.

SetLeaderPose는 사용하지 못 한다. 의상이나 헤어 전용 AnimBP를 만들어줘야 하는데, SetLeaderPose를 호출하게 되면 AnimBP가 Leader의 AnimBP로 덮어씌워진다. 따라서 Copy Pose From Mesh라는 애님 노드를 사용한다. 그 뒤 AnimPhys 노드를 불러오고 본과 파라미터를 세팅한다. 끝이다.

내가 봤던 KwaiiPhysics 노드는 이렇지 않았는데.. 노드가 본마다 하나씩 있어서 에디터를 여는 것도 오래 걸렸다. 만약 그게 잘못된 방식으로 만들어진 것이라 해도, 플러그인의 접근성이 잘못됐다는 뜻으로 받아들일 수 있다. 그에 비해 AnimPhys는 노드 하나 안에 본을 여러 개 세팅할 수도 있고, Damping, Limit Angle 등 움직임에 대해서도 설정할 수 있다. 콜리전으로 몸을 뚫고 지나가지 않도록 하는 것도 가능하며, 콜백 함수 설정까지 된다.

모를 수 있는 용어만 적어둡니다.

Damping - 높을수록 자손 본에게 주는 영향력이 적어짐
Stiffness - 높을수록 경직됨, 최대 1.0
Collided with Attached Mesh - 아마 자신의 자손 메쉬와 충돌한다는 의미. 부모 메쉬와는 관계 없어보임. 자손 메쉬 자체인지 피직스 에셋인지 확인 필요
Collided with Simulated Phys Body - 피직스 에셋과 충돌. 현재 프로젝트에 피직스 에셋이 없어 사용 불가

사실 여기까지만 보고 이미 Control Rig 쓸 생각이 없어졌다. 그래도 비교는 해야 하니까..

Control Rig

https://www.youtube.com/watch?v=w9oo0VF1wbw

위 영상을 참고해 Control Rig 에셋을 만들었다. IK는 필요하지 않으니 생략했다.

음.. 좀 많은데..? 위 사진 외에도 Forwads Solve 정의와 생성자도 있다. AnimPhys와 비교했을 때 접근성에 상당한 차이가 있다. 애니메이팅 관련 기능을 걷어내고 간단한 물리 시뮬레이션만 하려고 해도 저 정도 양의 노드가 필요하다.

그래도 한 번 세팅해두면 건드릴 일이 별로 없으니 괜찮을 것 같다. 나는 단순한 물리 시뮬레이션만 필요한 거지만, 다른 여러 기능을 요구하는 프로젝트도 많으니까. 예를 들어 계단을 올라갈 때 계단 한칸한칸 밟고 올라가는 기능을 구현하고 싶다면 Control Rig이 필요하지 않을까 싶다.

그럼 이제 성능을 비교해보고, 최종 결론을 내보자.

각각 AnimPhys와 Control Rig이 적용된 캐릭터 100개를 레벨에 배치했다. 위쪽이 AnimPhys, 아래쪽이 Control Rig이다. AnimPhys는 Game이 20대 초반, GPU Time은 대체로 8ms 미만을 기록했고, Control Rig의 Game은 최대 30ms도 넘겼으며 GPU Time은 9ms를 넘기기도 했다.

Control Rig에 단순 물리 시뮬레이션 외에 아무런 기능을 적용하지 않으면 성능 차이가 거의 없을 거라 생각했는데, 아무래도 Control Rig 자체가 무거운 것 같다.

단순 물리 시뮬레이션이라면 AnimPhys를 사용하지 않을 이유가 없어보인다.

profile
공부한 거 시간 날 때 작성하는 곳

0개의 댓글