게임 속에 존재하는 여러 가지 물체, 오브젝트들은 결코 허투루 움직이지 않는다. 각 오브젝트마다 여러 가지 '애니메이션' 기법이 적용돼 자신의 특성에 맞는 움직임을 보여준다. 때로는 현실적인 움직임이기도 하고, 좀 더 과장되어 비현실적이 되기도 하지만 결론적으로는 '자연스러운' 움직임을 위해 여러 가지 애니메이션 기법이 적용되는 편이다.

이러한 애니메이션의 기법은 크게 두 가지로 나뉘는데, 그 기준은 바로 물리 법칙이다. 물리 법칙을 기반으로 하여 자연스러운 움직임을 보여줄 수 있는 '물리기반 애니메이션'과 개발자가 직접 적용하여 여러 가지 효과를 주기 편한 '비물리기반 애니메이션'. 두 방식은 서로의 장단점이 있어서 적용해야 할 분야를 잘 나누어야 한다.

이러한 애니메이션 기법의 특징과 문제점으로 인해 발생하는 문제들은 어떻게 해결하는 것이 좋을까? 그에 대한 경험을 띵소프트의 홍상범 TA가 강연을 통해 공유했다. '언리얼 서밋 2018'의 현장에서 홍상범 TA는 자신들이 실제로 게임을 제작하며 겪었던 애니메이션의 문제와 이를 해결하기 위한 방법 등을 청중들과 공유했다.

띵소프트의 홍상범 테크니컬 아티스트(TA)

그는 제일 먼저 각 애니메이션 기법들의 장단점을 소개했다. 먼저 비물리기반 애니메이션은 오브젝트를 XYZ 방향으로 움직여 프레임마다 '키'를 넣어주는 키 애니메이션이 있고, 오브젝트를 특정 형태로 변형을 시켜 움직임을 주는 '디폼 애니메이션'이 있다. 또, 뼈대를 만들고 오브젝트에 스킨을 입혀 뼈대를 움직이는 '본 올 바이프드 애니메이션' 등 다양한 기법이 존재한다.

비물리기반의 애니메이션은 수정이 물리기반 애니메이션보다 상대적으로 쉽고, 직관적인 작업이 가능하다. 그리고 주변 환경 변화에 크게 반응하지 않으며 다른 툴과의 호환이 상대적으로 편하다는 장점이 있다. 추가로, 시간과 아이디어만 있으면 어떤 움직임도 창의적으로 제작이 가능한 것이 큰 특징이다.

대신 비물리기반의 애니메이션은 한 번에 여러 가지 요소를 컨트롤하기가 불편하며, 거의 모든 과정을 사람의 손으로 작업해야 하기 때문에 작업이 오래 걸린다. 스킨 애니메이션 등 세팅 시간이 오래 걸리는 경우도 종종 있으며, 사실적인 물리 모션을 구현하기 어려운 부분도 있다. 그리고, 주변 환경에 반응하는 움직임을 표현하기가 힘들다는 게 큰 단점으로 작용한다.

사실적인 움직임을 위해서는 여러 가지 좌표와 형태를 정교하게 맞춰야 하는 수고가 필요하기 때문에 이런 작업에서는 비물리기반의 애니메이션은 선호되지 않는 편이다.



그렇기 때문에 사실적인 움직임에는 물리기반 애니메이션이 주로 채용된다. 물리기반 애니메이션도 여러 가지 기법이 있다. 단단한 물체들을 충돌 등의 시뮬레이션으로 움직임을 만들어내는 '리지드 바디 다이나믹스', 상호 작용하는 물체들 간의 역학을 이용한 변형을 만드는 '소프트 바디 다이나믹스', 그리고 입자 기반 시스템에 기초하여 움직임을 만들어내는 '파티클 애니메이션' 등의 기법이 대표적이다.

이런 물리기반의 애니메이션들은 일단 사실적인 움직임이 가장 큰 특징이다. 그리고 여러 객체를 한 번에 작업할 수 있고, 상호 작용하는 모션을 제작하기가 편하다. 또, 주변 여러 객체에 반응하는 움직임을 만들거나 실시간으로 움직임을 표현하기에 유용하며 한 번 세팅하면 여러 모션을 만들기가 편하다는 장점이 있다.

그러나 시뮬레이션 값을 다른 툴과 호환을 하려면 변환 과정이 필요해 호환성은 크게 떨어지는 편이다. 비물리기반 애니메이션 기법들에 수정이 상대적으로 비해서 불편하고, 주변 환경에 따라서 애니메이션의 반응이 원치 않는 모션을 보여주기도 한다. 경우에 따라서는 구현한 애니메이션이 너무 무겁기 때문에 인게임에서 사용하기 적합하지 않을 수 있고, 세팅 및 원하는 수치값을 찾는 데에 시간이 많이 소요될 수 있다는 단점이 따른다.



홍상범 TA는 이러한 애니메이션들의 특성을 잘 파악해서 적재적소에 사용하는 게 중요하다며, 이어서 각 애니메이션 기법에 따라서 발생할 수 있는 문제들을 몇 가지 소개했다. 비물리기반 애니메이션의 대표적인 문제는 물체 간의 충돌이 반영되지 않아 머리카락 등이 몸을 뚫고 가버리는 현상이 발생한다. 이런 문제를 해결하기 위해서 오브젝트를 하나하나 컨트롤해야 하는 수고로운 작업이 필요하다. 간단한 객체라면 괜찮겠지만, 머리카락과 같이 수많은 오브젝트를 컨트롤해서 적용하기는 정말 힘들다.

물리기반 애니메이션은 모션을 하나하나 구현해야 하기 때문에 원치 않는 모션이 많이 발생하기도 한다. 또한 실제 적용 과정에서 오브젝트의 상황에 따라서 물리적으로 가능하지 않은 움직임, 소위 '찢어짐'이 발생하기도 한다.

비물리기반을 적용하면 머리카락 머리를 뚫기도 한다. 일일히 수정하자니 객체가 너무 많아 비효율적.

빠른 움직임에 의해 비정상적인 모션이 발생되기도 한다.

띵소프트는 이런 현상들은 빠르게 수정하고, 원하는 애니메이션을 만들어내기 위해서 언리얼 엔진과 3DS MAX 모두 R&D 툴을 만들기로 했다. R&D 툴을 통해 다양한 세팅을 자동화할 수 있고, 여러 오브젝트를 컨트롤할 수 있도록 기능을 마련했다. 또한 안정적인 충돌을 구현할 수 있도록 보이지 않는 헬퍼 박스를 자동으로 구현해주기도 하고, 이런 애니메이션이 마음에 들면 쉽게 적용할 수 있도록 베이크하는 기능도 추가됐다.

또한 특별한 물리 현상, 현실적인 움직임을 위해서 헬퍼 박스의 값을 조절하거나 객체들끼리 연결할 수 있는 기능도 마련하여 물리기반 및 비물리기반 애니메이션들이 한층 더 현실적인 움직임을 보여줄 수 있게 됐다. 이 툴을 통해서 실시간 물리기반 모션을 적용할 수도 있었고, 여러 움직임을 한 번에 적용할 수도 있었다.

앞서 언급했던 머리카락의 부자연스러운 움직임(뚫고 나가는 현상)을 해결하면서 루핑에 문제를 해결할 수 있도록 프레임들을 합쳐주는 기능과 더불어 '옷'의 움직임을 잡아 줄 수 있는 기능까지 추가된 툴이었다.

R&D 툴을 이용해 작업 과정, 시간이 크게 줄어들일 수 있는 효과를 볼 수 있었다.

이렇듯 R&D 툴을 통해서 물리기반 및 비물리기반 애니메이션들의 단점을 극복하고, 장점들을 강화했다. 덕분에 애니메이터 및 아티스트들의 작업 속도를 향상시킬 수 있었고, 피드백으로 인한 수정 작업 역시 공정이 크게 줄었다. 추가적으로 직접 툴을 개발한 덕분에 비용적인 측면에서도 큰 이득을 볼 수 있었다.

홍상범 TA는 마지막으로 오브젝트에 애니메이션을 주는 과정은 다양한 방법이 있고, 이를 뒷받침하는 기능도 많다고 전했다. 그는 이런 여러 가지 방법들 속에서 더욱 효과적인 방법을 찾기 위한 연구를 계속 진행할 예정이라고 전하며 강연을 마쳤다.