Ncloth Medal String Simulation Progress
- SJ

- 4월 27일
- 2분 분량
Cutting Losses 프로젝트에서는 캐릭터가 벽걸이에 걸린 메달을 잡는 장면이 있습니다.
메달은 끈에 매달려 있는데, 이 끈의 움직임을 자연스럽게 표현하기 위해 nCloth를 적용했습니다.

처음에는 조인트를 만들고 컨트롤과 컨스트레인트를 연결하여 하나하나 애니메이션을 줄 계획이었지만, 보다 자연스럽고 사실적인 움직임을 위해 nCloth를 사용하기로 결정했습니다.
메달 끈은 두껍고 잘 늘어나지 않는 재질이어야 했기 때문에, 이를 표현하기 위해 여러 번 세팅을 조정했습니다.
nCloth 사용 경험이 많지 않아 이 과정은 저에게 꽤 도전적이었고, 작업 중에는 ChatGPT의 도움을 받거나 구글 검색을 여러 차례 반복했습니다. (인터넷에 업로드된 영상들을 참고하지 않았습니다.)
시뮬레이션 과정에서 겪었던 문제들:
메달 끈이 멈추거나 금속 고리에 자연스럽게 걸리지 않음
금속 고리가 고정되지 않고 움직이거나 흔들리면서 불안정하게 보임.
끈이 고리에서 미끄러져 떨어져버림
끈이 벽걸이에 닿을 때 부드럽게 미끄러지지 않고 걸리거나 부자연스럽게 튕김
끈이 벽걸이에 달라붙은 채로 부자연스럽게 늘어남

메달을 자세히 보면, 메달과 끈을 연결하는 두 개의 금속 링이 있습니다.
이 두 링은 parent-child 관계로 설정했으며, main geometry를 부모로 지정했습니다.
그리고 메달 끈과 직접 연결된 링에는 passive collider를 적용했습니다.
메달을 걸어두는 벽걸이에도 passive collider를 설정했습니다.
끈이 금속 링을 빠져나가는 것을 막기 위해 보이지 않는 장벽 역할을 하는 ring helper collider를 추가했습니다.


문제 해결 방법:
시뮬레이션의 물리적 한계를 보완하기 위해 helper collider(보이지 않는 벽)를 추가했습니다
충돌 문제는 더 부드러운 geometry, 높은 collide strength, 그리고 높은 solver quality 조합을 통해 대부분 해결했습니다.
튕김(bouncing) 문제는 bounce를 0으로 설정하고, collide strength를 높이며, friction을 적절히 조정하여 해결했습니다.
과도한 늘어짐(overstretching)은 stretch resistance를 높이고 self-collision 설정을 조정하여 제어했습니다.
이 모든 과정을 거쳐 각 시뮬레이션 문제를 하나하나 해결해 나가면서, 결국 이 씬에 가장 잘 맞는 최적의 설정을 찾을 수 있었습니다!
물론 이 문제들은 혼자 힘으로 해결한 것이기 때문에 결과가 완벽하다고는 할 수 없지만, 개인적으로 꽤 만족할 수 있는 결과를 얻을 수 있었습니다.




댓글