절차적 애니메이션: 컴퓨터가 스스로 그리는 움직임

절차적 애니메이션: 컴퓨터가 스스로 그리는 움직임
만화 영화 속 주인공은 어떻게 움직일까요? 옛날에는 사람이 그림을 한 장 한 장 그렸어요. 수천 장을 그려서 빠르게 넘기면 움직이는 것처럼 보였지요. 그런데 요즘 게임 속 캐릭터는 조금 달라요. 사람이 미리 다 그려 놓지 않아도, 컴퓨터가 그 자리에서 스스로 움직임을 만들어 내기도 해요. 이런 방법을 절차적 애니메이션이라고 불러요.
미리 그리기 vs 규칙으로 만들기
두 가지 요리 방법을 상상해 봐요. 첫 번째는 도시락이에요. 집에서 미리 만들어 온 음식이라, 맛은 좋지만 메뉴를 바꿀 수 없어요. 두 번째는 요리사예요. 레시피(요리 규칙)만 알고 있으면, 손님이 무엇을 주문하든 그 자리에서 새 요리를 만들 수 있지요.
애니메이션도 똑같아요. 미리 그려 둔 애니메이션은 도시락과 같아요. 정해진 동작만 보여 줄 수 있어요. 절차적 애니메이션은 요리사와 같아요. 컴퓨터에게 움직임의 규칙을 알려 주면, 컴퓨터가 상황에 맞는 새로운 움직임을 즉석에서 계산해서 만들어요.
규칙만 알려 주면 알아서 걸어요
강아지가 걷는 모습을 만든다고 해 볼게요. 미리 그리는 방법이라면, 평평한 길을 걷는 그림을 잔뜩 그려야 해요. 그런데 강아지가 언덕을 오르면 어떻게 될까요? 발이 땅에 닿지 않고 공중에 뜬 것처럼 보일 거예요. 언덕용 그림을 또 그려야 하지요.
절차적 애니메이션은 다르게 생각해요. "다리는 이만큼 길다", "발은 땅에 닿아야 한다", "몸은 균형을 잡아야 한다" 같은 규칙을 컴퓨터에게 알려 줘요. 그러면 컴퓨터가 매 순간 계산을 해서, 평지든 언덕이든 계단이든 발을 알맞은 곳에 딛는 걸음을 스스로 만들어 내요. 마치 진짜 강아지가 길을 보고 발을 옮기는 것처럼요.
톱니바퀴처럼 이어지는 움직임
절차적 애니메이션의 또 다른 재미있는 점은, 하나의 움직임이 다른 움직임을 끌고 간다는 거예요. 자전거를 떠올려 봐요. 페달을 밟으면 체인이 돌고, 체인이 돌면 뒷바퀴가 굴러가요. 페달 하나만 움직였는데 나머지가 줄줄이 따라 움직이지요.
아래 그림도 마찬가지예요. 첫 번째 바퀴가 두 번째 바퀴를 이끌고, 두 번째 바퀴가 세 번째 바퀴를 이끌어요. 사람은 첫 번째 바퀴의 규칙만 정해 주면 돼요. 나머지 바퀴의 움직임은 컴퓨터가 규칙에 따라 자동으로 계산해요. 두 번째 바퀴의 크기와 위치가 바뀌면, 세 번째 바퀴가 도는 빠르기도 저절로 달라져요.

게임에서 왜 이 방법이 좋을까요?
게임 속 세상에서는 무슨 일이 일어날지 아무도 몰라요. 캐릭터가 어디로 뛸지, 무엇과 부딪힐지 미리 알 수 없지요. 일어날 수 있는 모든 상황의 그림을 사람이 전부 그려 두는 건 너무 힘들고, 사실상 불가능해요.
그래서 절차적 애니메이션이 큰 도움이 돼요. 규칙만 잘 만들어 두면, 컴퓨터가 실시간으로, 그러니까 게임이 돌아가는 바로 그 순간에 상황에 딱 맞는 움직임을 만들어 주거든요. 캐릭터가 울퉁불퉁한 바위 위를 걸어도 발이 바위에 자연스럽게 닿고, 바람이 불면 깃발이 바람 방향대로 펄럭여요. 미리 정해 둔 동작보다 훨씬 다양한 움직임을 보여 줄 수 있는 거예요.
정리해 볼까요?
- 절차적 애니메이션은 사람이 그림을 미리 그리는 대신, 규칙을 알려 주고 컴퓨터가 움직임을 계산하게 하는 방법이에요.
- 도시락(미리 그린 동작)이 아니라 요리사(규칙으로 즉석 요리)에 가까워요.
- 하나의 움직임이 다음 움직임을 이끌어서, 자전거 체인처럼 줄줄이 이어져요.
- 게임처럼 무슨 일이 생길지 모르는 곳에서, 실시간으로 다양한 움직임을 만들 때 특히 강력해요.
다음에 게임 속 캐릭터가 계단을 자연스럽게 오르는 걸 본다면 떠올려 보세요. 그 걸음 하나하나를, 컴퓨터가 규칙을 따라 바로 그 순간에 계산하고 있을지도 몰라요!
출처
리깅 파이프라인 자동화 도구
반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.
리깅 도구 보기