애니메이션 기술을 데이터 압축이라는 시각으로 보면 꽤 흥미롭습니다. 왜 서로 다른 방식들이 존재하는지 훨씬 직관적으로 보이죠. 처음에는 그저 캐릭터를 움직이는 방법이라 생각하기 쉽습니다. 하지만 프로그래머 입장에서는 데이터를 어떻게 관리하느냐가 중요합니다. 오늘은 이 관점에서 애니메이션 기술을 살펴보겠습니다.
모든 점을 하나하나 기록하는 방식
가장 극단적인 경우는 정점 하나하나를 직접 움직이는 방법입니다. 캐릭터 표면을 이루는 모든 점이 어디로 이동하는지 전부 기록하죠. 표현력 면에서는 정말 자유롭고 뛰어난 방식입니다. 원하는 형태는 무엇이든 만들 수 있으니까요.

하지만 이 방식은 데이터양이 감당하기 힘들 정도로 커집니다. 마치 매 프레임의 모습을 전부 사진으로 찍어 저장하는 것과 비슷합니다. 어떤 형태든 만들 수는 있지만 효율 면에서는 부담이 큽니다. 용량이 너무 커서 실제 게임 적용은 어렵습니다.
필요한 부분만 남기는 지혜
여기서 한 단계 압축된 개념이 바로 모프 타깃(Morph Target)입니다. 모든 과정을 다 저장하는 비효율을 줄였습니다. 대신 웃음이나 분노 같은 의미 있는 극단적 포즈만 남겨 둡니다. 그 사이의 과정은 컴퓨터가 계산하도록 맡기는 겁니다.
이때 사용하는 방식을 선형 보간(LERP)이라고 부릅니다. 중간 장면은 굳이 저장하지 않아도 앞뒤 상태만 알면 만들 수 있다는 발상이죠. 덕분에 데이터는 줄이면서도 표정 같은 섬세한 변형은 유지할 수 있습니다. 얼굴 애니메이션에 자주 쓰이는 이유가 바로 이것입니다.
뼈대를 이용한 효율의 최적화
데이터를 가장 효율적으로 줄이는 방식은 스켈레탈 애니메이션(Skeletal Animation)입니다. 수많은 정점을 직접 기록하는 대신 소수의 관절만 제어합니다. 관절이 언제 어떻게 움직이는지만 저장해 두는 겁니다. 그러면 정점들이 그 움직임에 맞춰 자연스럽게 따라갑니다.
몸 전체의 변형을 몇 개의 주요 축 움직임으로 요약하는 셈입니다. 그래서 데이터량과 성능 면에서 가장 유리한 위치를 차지합니다. 움직임이 많은 게임 캐릭터의 몸동작 제어에 안성맞춤이죠. 프로그래머들이 가장 선호하는 방식 중 하나입니다.
상황에 맞춰 기술을 섞어 쓰는 이유
이 원리를 이해하면 실제 게임 개발 과정이 눈에 들어옵니다. 보통 몸 전체의 큰 동작은 스켈레탈 애니메이션으로 처리합니다. 그리고 눈이나 입처럼 미세한 움직임이 필요한 곳은 모프 타깃으로 보완하죠. 두 기술을 적절히 섞어서 사용하는 경우가 많습니다.
이것은 각 기술의 장점만을 취하려는 전략입니다. 뼈대로 큰 움직임을 잡고 모프 타깃으로 디테일을 살리는 식이죠. 이렇게 하면 용량은 아끼면서도 표현력은 놓치지 않을 수 있습니다. 효율적인 자원 관리가 필요한 프로그래머에게 필수적인 테크닉입니다.
데이터를 어디에 집중할 것인가
애니메이션 기술 선택은 시각적인 품질만의 문제가 아닙니다. 어떤 움직임을 얼마나 압축해서 저장할지 결정하는 과정입니다. 또한 어디에 데이터를 집중할 것인지에 대한 판단이기도 하죠. 제한된 자원 안에서 최상의 결과를 내야 하니까요.
중요도가 낮은 곳은 과감하게 압축하고 필요한 곳에 자원을 씁니다. 이런 기술적 안배가 있어야 게임이 쾌적하게 돌아갑니다. 오늘 다룬 내용을 바탕으로 애니메이션을 바라보는 시야를 넓혀보세요. 기술의 존재 이유가 훨씬 명확하게 보일 겁니다.