어린이 3D 애니메이션 만들기 2편, 자동차 다섯 대 시리즈를 블렌더로 만든 과정
색이 다른 자동차 다섯 대가 놀이 세트를 달리는 어린이 애니메이션 4편을 블렌더 스크립트로 만들었어요. 겹치던 차, 떠 있던 차, 벽을 뚫던 차가 판마다 어떻게 바뀌었는지 실제 장면으로 보여 드려요.
목차 11개
1편의 곰 캐릭터 다음으로 만든 시리즈예요. 빨강, 노랑, 초록, 파랑, 보라 자동차 다섯 대가 장난감 놀이 세트에서 달리고 부수고 색이 바뀌는 대사 없는 영상이에요. 이번엔 언리얼 대신 블렌더 5.2에서 세트, 차 경로, 카메라를 전부 파이썬 스크립트로 만들었어요. 1화를 여섯 판까지 고치고 2~4화를 만드는 데 엿새가 걸렸고, 그 뒤에 5~8화 스토리보드를 써 뒀어요.

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


차량은 이 참고 그림을 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화 《멈춘 별빛 축제를 다시 켜라》는 같은 차 다섯 대와 같은 방식으로 세트와 이야기를 새로 만들었어요. 밤 축제라 전체가 어두운 남색이에요.

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


편마다 30초씩 잘라 둔 장면이에요. 전체 영상은 글 아래에서 내려받을 수 있어요.
3·4화 색 맞추기
3화와 4화는 처음에 1화와 전혀 다른 색으로 나왔어요. 3화는 주황·파랑 조명, 4화는 파스텔 재질을 써서 한 시리즈로 보기엔 탁하고 흐렸어요.

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

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편에 있어요.
댓글 0
아직 댓글이 없어요. 첫 이야기를 남겨 주세요.