1일 1포스팅 실패, 그리고 Rive라는 40시간의 늪 (feat. 외주비 400만원 아끼기)

개발자가 디자인 영역을 넘보다가 영혼까지 털린 기록. 8만원짜리 외주가 아까워 결국 내가 깎았다.

Jun Noh

1일 1포스팅, 안녕… 내 기록…

변명은 하지 않겠다.

다만 기록은 남겨야겠다.

이건 내가 게을러서가 아니라, 개발 인생 역대급으로 빡센 ‘찍먹’을 했기 때문이다.

현재 개발 중인 Babple 앱이 안드로이드 심사에 들어갔다.

2주간의 비공개 테스트 기간. 서버 코드는 동결(Freeze) 상태다.

코드를 건드릴 수 없는 강제 휴식기가 찾아왔고, 그게 화근이었다.

“시간도 떴는데 다음 프로젝트용 캐릭터 애니메이션이나 미리 만들어 둘까? Rive가 좋다던데.”

이 안일한 호기심이 내 3일을 통째로 집어삼켰다.

가벼운 마음으로 시작했다가 장장 40시간 동안 모니터 앞에서 말라비틀어졌다.

이건 코딩할 때의 피로와는 질이 다르다.

사용하지 않던 뇌 근육을 강제로 찢어발기는 고통이었다.

그 삽질의 기록을 남긴다.


1. 리깅(Rigging): 기하학을 모르면 관절이 부러진다

처음엔 포토샵 레이어만 잘 분리하면 되는 줄 알았다. Rive에 넣고 돌리면 알아서 돌아가겠거니 했다. 착각이었다. 팔을 회전시키니 팔꿈치가 찢어지고, 다리를 드니 허벅지가 골반을 탈출했다. 내 캐릭터는 움직일 때마다 기괴한 비명을 지르는 것 같았다.

문제는 “회전축(Pivot Point)“이었다.

수많은 문서를 뒤지고 나서야 원리를 깨달았다.

  • 관절은 원(Circle)이어야 한다: 회전하는 부위가 물리적으로 완벽한 원형이어야 외곽선이 유지된다.
  • 축의 위치: 상박과 하박이 겹치는 그 원의 정중앙(Center)에 축을 박아야 한다. 대충 눈대중으로 찍으면 무조건 어긋난다.

이걸 모르고 프로젝트를 5번이나 엎었다. 기초 없이 덤비면 몸이 고생한다는 옛말, 틀린 거 하나 없다.

2. 메시(Mesh): 멋 부리지 말고 그냥 잘라라

좀 더 부드럽게 휘어지는 관절을 만들겠다고 Mesh 기능을 건드린 게 두 번째 패착이었다. 버텍스(점) 찍는 순서가 조금만 꼬여도 이미지가 사탕 껍질처럼 꼬이고 깨졌다. 뼈(Bone)에 웨이트(Weight) 값을 주느라 점 하나하나를 클릭하다 보니 손목 터널 증후군이 도질 것 같았다.

이틀간의 사투 끝에 내린 결론은 하나다.

“무조건 잘라라.”

팔꿈치, 무릎처럼 접히는 관절은 메시로 해결하려 들지 마라. 포토샵에서 미리 파츠를 잘라서 가져오는 게 정답이다. 메시는 머리카락이나 옷자락처럼 관절 없이 펄럭이는 곳에만 써야 한다. 효율을 따지자. 우리는 아티스트가 아니라 엔지니어니까.

3. IK(Inverse Kinematics): 400만 원 아끼려다 학생이 되었다

여기가 진짜 고비였다. 걷기 애니메이션. 발 하나 드는데 허벅지, 무릎, 발목 각도를 일일이 손으로 돌려가며 맞췄다. 아무리 맞춰도 로봇처럼 삐걱거렸다. 30프레임 하나하나를 만지작거리다 보니 현타가 왔다.

“돈으로 해결하자.”

해외 프리랜서 사이트를 뒤졌다. 포트폴리오 괜찮은 인도네시아 작업자를 찾았는데, 견적이 문제였다. 캐릭터 1개, 1동작에 8만 원. 캐릭터가 10개고, 각각 5개 동작이 필요하다. 단순 계산으로 400만 원이다. 1인 개발자가 감당할 금액이 아니다.

머리를 굴렸다.

  • AI 툴? 원하는 퀄리티가 안 나온다.
  • 3D 오토 리깅 후 스프라이트 변환? 쉽긴 한데, 내가 원하는 건 ‘상호작용’이다. 유저가 터치하면 반응해야 하는데, 스프라이트 방식은 한계가 명확하다.
  • 게임 엔진 도입? 그렇다고 고작 캐릭터 몇 개 넣자고 React Native 앱에 유니티 같은 무거운 엔진을 붙인다? 배보다 배꼽이 더 크다.

결국, 외통수였다.

Rive로 직접 구현하는 것 말고는 답이 없었다.

다시 학생 모드로 돌아갔다.

유튜브 강의를 처음부터 정독하기 시작했고, 거기서 IK(역운동학)를 만났다.

원리를 이해하고 적용하니 신세계였다.

발바닥 위치만 잡으면 무릎과 허벅지가 수학적으로 계산되어 따라오더라.

400만 원짜리 기술을 몸으로 때워서 익힌 순간이었다.


결론: 40시간의 결과물, 그리고 청구서

수요일, 목요일 포스팅이 없는 이유는 이 캐릭터 하나 때문이다.

IDLE, 걷기, 환호, 좌절, 상호작용. 이 5가지 동작을 구현하느라 밥 먹고 자는 시간 빼고 40시간을 갈아 넣었다.

이제 구조는 잡혔으니 남은 캐릭터 9개는 좀 수월하겠지. 그래야만 한다. 안 그러면 진짜 못 해먹는다.

마지막으로, Rive.

툴 무료라고 꼬셔서 쓰게 해놓고, 막상 다 만들어서 .riv 파일로 내보내려니 결제 창 띄우는 건 좀 너무한 거 아니냐.

결국 결제했다. 내 40시간이 인질로 잡혀 있는데 별수 있나.

비즈니스 모델 참 독하게 잘 짰다.

마침.

다른 글 보기