[용어] 모듈화
![]()
1. 타일맵(TileMap)의 제작
특수한 목적을 가진 특별한 형태의 건물을 제외하고 모든 건물의 제작 방식은 대부분 Tile Map을 활용하여 제작된다.
중세 건축물에 주로 쓰이는 나무프레임이 들어간 회벽과 나무벽, 돌벽 등의 공용 Tile Map과 각 지역의 특색에 맞는 Tile Map을 제작하여 공유한다.
Tile Map의 기본은 4방향 Tile Map(상하좌우를 연결할 때 연결성이 보이도록)으로 제작하는 것을 기본으로 하고 건물의 몰딩이나 나무 프레임 같은 경우에는 횡Tile로 제작한다.
공용으로 쓰이는 Tile Map을 제작하여
사용 빈도를 고려하여 자주 쓰이는 것들끼리 2048*2048 한곳에 4종류의 Tile Map을 묶어준다.
각각의 Tile은 4방향 Tile이다.
Call Count를 고려하여 하나의 Material로 사용할 수 있게 묶어주고 Tiling은 UV tiling이 아닌 Mesh Tiling으로 처리해준다.

4방향 Tile의 경우 UV 좌표를 이동하여 여러 종류의 벽을 표현할 수 있다.
각기 다른 4장의 Tile Map을 하나의 Texture에 묶은 경우에도 활용도는 동일하다.
제작된 Tile Map을 확인해보면 기본적으로 Tiling이 되고 있고, 상하 프레임을 만들어준 것을 볼 수 있다. Tile Map의 활용도를 높이기 위해 바닥 Tile이나 넓은 곳을 처리하는 Tile map을 제외하고 벽면 Tile Map의 경우 위아래 단을 만들어준다.

4장의 Tile Map을 한 장에 묶은 경우에도 위 이미지처럼 상하 단을 만들어 처리하면 활용도를 높일 수 있다.
원화상에서의 다양한 표현을 모델링에서 100% 구현할 수 있다면 좋겠지만 현실적으로 불가능하기 때문에 전체적인 분위기를 맞추는 선에서 마무리를 한다.
위 이미지에서 볼 수 있듯이 전체 건물의 큰 프레임은 모델링으로 만들어 주고 벽의 나무프레임은 Normal Map으로 표현한다.
4종류의 Tile Map을 2048*2048 한 장에 묶어 벽면에 위 이미지처럼 활용하고 굵은 프레임은 별도의 모델링으로 만들어준다.

아래 이미지처럼 한 장에 묶인 Tile Map으로 UV좌표를 이동하고 Mesh Tiling을 활용하여 다양한 느낌으로 하나의 Material만을 사용해서 표현해 Call Count를 최소화시킨다.

나무프레임의 경우 프레임과 마루타일을 묶어 제작하여 벽면과 동일하게 Mesh Tiling을 사용한다.

Tile Texture 제작 시 Tile의 밀도는 건물 1층 높이를 기준으로 한다.
우리 게임의 건물의 1층 높이는 최소 5M이고 1024*1024 Size를 기준으로 해서 맞춘다.
![]()
2. 모델링(Modeling)의 모듈(Module)화
적은 개발 기간동안, 한정된 리소스를 가지고 다양한 형태의 오브젝트를 꾸며내야 하는 상황이기에, 모든 오브젝트마다 독립되고 고유한 형태를 가지기는 쉽지 않다.
어떤 특수한 목적을 가진 건물을 제외하고 보편적으로 쓰일 수 있는 건물의 경우에는 모듈화화를 통해 다양한 형태의 바리에이션을 구현할 수 있도록 제작해야 한다.
2.1. [ 제작 전 원화 검토 및 제작 계획 수립 ]
중요한 공정으로, 전체 작업시간에도 많은 영향을 미치는 작업들이다.
제작에 앞서 꼼꼼하게 살피고 사전에 계획을 잘 수립하여 반복되는 수정작업을 피하게 하기 위함이다.

-
우선 원화를 받게 되면, 어떤 부분을 TileMap을 사용하고 어떤 부분을 별도의 Texture을 사용할 지를 결정하여야 한다.
-
동시에 어떤 부분을 Module로 분리를 하고 어떤 부분을 통으로 제작할 지를 결정해야하며 최종 작업에서 어떤 형태의 그룹 또는 프리팹파일(PF파일)로 묶을 지에 대한 결정도 어느 정도 내리고 작업을 진행하여야 한다.
위 원화를 분석하게 되면, 파란색으로 표시된 부분이 별도로 제작되어야할 부분이고, 붉은색 부분이 Module로 제작되어야 할 부분이다.
노란색으로 표시된 부분은 건물의 몰딩으로 횡타일로 한 장의 Texture에 몰아주어야 한다.
파란색으로 표시된 부분은 별도의 Texture를 사용해야 하는데, 대칭형의 형태이므로 반맵을 사용하여 제작한다.
붉은색으로 표시된 부분은 Module로 분리되는 부분으로 별도의 Texture와 TilmeMap, 그리고 몰딩으로 제작된다.
아치형 장식이 있는 벽 부분은 1층이 시야에서 가장 가깝기 때문에 1층을 제작하고, 그 결과물을 가지고 2층과 3층의 형태를 제작해야하는데, 2층과 3층의 모델링을 간소화 시켜준다.
정리하자면
-
파란색 부분 : 단독으로 제작할 부분 Texture는 단독 Texture와 TileMap, 또는 몰딩 Texture가 사용될 수 있다.
-
붉은색 부분 : Module로 제작할 부분 Texture는 단독 Texture와 TileMap, 또는 몰딩 Texture가 사용될 수 있다.
-
노란색 부분 : 몰딩 부분으로 제작할 부분 Texture는 몰딩 Texture가 사용될 수 있다.
-
연두색 부분 : TileMap으로 제작할 부분 Texture는 TileMap이 사용될 수 있다.
![]()
3. 제작 단계
모듈화를 하는 이유에는 여러 가지가 있겠지만 확장성의 편리함도 모듈화의 큰 이유로 뽑힌다.
레고처럼 차곡차곡 쌓아 나가면서 다양한 형태의 바리에이션을 만들 수 있다는 점이 큰 장점이다.
특히 도시같은 경우는 정확한 수치나 각도를 잘 맞춰서 제작하는 것이 중요하다.
제작하고자 하는 모든 부분을 하이폴리곤으로 제작한 후, 노말을 적용하면 최상의 효과를 얻을 수 있겠지만 제작할 물량과 인원, 제작시간을 고려하였을 때 사실상 불가능에 가깝다고 판단된다.
제작 단계에서 우선순위를 정하여 하이폴리곤 제작부분을 정하고 타일맵과 로우폴리곤으로 제작할 부분을 정하여 효율적인 작업이 되도록 해야 한다.
게임 플레이에서 시야에 가깝게 들어오는 부분들을 중점적으로 묘사하고 상대적으로 시야에서 먼 곳들은 간소화시켜 제작한다.
하이폴리곤 제작 시에도 비중이 어느 정도인지를 정하고 큰 틀의 덩어리를 잡아나간다. 너무 작은 세세한 효과나 자잘한 질감은 제작하지 않는다.
모듈은 독립적 사용이 가능하도록 만들고, 통으로 제작되는 부분들은 라이트맵 사이즈에 고려하여 덩어리를 나눈다. [모듈화할 때 너무 크면 라이트맵이 너무 자잘해지는 문제가 생길수도 있어, 라이트맵을 사용하게되면 그것을 고려하여 작업해야할 것.]
모듈이든, 통으로 제작되는 부분이든 Material을 최대 3~4개까지만 사용하게 한다.
꼭 필요한 경우만 3~4개를 사용하고 가능한 2개 이하로 활용할 수 있도록 한다.
![]()
4. 참고 자료
![]()