본문으로 건너뛰기
AI 수익화 도전기
AI로 어린이 3D 애니메이션 만들기 · 일지 2

어린이 3D 애니메이션 만들기 2편, 자동차 다섯 대 시리즈를 블렌더로 만든 과정

일지· 읽는 데 9분

색이 다른 자동차 다섯 대가 놀이 세트를 달리는 어린이 애니메이션 4편을 블렌더 스크립트로 만들었어요. 겹치던 차, 떠 있던 차, 벽을 뚫던 차가 판마다 어떻게 바뀌었는지 실제 장면으로 보여 드려요.

목차 11개

1편의 곰 캐릭터 다음으로 만든 시리즈예요. 빨강, 노랑, 초록, 파랑, 보라 자동차 다섯 대가 장난감 놀이 세트에서 달리고 부수고 색이 바뀌는 대사 없는 영상이에요. 이번엔 언리얼 대신 블렌더 5.2에서 세트, 차 경로, 카메라를 전부 파이썬 스크립트로 만들었어요. 1화를 여섯 판까지 고치고 2~4화를 만드는 데 엿새가 걸렸고, 그 뒤에 5~8화 스토리보드를 써 뒀어요.

1~4화 최종본에서 한 장씩. 1화 피날레의 다섯 대와 반짝이, 2화 밤 축제의 별빛 탑, 3화 공룡 옆의 몬스터트럭, 4화 케이크 옆의 차들

그림부터 정하기

먼저 이미지 생성으로 전체 놀이 맵과 차량, 소품 참고 그림을 만들었어요. 다섯 칸 차고, 파란 도로, 무지개 다리, 연못이 있는 장난감 마을이에요.

밝은 장난감 마을 전체 맵. 다섯 색 문이 달린 차고, 파란 도로, 무지개 다리, 연못, 작은 집들

다섯 색 차고, 미끄럼틀, 물감 풀과 빨간 승용차, 노란 미니버스, 초록 픽업, 파란 몬스터트럭, 보라 덤프트럭 참고 그림

차량은 이 참고 그림을 3D로 생성한 모델을 썼어요. 한 대가 수백만 폴리곤이라 가져올 때 4.5%로 줄였고, 세트는 모델링 없이 스크립트로 띠 모양 도로와 둥근 상자, 구를 조립했어요. 다섯 색 값도 코드에 고정해서 이후 모든 에피소드의 색 기준으로 삼았어요.

1화: 겹치던 차를 떼어 놓기

첫 판은 1분짜리 이야기 하나를 카메라 네 대로 찍어 10번 이어 붙인 10분 영상이었어요. 같은 1분이 반복되는 데다 차들이 서로 파고들었어요.

왼쪽은 첫 판에서 빨간 차가 파란 트럭, 노란 차와 한 덩어리로 겹쳐 무지개 다리를 지나는 장면, 오른쪽은 두 번째 판에서 네 대가 무지개 차선마다 따로 달리는 장면. 겹친 차에 빨간 동그라미, 오른쪽에 차선마다 따로 메모

두 번째 판에서는 이야기를 서로 다른 1분짜리 장 10개로 다시 짰어요. 퍼레이드, 콘 차선, 물감, 벽 부수기, 알 깨기, 축구, 무지개 다리, 볼링, 대형 주행, 피날레예요. 차선을 5.2m 간격으로 나누고 옆으로 흔들리는 것도 자기 차선 안에서만 하게 했어요. 10분을 0.25초마다 멈춰서 모든 차 쌍이 겹치는지 계산하는 검사 스크립트도 붙였고, 겹침 0건이 나와야 다음으로 넘어가게 했어요.

if collisions:
    raise RuntimeError(f"vehicle overlap detected at {len(collisions)} samples")

이 검사 스크립트와 배경음악·효과음을 만든 스크립트는 글 아래에서 내려받을 수 있어요.

떠 있던 차를 땅에 붙이기

두 번째 판을 보니 차가 땅에서 떠 있었어요.

왼쪽은 두 번째 판 피날레에서 파란 트럭의 그림자가 차체와 떨어져 공중에 뜬 모습, 오른쪽은 세 번째 판에서 다섯 대가 그림자와 붙어 도로 위에 선 모습. 떨어진 그림자에 빨간 동그라미

왼쪽 파란 트럭은 그림자가 차 밑에서 한참 떨어져 있어요. 빨간 동그라미 친 곳이 떨어져 나간 그림자예요. 세 번째 판에서는 차마다 모델의 진짜 가장 낮은 점을 구하고, 차 위치에서 아래로 광선을 쏴 지형 높이를 찾아 1.2cm만 띄워 놓았어요. 드문드문 넣은 키 사이에서 곡선이 튀어 바퀴가 뜨는 프레임도 있어서, 렌더할 모든 프레임에 위치 키를 구워 넣었어요.

벽은 앞 범퍼가 닿을 때

몬스터트럭이 블록 벽을 부수는 장면도 이상했어요.

왼쪽은 두 번째 판에서 몬스터트럭이 뒤 짐칸 쪽으로 블록 벽에 붙어 있는 장면, 오른쪽은 세 번째 판에서 앞쪽 운전석 방향으로 벽에 닿은 장면. 짐칸 쪽은 빨간 동그라미, 앞쪽은 파란 동그라미로 표시

두 번째 판에서는 트럭이 닿기 전에 벽이 무너지기 시작했고, 충돌할 때 살짝 튕겨 나가는 움직임 때문에 방향이 뒤집혀 짐칸으로 벽을 치는 프레임도 있었어요. 간격 숫자는 멀쩡해서 거리 검사로는 안 잡혔어요. 튕기는 움직임을 빼고 충돌 순간 방향을 고정했고, 블록은 앞 범퍼가 닿는 206.4초까지 제자리에 묶어 뒀다가 그 뒤 2초 동안만 흩어지게 했어요.

막힌 벽 대신 문 다섯 개

다음은 차고였어요. 차고 앞면이 통짜 상자에 색 문 패널을 붙인 거라, 차들이 막힌 벽을 그대로 뚫고 드나들었어요.

같은 카메라 비교. 왼쪽은 네 번째 판 전의 통짜 차고 앞에 색 문 패널이 붙어 있는 모습, 오른쪽은 기둥 사이로 열린 입구 다섯 개 앞에 차 다섯 대가 나와 있는 모습. 막힌 벽은 빨간 네모, 열린 입구는 화살표로 표시

네 번째 판에서 차고를 뒷벽, 옆벽, 천장, 기둥 6개로 다시 세워 폭 3.1m 입구 다섯 개를 만들었어요. 문은 위쪽을 고정한 채 세로로 줄여 셔터처럼 말려 올라가고, 차는 자기 문 한가운데로만 지나가요. 검사 결과 문턱을 지나는 순간 1,086개에서 자기 문 중심과의 오차가 0이었어요. 다만 지금 보면 열린 입구 안쪽이 그냥 초록 면이라 차고 속 깊이가 잘 느껴지지 않아요.

효과와 속도

다섯 번째 판에서는 화면 효과 41개와 효과음을 얹었어요. 효과는 파티클이 아니라 자막 파일 형식으로 그린 별, 원, 화면 전체 색 판이에요. 여섯 번째 판에서는 10분이 늘어져서 전체를 1.5배 빠르게 해 6분 40초로 줄이고, 배경음악 크기가 오르내리던 덕킹을 뺐어요.

물감 장면. 차가 물감 판을 지나가는 순간 화면 전체에 분홍빛 색 판이 덮여 흐릿하다. 작은 별 아이콘에 노란 동그라미

효과는 솔직히 아쉬워요. 반짝이가 작은 평면 별 아이콘이라 3D 장면 위에 스티커를 붙인 것처럼 보이고, 물감 장면의 색 플래시는 화면 전체를 분홍빛으로 덮어서 오히려 흐려 보여요.

블렌더는 10fps로 렌더하고 중간 프레임을 ffmpeg 움직임 보간으로 채웠어요. 처음엔 이미 보간한 영상을 다시 빠르게 만들었다가 차 윤곽이 두 겹이 됐고, 깨끗한 10fps 원본에서 한 번만 보간하는 순서로 바꿨어요. 그래도 빨리 넘어지는 볼링핀에는 흔적이 남아요.

볼링 장면. 빨간 공 옆에서 넘어지는 흰 볼링핀 하나가 번진 잔상처럼 뭉개져 있다. 번진 핀에 빨간 동그라미

2~4화: 같은 차, 다른 세트

2화 《멈춘 별빛 축제를 다시 켜라》는 같은 차 다섯 대와 같은 방식으로 세트와 이야기를 새로 만들었어요. 밤 축제라 전체가 어두운 남색이에요.

2화 장면 네 개. 별빛 탑 앞의 빨간 차와 노란 버스, 위에서 본 톱니 회전교, 거품 세차 터널을 지나는 차들, 색 타일 음악 도로 위의 노란 버스

3화 《꼬마 공룡 두리의 집을 찾아라》는 낮의 공룡 계곡, 4화 《햇살 케이크 특급 배달》은 과일 정원과 케이크예요. 편마다 40초짜리 장 8개, 5분 20초예요.

3화 장면 네 개. 발자국 나침반 캠프의 트럭들, 잎 뗏목 위의 트럭, 위에서 본 간헐천 계곡의 다섯 대, 초록 공룡 옆의 덤프트럭. 공룡에 빨간 동그라미

4화 장면 네 개. 딸기 정원 옆의 트럭들, 위에서 본 다섯 차선 웨이퍼 다리, 초 모양 기둥 정원, 삼단 케이크와 차들. 다섯 차선 장면에 파란 밑줄

편마다 30초씩 잘라 둔 장면이에요. 전체 영상은 글 아래에서 내려받을 수 있어요.

2화에서 30초. 색 타일 음악 도로
3화에서 30초. 공룡 가족을 다시 만나는 장면
4화에서 30초. 커다란 케이크

3·4화 색 맞추기

3화와 4화는 처음에 1화와 전혀 다른 색으로 나왔어요. 3화는 주황·파랑 조명, 4화는 파스텔 재질을 써서 한 시리즈로 보기엔 탁하고 흐렸어요.

3화 잎 뗏목 장면 비교. 왼쪽 원래 버전은 산이 회청색이고 전체가 뿌옇고, 오른쪽 다시 렌더한 버전은 잔디와 파란 산이 선명하다. 전과 후에 메모

다 만든 영상에 밝게, 선명하게, 채도만 올리기 세 가지 보정을 해 봤는데 셋 다 1화처럼 보이지 않았어요. 재질 팔레트 자체가 다르니 보정으로는 안 됐어요. 그래서 블렌더 장면의 재질, 하늘, 조명, 노출을 1화 값으로 바꾸고 두 편 4,800장씩을 전부 다시 렌더했어요. 버린 버전은 지우지 않고 따로 옮겨 뒀어요.

4화 딸기 정원 비교. 왼쪽 원래 버전은 전체가 하얗게 바랜 파스텔, 오른쪽 다시 렌더한 버전은 잔디와 언덕이 진하지만 딸기가 거의 검붉게 보인다. 검붉은 딸기에 빨간 동그라미

4화는 확실히 살아났는데, 딸기가 너무 어두워져서 체리나 검은 구슬처럼 보여요. 동그라미 친 딸기들이 그래요. 이건 아직 손보지 않았어요.

5화 이후 준비

5~8화는 구름 놀이공원, 바닷속 산호초 터널, 장난감 건축소, 우주 발사 기지예요. 스토리보드와 신규 소품 36종 목록을 먼저 썼어요. 관람차 바퀴와 곤돌라, 조개와 진주처럼 따로 움직여야 하는 건 처음부터 따로 만들고, 3D 생성에 넣을 입력 그림은 흰 배경에 물체 하나만 두기로 했어요. 그 입력 그림을 블렌더로 직접 모델링해 시험 렌더까지 해 봤어요.

크레인 소품 시험 렌더 비교. 왼쪽은 노란 팔이 몸통에서 떨어져 공중에 떠 있고, 오른쪽은 팔이 경첩으로 몸통에 붙어 있다. 떠 있는 팔은 빨간 동그라미, 경첩은 파란 동그라미로 표시

보고 나서

좋은 점부터요. 다섯 대가 색과 모양으로 바로 구분되고, 장난감 느낌이 네 편 내내 일정해요. 위에서 내려다본 다섯 차선 장면은 깔끔하고, 네 번째 판 이후로는 제가 뽑아 본 장면에서 차가 겹치거나 뜨거나 벽을 뚫는 모습이 보이지 않았어요. 판마다 고친 게 화면에서 바로 보이니 확인하기도 쉬웠어요.

아쉬운 점도 분명해요. 차는 생성 모델이라 디테일이 있는데, 세트는 원기둥과 원뿔을 쌓은 수준이라 둘이 같은 세계로 안 보여요. 3화 공룡도 캡슐을 이어 붙인 모양이에요. 4화는 소품만 잡히고 차가 화면에 없는 장면이 꽤 많고, 장 사이 전환 구간은 뿌옇게 겹쳐 보여요. 2화는 밤이라 어두운 바닥만 보이는 장면도 있어요. 참고 그림과 비교하면 렌더 색이 전체적으로 한 톤 흐리고 푸른 편이에요.

지금 상태

  • 1화 《Five Cars Playland》: 여섯 번째 판 6분 40초까지 만들었어요. 최종 영상 파일은 지금 폴더에 없고, 블렌더 파일, 렌더 프레임, 검사 보고서와 장면 캡처가 남아 있어요.
  • 2~4화: 각 5분 20초 최종 영상이 있어요. 3·4화는 1화 색 기준으로 다시 렌더한 게 최종이에요.
  • 5~8화: 스토리보드와 소품 목록, 일부 소품 시험 렌더까지 있어요.
  • 차는 물리가 아니라 경로 함수와 키프레임으로 움직여요. 5화의 롤러코스터 루프 같은 움직임은 아직 해 보지 않았어요.

곰 캐릭터로 언리얼을 자동화했던 첫 시도는 1편에 있어요.

이 글에서 쓴 파일

kids-animation-toolkit.zip녹음 없이 파이썬으로 만드는 배경음악 10곡·효과음 65개 스크립트, 블렌더 장면의 차 겹침·바닥 높이 검사 스크립트, 1화 제작 기록이에요. · 28KB
내려받기
five-cars-ep02-starlight-festival.mp42화 《멈춘 별빛 축제를 다시 켜라》 전체 영상이에요. 5분 20초, 720p. · 60MB
내려받기
five-cars-ep03-dino-valley.mp43화 《꼬마 공룡 두리의 집을 찾아라》 전체 영상이에요. 5분 20초, 720p. · 54MB
내려받기
five-cars-ep04-sunshine-cake-express.mp44화 《햇살 케이크 특급 배달》 전체 영상이에요. 5분 20초, 720p. · 47MB
내려받기
kids-animation-audio.zip녹음 없이 코드로 만든 동요풍 배경음악 10곡(20분)과 효과음 65개예요. MP3라 바로 쓸 수 있어요. · 30MB
내려받기
공유X에 공유

이어 읽기

댓글 0

가입 없이 써요. 비밀번호는 고치거나 지울 때 써요 · 댓글 규칙

아직 댓글이 없어요. 첫 이야기를 남겨 주세요.