튜토리얼과 시뮬레이션 결과가 다를 때: 후디니·마야 씬 스케일 확인
튜토리얼 값을 그대로 넣었는데 천이 둥둥 뜨고 물이 뭉개진다면, 솔버가 내 물체를 몇 미터로 읽는지부터 확인해야 합니다. 씬 단위가 중력·파티클 간격·충돌을 바꾸는 원리와 고치는 순서를 정리했습니다.
후디니나 마야 시뮬레이션에서 튜토리얼과 똑같은 값을 넣어도 결과가 다르다면 씬 스케일, 즉 물체 크기와 단위부터 재 보세요. 튜토리얼을 보며 노드도, 중력도, 파티클 간격도 똑같이 입력했습니다. 그런데 영상 속 천은 툭 떨어져 접히는데 내 천은 물속처럼 느릿하게 내려옵니다. 물을 부으면 튜토리얼은 잘게 튀는데 내 쪽은 몇 덩어리로 뭉개지고, 연기는 작은 촛불 연기가 아니라 거대한 구름처럼 굼실거립니다. 버전 차이나 랜덤 시드를 의심하며 처음부터 다시 따라 해도 결과는 그대로입니다.
이때 원인은 입력한 값이 아니라 그 값이 적용되는 물체의 크기인 경우가 많습니다. 시뮬레이션은 값을 씬 단위로 읽습니다. 같은 숫자를 넣어도 내 물체가 튜토리얼보다 100배 크거나 작다면, 솔버에게는 전혀 다른 문제를 푼 셈이 됩니다.
같은 시뮬레이션 값인데 결과가 다르면 씬 스케일을 봅니다
화면 속 캐릭터는 우리 눈에 사람으로 보이지만 솔버는 그런 사실을 모릅니다. 솔버가 보는 것은 “높이 180 단위짜리 물체”라는 숫자뿐입니다. 이 1단위가 1cm인지 1m인지에 따라 같은 모델이 1.8m 사람도, 180m 거인도 됩니다.
문제는 프로그램마다 기본 가정이 다르다는 점입니다. Maya의 기본 작업 단위는 센티미터입니다. 그런데 Maya Nucleus 문서는 중력이 Maya의 단위를 미터로 해석한다고 적고 있습니다. 그래서 Space Scale이 기본값 1이면 폭 100cm짜리 nCloth를 폭 100m 물체처럼 다룬다고 예를 듭니다. Houdini는 동역학에서 씬 단위를 미터로 보고, 파티클 간격 0.1을 10cm로 설명합니다. 센티미터로 만든 모델을 그대로 가져와 튜토리얼 값을 넣으면 크기가 100배 어긋나는 겁니다.
크기가 틀리면 시간도 같이 틀어집니다
중력이 같을 때 물체가 떨어지는 데 걸리는 시간은 높이의 제곱근에 비례합니다. 지구 중력(약 9.8m/s²)에서 1.8m를 자유낙하하면 약 0.6초가 걸립니다. 같은 모델을 180m로 읽으면 약 6초가 걸립니다. 크기는 100배인데 시간은 10배만 늘어나는 이유가 제곱근입니다. 시청자는 이 느린 낙하를 보고 ‘둥둥 뜬다’, ‘무게감이 없다’고 느낍니다. 실은 무게가 아니라 크기를 느끼는 거죠.

느리게 떨어지는 것은 무게가 가벼워서가 아니라, 솔버가 물체를 훨씬 크게 읽어서입니다.
미니어처 촬영 현장은 이 원리를 반대로 써 왔습니다. 모형이 진짜 크기처럼 무겁게 보이게 하려고 축척 분모의 제곱근만큼 빠르게 찍는 것이 오래된 기준입니다. 1/16 모형이라면 4배인 초당 96프레임으로 찍어 느리게 재생하는 식이죠. 작은 것은 빨리 움직이고 큰 것은 느리게 움직인다는 감각을 관객이 이미 갖고 있다는 뜻입니다. CG 시뮬레이션의 씬 스케일이 틀리면, 그 감각이 반대로 작동해 물체 크기를 들켜 버립니다.
거리로 적힌 값은 모두 함께 어긋납니다
중력만의 문제가 아닙니다. 파티클 간격, 복셀 크기, 충돌 두께처럼 길이로 적힌 값은 모두 씬 단위를 기준으로 합니다. Houdini 문서는 유체의 크기감이 파티클 간격으로 결정된다고 설명합니다. 튜토리얼이 20cm짜리 컵에 파티클 간격 0.01을 썼다면, 컵 폭 안에 파티클이 약 20개 들어갑니다. 내 컵이 20단위라서 20m로 읽힌다면 같은 0.01은 컵 폭에 약 2,000개입니다. 계산량이 폭발합니다. 반대로 내 컵이 너무 작게 읽히면 컵 전체가 파티클 몇 개로 뭉쳐 버립니다.

충돌도 같습니다. 물체가 솔버 기준으로 너무 작으면 한 스텝 동안 이동하는 거리가 물체 두께보다 커지기 쉽고, 충돌 판정 사이로 빠져나갑니다. 이 현상은 충돌과 서브스텝 글에서 자세히 다뤘는데, 서브스텝을 올리기 전에 크기가 맞는지부터 보는 편이 순서상 맞습니다.
카메라 화면만 봐서는 스케일 오류가 보이지 않습니다
이 문제가 늦게 발견되는 이유가 있습니다. 모든 것을 100배 키우고 카메라도 100배 멀리 두면 렌더 화면은 똑같아 보입니다. 원근은 카메라와 물체 사이의 거리 비율로 정해지기 때문입니다. 그 원리는 광각과 카메라 위치 글에서 설명했습니다. 모델링과 레이아웃 단계에서는 크기가 틀려도 아무 문제가 드러나지 않다가, 물리가 개입하는 순간 처음 티가 나는 거죠.
30초 진단: 씬 스케일을 재고, 공 하나를 떨어뜨려 보세요
먼저 시뮬레이션할 물체의 바운딩 박스 크기를 확인합니다. 사람 키 옆에 놓았을 때 실제로 몇 미터인지, 튜토리얼의 물체는 몇 단위였는지 나란히 적어 봅니다. 튜토리얼 파일이 있다면 같은 방법으로 크기를 재면 됩니다. 두 숫자가 10배, 100배씩 차이 난다면 원인은 거의 여기 있습니다.
다음은 낙하 테스트입니다. 같은 솔버와 같은 중력으로 구 하나를 높이 1.8단위에서 떨어뜨리고 바닥에 닿는 프레임을 셉니다. 1단위가 1m로 해석된다면 24fps 기준 약 15프레임입니다. 150프레임 가까이 걸린다면 솔버는 이 씬을 100배 큰 세계로 보고 있는 겁니다. 계산보다 이 테스트가 빠르고, 팀원에게 보여 주기도 쉽습니다.
고치는 순서: 단위를 정하고, 크기를 맞추고, 값은 그다음입니다
첫째, 이 씬에서 1단위가 무엇인지 정합니다. 혼자 작업한다면 한 번 정하면 되지만, 팀이라면 파이프라인에서 합의된 단위를 따라야 합니다. 부서마다 다른 단위로 파일을 넘기면 시뮬레이션 쪽에서 매번 크기를 다시 맞추게 됩니다.
둘째, 솔버가 실제 크기를 보도록 맞춥니다. 방법은 두 가지입니다. 모델을 실제 크기로 스케일해서 시뮬레이션하거나, 모델은 그대로 두고 솔버 쪽 스케일 설정으로 단위를 알려 주는 방법입니다. Maya Nucleus의 Space Scale이나 Houdini FLIP Solver의 Spatial Scale이 이 역할을 합니다. 어느 쪽을 택하든 둘을 동시에 바꾸지는 마세요. 보정이 두 번 들어가 다시 어긋납니다.
셋째, 길이로 적힌 값을 다시 봅니다. 튜토리얼의 파티클 간격이나 복셀 크기를 그대로 복사하지 말고, 튜토리얼 물체 크기 대비 비율로 옮기세요. 튜토리얼 컵 폭에 파티클 20개가 들어갔다면 내 컵에도 20개 정도가 들어가도록 잡는 식입니다. 그다음 해상도는 필요에 따라 올립니다.

- 한 단위가 cm인지 m인지 팀·프로젝트에서 먼저 확인합니다.
- 문이나 캐릭터 같은 기준 물체와 모델 크기를 맞춥니다.
- 파티클 간격·복셀 크기 같은 길이 값을 물체 크기에 비례해 다시 설정합니다.
순서가 중요한 이유는 반대로 했을 때의 비용 때문입니다. 크기를 두고 중력이나 감쇠 값을 이리저리 바꿔 “느낌”을 맞추면, 그 샷에서는 통해도 다음 샷이나 다른 사람 손에서는 다시 어긋납니다.
Maya와 Houdini에서 단위를 확인하는 곳
Maya의 작업 단위는 Windows > Settings/Preferences > Preferences를 열고 Settings 카테고리의 Working Units > Linear에서 확인합니다. 기본값은 centimeter입니다. nCloth나 nParticle을 쓴다면 nucleus 노드의 Attribute Editor에서 Scale Attributes > Space Scale을 봅니다. 문서는 1단위를 1cm로 모델링했다면 Space Scale을 0.01로 두라고 안내합니다. 같은 노드의 Gravity 기본값은 지구 중력을 흉내 낸 9.8입니다.
Houdini에서는 Edit > Preferences > Hip File Options의 Unit Length를 확인합니다. FLIP Solver 문서는 DOP 네트워크를 만들기 전에 이 값을 맞춰 두면 솔버가 알맞은 Spatial Scale을 자동으로 받는다고 설명합니다. Gravity Force의 Force는 미터·초·킬로그램 단위라면 -9.81이 적당하다고 적혀 있습니다. 파티클 간격과 복셀 크기도 같은 씬 단위를 따르므로 0.1은 10cm입니다.
Maya에서 센티미터로 만든 에셋을 Houdini로 넘길 때가 가장 자주 사고가 나는 지점입니다. 가져오는 쪽에서 단위 변환을 할지, 보내는 쪽에서 미리 맞출지를 파이프라인에서 한 번 정해 두면 시뮬레이션 담당자가 매번 크기를 추측하지 않아도 됩니다.
크기를 맞췄는데도 튜토리얼과 다르다면
첫째, 일부러 크기를 속이는 연출일 수 있습니다. 거대한 괴수의 움직임이나 작은 물방울의 과장된 튐처럼, 실제 크기와 다른 느낌이 필요한 샷도 있습니다. 이때도 먼저 실제 크기로 맞춘 뒤 Time Scale이나 중력으로 의도를 더하면, 어디까지가 물리고 어디부터가 연출인지 설명할 수 있습니다.
둘째, 모든 현상이 크기에 따라 똑같이 변하지는 않습니다. 미니어처 촬영에서도 물결은 축척이 잘 맞지 않는 대상으로 꼽힙니다. 표면장력이나 공기 저항처럼 크기에 따라 비중이 달라지는 힘이 있기 때문입니다. 제곱근 기준은 중력 낙하에 맞는 출발점이지 모든 값의 변환 공식은 아닙니다.
셋째, 크기 외의 차이도 남아 있을 수 있습니다. 서브스텝, 프레임레이트, 솔버 버전의 기본값 차이가 대표적입니다. 다만 크기를 먼저 맞춰 두어야 이 차이들이 하나씩 보입니다.
한 줄 정리
튜토리얼 값을 넣어도 결과가 다르다면 값을 고치기 전에 물체가 솔버에게 몇 미터로 읽히는지부터 맞추세요.
vfx 잡학지식



댓글 0
첫 댓글을 남겨보세요.