Artoke

왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간

왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간 대표 이미지
출처: 왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간

왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간

애니메이션 캐릭터가 팔을 들고, 눈을 깜빡이고, 걸어 다닙니다. 그 캐릭터 안에는 뼈대가 들어 있어요. 그 뼈대를 만드는 사람을 리거라고 부릅니다.

리거는 하루 종일 비슷한 일을 반복합니다. 뼈 하나 만들고, 이름 붙이고, 위치 맞추고, 다시 뼈 하나 만들고… 손가락 하나에도 뼈가 세 개씩 들어가요. 양손이면 서른 개입니다.

이럴 때 리거가 꺼내 드는 것이 파이썬입니다.

파이썬이 뭔가요?

파이썬은 컴퓨터에게 시키는 말을 적는 방법 중 하나입니다. 프로그래밍 언어라고 불러요.

세상에는 언어가 많습니다. 한국어, 영어, 일본어처럼요. 컴퓨터 언어도 마찬가지로 여러 개예요. 그중 파이썬은 가장 사람 말에 가까운 축에 속합니다.

파이썬의 성격을 세 가지로 정리하면 이렇습니다.

  • 읽기 쉽다 — 코드를 눈으로 훑으면 무슨 뜻인지 대충 짐작이 갑니다.
  • 줄 맞춤이 문법이다 — 다른 언어는 괄호로 묶지만, 파이썬은 들여쓰기(칸 띄우기)로 묶습니다. 그래서 아무렇게나 써도 자동으로 정돈된 모습이 됩니다.
  • 도구가 이미 잔뜩 들어 있다 — 설치만 하면 날짜 계산, 파일 읽기, 글자 다루기 같은 기능이 기본으로 딸려 옵니다. 이걸 "배터리 포함"이라고 부릅니다. 장난감을 샀는데 건전지까지 들어 있는 것과 같아요.
파이썬을 만든 귀도 반 로섬이 파이콘 행사에서 이야기하는 모습
The designer of Python, Guido van Rossum , at PyCon US 2024 · 출처: 왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간

손으로 할 때와 코드로 할 때

뼈 30개에 이름을 붙인다고 해봅시다.

손으로 하면 30번 클릭하고, 30번 타이핑합니다. 30분쯤 걸려요. 그리고 꼭 한두 개는 오타가 납니다. hand_L_01이라고 써야 하는데 hand_L_1이라고 쓰는 식이죠.

코드로 하면 이렇게 씁니다.

for i in range(1, 31):
    이름붙이기(f"hand_L_{i:02d}")

세 줄입니다. 그리고 오타가 날 수가 없어요. 컴퓨터는 30번을 똑같이 반복하니까요.

더 중요한 건 다음번입니다. 다음 캐릭터가 왔을 때, 손으로 한 사람은 다시 30분을 씁니다. 코드로 한 사람은 파일을 한 번 실행하고 3초 만에 끝냅니다.

왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간 도식

그럼 무조건 코드로 짜면 되나요?

아닙니다. 여기서 리거의 진짜 판단이 나옵니다.

위 그림을 다시 보세요. 코드는 처음에 더 오래 걸립니다. 한 번만 할 일을 코드로 짜면 손해예요. 30분이면 끝날 일에 60분을 쓰는 셈이니까요.

그래서 실무에서 쓰는 기준은 대략 이렇습니다.

  • 세 번 이상 할 일인가? 두 번까지는 그냥 손으로 합니다. 세 번째부터 코드를 생각합니다.
  • 규칙이 뚜렷한가? "왼손 뼈 이름 끝에 _L을 붙인다" 같은 건 규칙이 명확합니다. 반면 "캐릭터 표정이 예뻐 보이게 조정한다"는 규칙으로 적기 어렵습니다. 눈으로 보고 판단해야 하니까요.
  • 틀리면 큰일 나는가? 뼈 이름 하나가 틀리면 나중에 애니메이터가 작업하다 멈춥니다. 이런 건 사람보다 컴퓨터가 낫습니다.

정리하면 반복 + 규칙 있음 + 실수하면 아픔. 이 세 개가 겹치는 자리가 코드로 옮길 자리입니다.

쓸 때 좋은 점

  • 퇴근이 빨라집니다. 이게 제일 큽니다. 수정 요청이 밤 10시에 와도, 스크립트가 있으면 5분 만에 처리하고 갑니다.
  • 실수 걱정이 사라집니다. 손으로 300개를 세다 보면 마음이 불안해요. "내가 하나 빠뜨렸나?" 코드는 그 불안이 없습니다.
  • 남에게 넘기기 쉽습니다. "이 파일 실행하세요"면 끝입니다. 말로 30단계를 설명할 필요가 없어요.
  • 어제 만든 걸 오늘 또 씁니다. 도구가 쌓입니다. 1년 지나면 나만의 도구 상자가 생겨 있어요.

쓸 때 힘든 점

  • 처음이 제일 답답합니다. 손으로는 10분이면 될 일을, 코드가 안 돌아가서 두 시간을 붙잡고 있게 됩니다. 이 시기를 못 버티고 포기하는 사람이 많아요.
  • 내가 만든 도구를 내가 고쳐야 합니다. 프로그램이 새 버전으로 바뀌면 예전 코드가 안 돌아갑니다. 그때마다 다시 손봐야 해요. 도구를 만드는 순간 도구 수리공도 되는 겁니다.
  • 여섯 달 뒤의 내 코드는 남의 코드입니다. 분명 내가 짰는데 뭘 하는 건지 모르겠습니다. 그래서 주석(설명 메모)을 달아야 하는데, 바쁠 땐 그걸 또 안 답니다.
  • 코드에 취할 수 있습니다. 한 번만 쓸 작업인데 재미있어서 도구부터 만들고 앉아 있는 날이 옵니다. 그날 결과물은 0입니다.
  • 조용히 틀릴 수 있습니다. 손으로 하면 이상한 게 눈에 보입니다. 코드는 300개를 똑같이 틀리게 만들어 놓고도 아무 말이 없어요. 확인은 결국 사람 몫입니다.

파이썬이 하필 리깅에서 쓰이는 이유

이유는 단순합니다. 3D 프로그램들이 파이썬을 안에 넣어 두었기 때문입니다.

마야, 블렌더, 후디니 같은 프로그램 안에는 파이썬을 실행하는 창이 이미 들어 있습니다. 따로 뭘 설치할 필요가 없어요. 창을 열고 코드를 치면 그 자리에서 캐릭터가 움직입니다.

왜 하필 파이썬을 넣었을까요? 3D 프로그램을 쓰는 사람들은 대부분 프로그래머가 아닙니다. 그림 그리는 사람, 애니메이션 만드는 사람이에요. 이런 사람들이 배우기에 파이썬만큼 문턱이 낮은 언어가 드물었습니다.

파이썬이 세상을 나누는 방식

코드를 짜려면 파이썬이 물건을 어떻게 구분하는지 알아야 합니다.

파이썬은 세상 모든 걸 상자에 담아 다룹니다. 그리고 상자에는 종류가 있어요.

  • 숫자 상자 — 3, 7, 1.5 같은 것
  • 글자 상자 — "hand_L" 같은 것
  • 목록 상자 — 여러 개를 줄 세워 담은 것. 뼈 30개를 한꺼번에 담습니다.
  • 참/거짓 상자 — 맞다, 아니다 둘 중 하나

상자 종류를 아는 게 왜 중요할까요? 종류마다 할 수 있는 일이 다르기 때문입니다. 숫자끼리는 더할 수 있지만, 숫자와 글자는 못 더합니다. "3 + 사과"가 말이 안 되는 것과 같아요.

파이썬의 자료형이 계층 구조로 정리된 도표
The standard type hierarchy in Python 3 · 출처: 왜 리거가 파이썬을 쓰는가 — 반복 작업을 도구로 바꾸는 순간

위 그림은 파이썬이 쓰는 상자 종류 전체를 나뭇가지처럼 그린 것입니다. 지금 다 외울 필요는 없어요. "생각보다 종류가 많고, 위아래로 갈라져 있구나" 정도만 봐 두면 충분합니다.

리거가 실제로 만드는 도구들

리거가 파이썬으로 만드는 것들은 대개 이런 모양입니다.

  • 이름 정리 도구 — 뼈 이름을 규칙대로 한꺼번에 바꿉니다. 가장 처음 만들게 되는 도구입니다.
  • 검사 도구 — 완성된 캐릭터를 훑으면서 이상한 곳을 찾아냅니다. "이 뼈는 이름 규칙에 안 맞습니다" 하고 알려줘요.
  • 뼈대 자동 생성 도구 — 팔, 다리처럼 구조가 정해진 부분을 통째로 만들어 냅니다.
  • 옮기기 도구 — 이 캐릭터의 설정을 저 캐릭터로 복사합니다.

여기서 눈여겨볼 게 있습니다. 도구들이 점점 "내 손을 대신하는 것"에서 "내가 못 하던 것"으로 옮겨갑니다.

이름 정리 도구는 내 손을 대신합니다. 하지만 검사 도구는 다릅니다. 캐릭터 하나에 뼈가 400개 있으면, 사람이 눈으로 전부 확인하는 건 사실상 불가능해요. 이건 대신하는 게 아니라 새로 생긴 능력입니다.

파이썬을 쓰는 진짜 이유는 여기 있습니다. 시간을 아끼는 건 시작일 뿐이고, 결국은 혼자서는 못 하던 규모의 일을 하게 되는 것입니다.

어디서부터 시작할까

거창하게 시작할 필요 없습니다. 오늘 한 일 중에 제일 짜증 났던 반복 작업 하나를 고르세요.

그리고 그걸 코드로 옮겨 보세요. 첫 도구는 다섯 줄이어도 괜찮습니다. 중요한 건 줄 수가 아니라, "이건 컴퓨터가 해도 되는 일이었네"라고 깨닫는 순간입니다.

그 순간을 한 번 겪으면, 그다음부터는 작업하다 말고 자꾸 이런 생각이 듭니다. "이것도 코드로 되지 않나?"

리거가 파이썬을 쓰는 이유는 바로 그 생각이 멈추지 않기 때문입니다.

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기