모션 스튜디오 엔진 대규모 업그레이드 — 프레임 하나까지 프로처럼
약 16분·
움직이는 스티커의 품질은 디테일에서 갈립니다. 가장자리 한 픽셀의 얼룩, 옆 프레임에 남은 그림 조각, 미묘하게 어긋난 프레임 하나 — 구매자는 이유를 설명하지 못해도 "어딘가 아마추어 같다"는 인상은 정확하게 받습니다. 그래서 모션 스튜디오의 제작 엔진을 다섯 방향에서 통째로 업그레이드했습니다. 이 글은 단순한 변경 로그가 아니라, 움직이는 스티커의 품질이 정확히 어디에서 결정되는지에 대한 해설이기도 합니다. 여러분이 하던 작업 방식은 그대로입니다 — 설정 하나 바꿀 것 없이, 결과물만 눈에 띄게 좋아집니다.
왜 "가장자리"가 승부처인가
이모티콘은 완성작을 흰 캔버스에서 감상하는 그림이 아닙니다. 채팅창이라는 예측 불가능한 무대 위에서 소비됩니다. 어떤 사용자는 흰 배경, 어떤 사용자는 다크모드, 어떤 사용자는 노란 말풍선 위에서 같은 스티커를 봅니다. 배경이 이렇게 제각각이기 때문에, 스티커의 투명 경계 — 즉 가장자리 — 가 모든 환경에서 깨끗해야 합니다.
가장자리 품질이 무너지는 전형적인 패턴은 세 가지입니다. 첫째, 배경 제거가 과하면 캐릭터의 밝은 부분(크림색 몸통, 흰 셔츠)이 배경과 함께 지워져 몸에 구멍이 납니다. 둘째, 배경 제거가 부족하면 원래 배경색의 얼룩이 실루엣 주변에 지저분하게 남습니다. 셋째, 반투명 경계를 이분법으로 처리하면 곡선 윤곽이 계단처럼 깨집니다. 세 문제는 서로 반대 방향이라, 하나를 세게 잡으면 다른 하나가 터집니다.
이번 업그레이드의 첫 번째 목표가 바로 이 삼각 딜레마의 해소였습니다. 결론부터 말하면 — 이제 세 문제를 동시에 잡습니다.
배경 분리 1 — 생성 단계부터 "지울 수 없는 색"을 없앤다
배경 제거가 어려운 근본 원인은 캐릭터와 배경이 비슷한 색을 공유하는 데 있습니다. 흰 배경 위의 흰 고양이를 생각해 보세요. 어떤 알고리즘도 "이 흰색은 고양이, 저 흰색은 배경"을 완벽하게 구분할 수 없습니다. 그래서 새 엔진은 문제를 제거 단계가 아니라 생성 단계에서 풉니다.
이미지를 생성할 때부터, 캐릭터가 절대 쓰지 않을 전용 배경색을 자동으로 골라 깝니다. 캐릭터의 주요 색을 분석해서 — 분홍·빨강 계열 캐릭터라면 초록 배경을, 초록 계열 캐릭터라면 마젠타 배경을 선택합니다. 영화 촬영장의 크로마키 스크린과 같은 원리인데, 스크린 색을 배우 의상에 맞춰 매번 바꿔 다는 셈입니다. 이 선택은 완전 자동이라 여러분이 신경 쓸 것은 없습니다.
- 흰색·크림색 캐릭터 안전 — 배경이 흰색이 아니므로 밝은 몸통이 배경과 헷갈릴 일 자체가 사라집니다
- 자동 색 선택 — 캐릭터 색 분석 후 가장 먼 배경색을 고르므로 분홍 토끼도, 초록 개구리도 안전합니다
- 생성 지시 강화 — 캐릭터가 배경색 계열을 쓰지 않도록 생성 단계에서 함께 지시합니다
배경 분리 2 — 반투명 경계를 살리는 정밀 추출
배경색이 확보됐다면, 이제 그 배경을 지우면서 캐릭터의 경계를 얼마나 곱게 살리느냐가 관건입니다. 그림의 윤곽선은 사실 "캐릭터 색과 배경색이 섞인 얇은 띠"입니다. 이 띠를 통째로 지우면 실루엣이 한 겹 깎여 앙상해지고, 통째로 남기면 배경색 테두리가 감돕니다.
새 추출 엔진은 이 경계 띠의 픽셀 하나하나에 대해 "캐릭터가 몇 %, 배경이 몇 % 섞였는지"를 역산합니다. 그리고 배경 성분만 정확히 빼낸 뒤, 섞임 비율을 투명도로 보존합니다. 결과적으로 곡선 윤곽의 부드러운 그러데이션이 그대로 살아서, 어떤 배경 위에 올려도 매끈하게 안착합니다. 계단 현상도, 색 테두리도 없습니다.
캐릭터 안쪽에 튄 작은 배경색 얼룩(생성 모델이 가끔 남기는 잡티)도 따로 감지해 색만 보정합니다 — 구멍을 뚫지 않고요. 반대로 캐릭터가 의도적으로 쓴 배경색 계열의 큰 면적(진분홍 옷 같은)은 건드리지 않습니다. "실수는 고치고 의도는 존중한다"가 원칙입니다.
배경 분리 3 — 음영진 배경도 스스로 감지해 재분리
생성 모델이 항상 완벽하게 균일한 배경을 그려주지는 않습니다. 가끔 배경에 그림자나 그라데이션이 섞여 나오는데, 이런 배경은 표준 방식으로 지우면 어두운 구석이 얼룩으로 남습니다.
그래서 엔진에 자기 진단을 넣었습니다. 1차 분리가 끝나면 결과물을 스스로 검사해서, 배경색 잔여물이 기준치를 넘으면 — 밝기 변화에 강한 다른 분리 방식으로 자동 재시도한 뒤 더 깨끗한 쪽을 채택합니다. 실패를 사용자에게 떠넘기지 않고 엔진이 한 번 더 뛰는 구조입니다.
덤으로, 다크모드 대응을 위해 캐릭터를 감싸는 흰 테두리(OGQ 요구 규격)의 품질도 함께 올라갔습니다. 테두리는 캐릭터 실루엣을 따라 그려지는데, 실루엣 자체가 깨끗해졌으니 테두리도 균일해진 것이죠.
프레임 검증 — 불량은 자르기 전에 걸러낸다
움직이는 스티커는 보통 한 장의 시트에 4~8개 프레임을 격자로 생성한 뒤 잘라서 씁니다. 그런데 AI 생성에는 고질적인 실패 유형이 있습니다. 어떤 칸은 비어 나오고, 어떤 캐릭터는 옆 칸 캐릭터와 붙어 나오고, 8칸을 요청했는데 7개만 그려지기도 합니다.
예전에는 이런 불량을 잘라 보고 나서야 알았습니다. 이미 프레임이 팩에 들어간 뒤 재생해 보고 "3번째 프레임이 왜 비었지?" 하는 식이죠. 이제는 자르기 전에 엔진이 시트 전체를 검사합니다.
- 프레임 수 대조 — 선언한 프레임 수와 실제로 감지된 그림 수를 비교합니다. 모자라면 몇 번째 칸이 비었는지 번호로 알려주고, 슬라이스를 차단합니다
- 융합 감지 — 이웃 칸의 캐릭터와 붙어 버린 그림을 감지해 알려줍니다. 이건 자르는 걸로 해결이 안 되는 문제라, 재생성 한 번이 정답입니다
- 여분 감지 — 요청보다 많은 그림이 그려졌다면 어차피 잘려나갈 부분이므로 경고만 하고 진행합니다
검증에는 프레임 수 가이드도 포함됩니다. 자체 검증 데이터에서 9프레임 이상 구성은 중복 그림·빈 칸·추출 실패가 눈에 띄게 늘었습니다. 그래서 9프레임 이상을 구성하면 4~8프레임을 권장하는 안내가 미리 뜹니다. 프레임이 많다고 부드러워지는 게 아니라, 좋은 4프레임이 나쁜 12프레임을 이깁니다.
시트 분리 — "칸"이 아니라 "그림" 단위로 자른다
기존 슬라이스는 시트를 자로 재듯 균등한 사각형으로 잘랐습니다. 단순하고 빠르지만 치명적인 부작용이 있었죠. 캐릭터가 팔을 옆으로 뻗어 칸 경계를 살짝 넘으면, 그 팔끝이 잘려서 옆 프레임에 유령처럼 남습니다. 재생하면 옆 프레임에서 정체불명의 조각이 깜빡이는 거죠.
새 엔진은 픽셀 덩어리를 그림 단위로 인식합니다. 서로 연결된 픽셀들을 하나의 그림으로 묶고, 그 그림의 무게중심이 속한 칸에 통째로 배정합니다. 팔이 경계를 넘었어도 몸통과 연결돼 있으니 제 프레임으로 함께 갑니다.
- 경계에 걸친 팔·망토·소품 — 제 그림과 함께 온전히 보존, 옆 프레임 유령 조각 제로
- 이웃 그림에서 넘어온 부스러기 — 크기와 위치로 판별해 자동 제거
- 하트·반짝임·땀방울 같은 분리형 이펙트 — 캐릭터와 떨어져 있어도 제 칸의 연출 요소로 정확히 생존
- 원위치 보존 — 그림을 임의로 재정렬하지 않아 점프 궤적 같은 의도된 위치 연출이 그대로 유지됩니다
숨쉬기 모션 — 정지 그림 한 장이 살아 있는 이유
24종 팩을 만들다 보면 "이 컷은 그림 한 장이면 충분한데, 완전히 정지해 있으니 죽어 보인다"는 순간이 옵니다. 그렇다고 프레임을 여러 장 생성하자니 배보다 배꼽이 크고요. 숨쉬기 모션이 정확히 이 구간을 해결합니다.
적용하면 캐릭터의 몸통이 아주 미세하게 부풀었다 가라앉기를 반복합니다. 핵심은 무엇이 움직이지 않는가에 있습니다 — 얼굴과 표정은 완전히 고정되고, 발은 바닥에 딱 붙어 있습니다. 표정이 함께 흔들리면 감정 전달이 흐려지고, 발이 뜨면 캐릭터가 공중에 부유하는 것처럼 보이기 때문입니다. 부풀 때 가로가 살짝 넓어지고 세로가 그만큼 줄어 몸의 부피감이 유지되는, 애니메이션의 스쿼시&스트레치 원리도 들어 있습니다.
루프의 시작과 끝이 수학적으로 정확히 이어지도록 설계돼서, 무한 반복해도 이음새가 보이지 않습니다. 잔잔한 감정 컷 — 멍때리기, 기다리기, 물끄러미 바라보기 — 에 얹으면 "살아 있는 정적"이 만들어집니다.
컷 큐레이션 — 마지막 1%를 다듬는 도구
좋은 애니메이션은 만들 때보다 다듬을 때 완성됩니다. 8프레임을 생성했는데 그중 6프레임만 마음에 든다면? 예전에는 시트를 다시 생성하거나 마음에 안 드는 프레임을 억지로 안고 갔습니다. 이제는 시퀀스 에디터에서 골라내면 됩니다.
- 컷 거부 — 마음에 안 드는 프레임을 재생에서만 제외합니다. 그림 파일은 그대로 남아 있어서, 마음이 바뀌면 체크 하나로 복귀합니다
- 좌우 반전 — 같은 그림으로 반대 방향 동작을 즉시 만듭니다. 왼쪽 보며 흔들기 4프레임이 있다면, 반전으로 오른쪽 버전이 공짜로 생기는 셈입니다
- 재생 배속 0.25×~4× — 4분의 1 속도로 돌려 보면 정상 속도에서 놓치던 어색한 프레임이 정확히 보입니다
- 프레임 스텝 — 한 프레임씩 앞뒤로 넘기며 타이밍과 연결 동작을 점검합니다
이 도구들은 전부 비파괴 방식입니다. 원본 그림은 절대 수정되지 않고, 재생 방법에 대한 결정만 따로 저장됩니다. 실험을 겁낼 이유가 없습니다 — 무엇을 하든 되돌릴 수 있으니까요.
실전 워크플로 — 8프레임 시트에서 완성 GIF까지
업그레이드된 엔진으로 실제 작업이 어떻게 흘러가는지, 전형적인 시나리오 하나를 따라가 보겠습니다. 목표는 "신나서 팔짝팔짝 뛰는" 움직이는 스티커입니다.
- 시퀀스 에디터에서 점프 템플릿을 적용합니다 — 웅크림·도약·체공·착지의 프레임 플랜이 자동으로 잡힙니다
- 시트 생성을 누릅니다 — 캐릭터 전용 배경색 위에 프레임 격자가 생성됩니다
- 슬라이스를 누릅니다 — 검증 게이트가 프레임 수를 확인하고, 통과하면 그림 단위로 잘려 투명 프레임이 됩니다. 빈 칸이 있었다면 여기서 차단되고 몇 번 칸인지 안내가 뜹니다
- 라이브 프리뷰에서 0.5× 배속으로 재생하며 어색한 프레임을 찾습니다 — 하나가 어색하면 거부 체크로 빼버립니다
- 착지 컷에 잔여 반동을 주고 싶다면 마지막 프레임을 복제하고 숨쉬기를 얹습니다
- 내보내기 — 타겟(OGQ/카카오) 규격으로 자동 인코딩·검증됩니다
전 과정에서 "배경을 지운다", "프레임을 잘라 정리한다" 같은 수작업이 완전히 사라졌다는 점에 주목해 주세요. 여러분의 일은 연출 판단뿐입니다.
플랫폼 규격과의 관계 — 검증은 여전히 자동
엔진이 새로워져도 최종 관문은 변함없습니다. 플랫폼 규격이죠. 내보내기 단계의 자동 검증은 이번 업그레이드와 무관하게 계속 작동하며, 새 엔진의 깨끗한 프레임은 규격 통과율에도 직접 도움이 됩니다.
- OGQ 애니메이션 스티커 — 740×640 GIF 24종, 각 1MB 이하 · 3초/100프레임 이하 · 투명 배경, 메인 240×240 GIF + 탭 96×74 PNG
- 카카오 움직이는 이모티콘 — 360×360 GIF, 움직이는 시안 3종 이상(흰 배경 · 24프레임 이하 · 2MB 이하) + 나머지 멈춤 시안(투명 PNG · 150KB 이하), 총 24종 제안
- 배경 처리 차이 주의 — OGQ 는 투명 배경, 카카오 움직이는 시안은 흰 배경입니다. 타겟 전환 시 스튜디오가 자동으로 배경을 바꿔 인코딩합니다
특히 용량 규격은 가장자리 품질과 직결됩니다. 지저분한 경계 픽셀은 GIF 압축 효율을 떨어뜨려 용량을 불립니다. 가장자리가 깨끗해지면 같은 애니메이션도 더 작게 인코딩됩니다 — 품질과 규격 통과가 한 방향입니다.
업그레이드 전후 — 무엇이 달라졌는지 한눈에
- 배경 분리: 흰 배경 + 일괄 제거 → 캐릭터 맞춤 배경색 + 픽셀 단위 섞임 역산 + 음영 자동 재분리
- 밝은 캐릭터: 몸통에 구멍 위험 → 구조적으로 안전
- 가장자리: 이분법 경계(계단 위험) → 반투명 그러데이션 보존
- 프레임 검증: 없음(잘라 보고 발견) → 슬라이스 전 자동 검증 + 미달 차단 + 빈 칸 번호 안내
- 시트 분리: 균등 격자 크롭(유령 조각) → 그림 단위 소유권 분리(조각 제로)
- 정지 컷: 완전 정지 → 숨쉬기 모션으로 살아 있는 루프
- 다듬기: 재생성 반복 → 거부·반전·배속·스텝 비파괴 큐레이션
자주 묻는 질문
Q. 기존에 만들던 팩에도 적용되나요? — 네. 별도 설정 없이 전부 자동입니다. 이미 업로드한 옛 자산(흰 배경)도 기존 방식으로 계속 정상 처리되고, 새로 생성하는 것부터 새 엔진을 탑니다. 시트를 다시 생성해 보시면 가장자리부터 차이가 보입니다.
Q. 배경색이 바뀌면 캐릭터 색감에 영향이 없나요? — 없습니다. 배경색은 추출 단계에서 완전히 제거되고, 경계에 스며든 성분까지 역산해 빼냅니다. 최종 결과물에는 배경색의 흔적이 남지 않습니다.
Q. 프레임 검증에서 계속 차단되면 어떻게 하나요? — 차단 메시지가 알려주는 빈 칸 번호를 확인하고 시트를 재생성하는 것이 가장 빠릅니다. 프레임 수를 4~8개로 줄이면 성공률이 크게 올라갑니다. 그림끼리 붙어 나오는 경우도 재생성이 정답입니다 — 붙은 그림은 어떤 도구로도 자연스럽게 분리되지 않습니다.
Q. 숨쉬기 모션은 모든 그림에 어울리나요? — 잔잔한 감정 컷에 가장 잘 어울립니다. 이미 동작이 큰 컷(점프, 달리기)에는 필요 없고, 오히려 산만해질 수 있습니다. "정지해 있어서 죽어 보이는 컷"이 명확한 적용 대상입니다.
Q. 이 업그레이드로 심사 통과가 보장되나요? — 규격(크기·용량·프레임·배경)의 기술적 통과율은 직접적으로 좋아집니다. 다만 심사는 규격 외에 캐릭터의 매력과 감정 전달도 봅니다 — 그 부분은 여전히 컨셉과 연출, 즉 여러분의 몫입니다. 엔진은 기술적 이유로 반려당하는 일이 없도록 뒤를 받칩니다.
지금 바로 체감해 보세요
이번 업그레이드는 전부 자동 적용입니다. 설정을 바꿀 것도, 새로 배울 것도 없습니다. 만들던 팩을 열어 시트를 다시 생성해 보면 가장자리부터 다릅니다. 정지 스티커만 만들어 봤다면, 지금이 움직이는 버전에 도전하기 가장 좋은 타이밍입니다 — 어려운 부분은 전부 엔진이 받아주니까요.
다음 업그레이드도 준비 중입니다. 방향은 같습니다: 기술적인 수고는 엔진이, 창작의 즐거움은 여러분이. 새 소식은 이 블로그와 사이트 공지로 가장 먼저 알려드리겠습니다.