
게임그래픽 작업은 결국 엔진 안에서 완성됩니다. 툴에서 아무리 멋지게 보여도 엔진에 올리면 색이 달라지거나 그림자가 어색해지는 일이 흔합니다. 수업에서는 완성…
노말맵이 하는 일: 빛을 속이는 지도
게임은 화면을 실시간으로 그려야 하므로 모델의 폴리곤 수에 한계가 있습니다. 갑옷의 작은 흠집이나 리벳, 천의 바느질선까지 모두 폴리곤으로 만들면 너무 무거워집니다. 노말맵은 이 디테일을 실제 형태 대신 빛이 반사되는 방향 정보로 저장한 이미지입니다. 표면은 평평하지만 빛이 마치 굴곡이 있는 것처럼 반사되어, 눈에는 디테일이 있는 것처럼 보입니다.
노말맵을 열어 보면 보라색과 파란색 계열의 이미지로 보입니다. 각 픽셀의 색이 그 지점 표면이 어느 방향을 향하는지를 나타내기 때문입니다. 굽기는 고해상도 모델의 표면 방향을 읽어 저해상도 모델의 UV 위에 이 색으로 기록하는 과정입니다. 그래서 고해상도 모델을 하이폴리, 게임용 모델을 로우폴리라고 부르며 두 모델을 함께 준비해야 합니다.
1단계: 실습용 하이폴리와 로우폴리 준비하기
첫 실습은 형태가 단순하면서 디테일을 넣기 좋은 소품을 고릅니다. 모서리가 둥글게 깎인 금속 상자, 리벳이 박힌 방패, 홈이 파인 기둥 정도가 적당합니다. 캐릭터 얼굴처럼 곡면이 복잡한 대상은 원리를 익힌 다음에 도전하는 편이 좋습니다.
- 로우폴리를 먼저 만든다. 실루엣을 결정하는 큰 형태만 폴리곤으로 표현한다
- 로우폴리를 복사해 하이폴리 작업을 시작한다
- 하이폴리에 모서리 둥글림, 홈, 리벳, 흠집 같은 디테일을 더한다
- 두 모델의 크기와 위치가 정확히 겹치는지 확인한다
하이폴리는 3ds Max 같은 모델링 툴에서 선을 추가해 다듬거나, ZBrush 같은 조각 툴로 디테일을 새겨 만듭니다. 중요한 것은 두 모델의 실루엣이 거의 같아야 한다는 점입니다. 실루엣이 크게 다르면 노말맵은 그 차이를 표현하지 못하고 오류가 생깁니다. 노말맵은 표면 안쪽의 굴곡을 표현할 뿐, 윤곽선 자체를 바꾸지는 못합니다.
2단계: 로우폴리 UV와 스무딩 정리하기
노말맵은 로우폴리의 UV 위에 기록되므로, 굽기 전에 UV가 정리되어 있어야 합니다. UV 조각끼리 겹치면 정보가 섞이고, 간격이 너무 좁으면 경계에서 색이 번집니다. 조각 사이에 충분한 여백을 두고, 체크무늬로 늘어짐을 확인해 둡니다.
다음은 스무딩 설정입니다. 스무딩은 면과 면 사이를 부드럽게 보이게 할지 각지게 보이게 할지 정하는 설정입니다. 각진 모서리를 표현하려고 스무딩을 끊었다면, 그 자리에서 UV도 함께 잘라 주는 것이 일반적인 규칙입니다. 스무딩 경계와 UV 경계가 어긋나면 굽기 결과에 이상한 선이 생기기 쉽습니다. 처음에는 이 규칙 하나만 지켜도 오류가 크게 줄어듭니다.
3단계: 케이지를 설정하고 굽기
굽기 프로그램은 로우폴리 표면에서 바깥쪽으로 광선을 쏘아 하이폴리 표면을 찾습니다. 이때 광선이 어디까지 뻗을지를 정하는 것이 케이지입니다. 케이지는 로우폴리를 살짝 부풀린 껍데기로, 하이폴리를 완전히 감싸야 합니다. 케이지가 너무 작으면 하이폴리의 튀어나온 부분을 놓치고, 너무 크면 엉뚱한 면의 정보를 읽어 옵니다.
케이지를 맞춘 뒤 출력 해상도와 저장 형식을 정하고 굽기를 실행합니다. Substance Painter처럼 텍스처 툴 안에서 굽는 방법도 있고, 모델링 툴의 굽기 기능을 쓰는 방법도 있습니다. 어떤 툴이든 하이폴리와 로우폴리를 지정하고, 케이지 거리를 정하고, 결과를 저장하는 흐름은 비슷합니다. 첫 실습에서는 낮은 해상도로 빠르게 여러 번 구워 보며 설정 차이를 비교해 보세요.
4단계: 자주 생기는 오류와 고치는 법
- 결과에 물결무늬나 얼룩이 생긴다: 케이지가 하이폴리를 다 감싸지 못했는지 확인하고 거리를 늘린다
- 가까이 붙은 부품의 디테일이 서로 찍힌다: 부품을 떼어 놓고 따로 굽는 방식을 쓴다
- 모서리를 따라 검은 선이나 끊김이 보인다: 스무딩 경계와 UV 경계가 일치하는지 확인한다
- 디테일이 흐릿하다: 출력 해상도와 해당 UV 조각의 크기를 키운다
- 엔진에 넣으니 굴곡이 반대로 보인다: 노말맵의 초록 채널 방향 설정이 엔진과 맞는지 확인한다
가까운 부품끼리 정보가 섞이는 문제는 특히 자주 생깁니다. 예를 들어 손잡이와 날이 붙어 있는 검을 한 번에 구우면 날의 디테일이 손잡이에 찍힐 수 있습니다. 이럴 때 부품을 일정 거리씩 떨어뜨려 놓고 구운 뒤 다시 제자리에 두는 방법을 많이 씁니다. 엔진마다 노말맵의 초록 채널 방향 규칙이 다를 수 있으므로, 쓰는 엔진의 기준을 미리 확인해 두면 마지막 단계에서 당황하지 않습니다.
실습을 마무리하고 다음 단계로 넘어가기
노말맵이 깔끔하게 구워졌다면 로우폴리에 적용해 하이폴리와 나란히 놓고 비교해 봅니다. 조명을 여러 방향에서 비춰 보면서 디테일이 자연스럽게 반응하는지 확인합니다. 같은 굽기 과정에서 앰비언트 오클루전처럼 그림자 정보를 담은 맵도 함께 구울 수 있는데, 이 맵들은 이후 텍스처 작업의 바탕이 됩니다.
소품 실습이 끝나면 곡면이 많은 무기나 갑옷 부품으로 넘어가고, 마지막으로 캐릭터에 도전하는 순서를 권합니다. 굽기 오류를 몇 번이고 다시 만나게 되는데, 그때마다 원인을 기록해 두면 금방 내 체크리스트가 생깁니다. 내 결과물의 오류 원인을 혼자 찾기 어렵다면, SBS아카데미게임학원 캐릭터모델링 과정 상담에서 작업 파일을 보며 막힌 단계를 함께 짚을 수 있습니다.
자주 묻는 질문
하이폴리 없이 노말맵을 만들 수도 있나요?
이미지에서 노말맵을 변환하거나 텍스처 툴에서 디테일을 직접 그려 넣는 방법도 있습니다. 다만 형태가 분명한 디테일은 하이폴리에서 굽는 방식이 더 정확합니다.
노말맵을 쓰면 폴리곤을 마음껏 줄여도 되나요?
아닙니다. 노말맵은 윤곽선을 바꾸지 못하므로, 실루엣을 결정하는 부분은 로우폴리에서도 폴리곤으로 표현해야 합니다.
가까운 캠퍼스에서 게임그래픽 알아보기
사는 곳과 가까운 캠퍼스를 고르면 수업 내용, 오시는 길, 상담 신청을 한 번에 볼 수 있습니다.