본문 바로가기

끄적거림/공부

(2014) CG ENTRY 배경 패키지 노트정리


 

CG Entry 3d배경 패키지 노트정리


1단원. 오브젝트 제작

 1-1. 오리엔테이션

   - Object(오브젝트), Asset(어셋, 에셋) : 배경이 구성되기 위한 최소한의 단위 / 보여지는 모든 사물

- 오브젝트 제작시 고려할 점
ㆍ지역환경의 특성을 고려(기온, 색감, 식생, 기후환경)

ㆍ자연원리를 고려(, 비는 위에서 아래로 / 일반적인 웨더링은 모서리에서
                ->
중간부분이 웨더링이 들어간 것은 시간이 오래 지났다는 것)
                (
시간의 영향을 많이 받는다.)

ㆍ비율 및 스케일을 고려(대상 사물이 크거나 작은 경우 -> 오브젝트가 여러 개일 때
                             
캐릭터가 크거나 작은 경우 -> 캐릭터의 크기에 따라 오브젝트 크기가 변동)

ㆍ사용용도 및 재질을 고려(지역환경에도 영향을 받는다.)

- 오브젝트 제작툴 : 3dsmax+Zbrush -> Photo shop
ㆍ맥스 : 덩어리 위주

ㆍ지브러시 : 깨진 부분 등 디테일 작업

ㆍ맥스와 지브러시는 모델링 핵심툴

- 오브젝트는 지역, 컨셉, 환경에 따라서 형태나 스케일이 달라진다.

- 인터넷을 적극참고하자.

 

1-2. 만들 배경 설명

- Dummy(더미) : 가모델링

- 더미로 전체적인 느낌을 본다.

- 돌려쓸 수 있는 것은 최대한 돌려쓰고 복사할 수 있는 부분을 잘 파악한다.

- 랜드 마크 : 지역의 주요건물, 특징적인 요소

 

1-3. 더미만들기 part.1

- 더미 작업 : 스케일이나 구조와 같은 것을 알기 위한 사전작업, 매우 중요한 작업 중 하나이다.

- 지역의 중심이 되는 부분부터 만든다.

- 언리얼 엔진은 1unit = 2cm 이다. / Metric cm로 바꿔준다.

- 실제 캐릭터 크기 약 180cm의 박스를 만들어 끊임없이 스케일을 비교해준다.

- 지오메트리는 Perspective 뷰에서 그려주자.(오브젝트 축 방향 때문)

- Inset, Extrude와 같은 기능은 살짝 준 다음 Scale이나 Move툴로 움직여주는 것이 더 편하다.

- 둥근 기둥 같은 경우는 라인으로 실루엣의 절반을 그려주고 Lathe를 주는 것이 편하다.

- Helper Tape를 이용하면 길이를 쉽게 알 수 있다.

- Perspective 뷰에서 스케일을 XY축만 잡아서 줄여주면 높이는 달라지지 않은 채 두께만 줄일 수 있다.

- 전체적인 두께를 조절할 때는 전체 폴리곤을 선택한 다음 Extrude - Local Normal로 해서 -방향으로 줄여주면 된다.

- 연결돼야 하는 메쉬를 원형으로 복사해야 할 경우, 일반 Copy가 아니라 symmetry로 해서 Mirror에서 축을 움직이면서 복사해주면 연결부위를 자동으로 붙여준다. , 이때 연결돼야 하는 부분을 조금 길게 만들어주는 것이 좋다.

- 원형 복사의 경우 각도 스냅을 오른쪽 클릭해서 스냅되는 각도를 지정해줄 수 있다. 이 때, symmetry는 절반의 값이기 때문에 회전각을 반으로 나눠줘야 한다.

- 스냅이 버텍스로 켜져 있을 때는 버텍스를 잡고 버텍스에 스냅을 걸어줄 수 있는데, 이때는 버텍스 모드가   아니라도 가능하다.

- FFD를 이용하면 직선인 곳을 둥그렇게 쉽게 만들어줄 수 있다. 텐션에 따라서 당겨주기 때문에 Soft Selection보다 편하다.

  

1-4. 더미만들기 part.2

- 버텍스 두 개를 선택하고 collapse를 해주면 붙는다.

- 중간 엣지가 하나도 연결돼있지 않아 폴리곤 면이 찌그러진 경우는 중간에 엣지 하나만 연결해주면 된다.

- 폴리곤을 선택한 상태에서 shift를 누르고 엣지 모드로 가면 폴리곤의 외곽을 선택할 수 있다.

- 엣지를 선택한 상태에서 create shape from selection을 선택하면 선택된 엣지가 shape으로 뽑아져 나온다 shape enable in viewport를 해서 몰딩처리(마감처리)를 해주면 편하다.

- editable spline에서 버텍스에 beizer가 있으면 선택해서 corner를 해주면 사라진다.

- i를 누르면 커서쪽으로 viewport를 이동한다.

- symmetry를 이용해서 가운데에 선을 그어주고 축을 로테이션 시켜 면을 접어줄 수도 있다.

 

1-5. 계단 만들기

- 단조로움을 피하기 위해 라인에 굴곡을 주자, 이 때 XYZ축으로 돌리면서 다양하게 주려고 노력하자. 직선흐름을 피하자! (균열, 높이의 차이, 경사 등)

- 더미에서 scale을 잡아주었기 때문에, 본격적인 모델링을 시작할 때 더미에서 필요한 부분을 가져와서 더미 스케일에 맞게 새로 제작해준다.

- 항상 연관된 모든 파일의 unit을 동일하게 하고 작업하는데 유의한다.

- 오브젝트를 여러 개 선택해서 FFD를 쓰면 전체 길이를 쉽게 조정할 수 있다.

- 계단 더미블록은 계단의 블럭과 블록 사이의 틈새를 막는 역할로 사용한다.

- 노멀을 뽑을 때 경사가 90도인 부분은 인식을 못하기 때문에, 경사는 비스듬하게 되도록 한다.

- 타일이 될 부분은 양쪽 끝이 맞도록 해야 한다.

- 지브러시R2 이후로 Dynamesh가 생겨서 맥스에서 미들폴을 만들 때 정사각형으로 만들 필요가 없어졌다.

- 지브러시 Goz를 설치해서 활용하자.(맥스와 지브러시 사이의 빠른 파일이동)

- 지브러시에서 Color - Clear를 눌러주면 맨 나중에 그려준 메쉬만 남기고 2.5d는 삭제된다.(ctrl+n)

- Dynamesh를 맨 처음에 적용할 때는 resolution 값을 낮추는 것이 좋다. 그렇지 않으면 불필요하게 면이 많아진다.

- poly f 단축키는 Shift + F이다.

- 적은 resolution 값을 입력했는데 Dynamesh가 폴리곤을 많이 생성한다면, 메쉬가 너무 크게 그려진 것이다.   이럴 때는 Floor를 눌러서 크기를 확인하고 tool - deformation에서 unify를 클릭하면 메쉬 크기를 재조정해준다.

- Dynamesh를 적용하기 전에 auto group으로 그룹을 나눠주고, 적용할 때 그룹을 체크하고 적용하면 Element끼리 합쳐지지 않는다.

- Dynamesh를 적용할 때 열린 면이 있으면 임의로 메쉬를 닫아버리는데, 이를 방지하려면 맥스에서 메쉬를 닫아서 가져오면 된다.

- Ctrl +Shift 를 눌러주고 클릭하면 선택한 폴리 그룹만 남기고 나머지는 숨겨진다.

- 무브툴을 누르고 Ctrl +클릭을 하면 해당 폴리그룹을 제외한 나머지 전체가 마스크가 씌워진다.

- 무브, 로테이션툴 등을 사용할 때 다른 메쉬 위에서 그리드를 멈추면 그 메쉬 위에 그리드가 그려지기 때문에 빈 캔버스까지 그리는 것이 좋다.

- 무브툴은 중앙의 흰 원을 이용해 움직이고, 로테이션은 처음 클릭하는 지점이 중심축이 되고 반대쪽의 빨간 원을 이용해서 회전시킨다.

- Clay tube, Trim dynamic 브러쉬는 모서리를 깎을 때 좋다. 모서리를 깎으면 h polish로 정리해주자.

- h polish는 표면을 눌러서 각을 잡는 브러쉬다. 엣지를 하드하게 각 잡을 때, 표면을 정리할 때 좋다.

- Planar Flatten은 면의 각에 맞춰서 밀어준다.

- Dam_standard는 갈라진 표현을 할 때 좋다. 사용할 때 Focal Shift값을 높여서 주위영향을 줄이도록 하자.

- 브러쉬 단축키를 지정할 때, Quick pick에 있는 것을 사용하는 것이 좋다. Ctrl + Alt + 클릭하면 메시지가 뜨는데, 이 때 원하는 단축키를 눌러주면 된다.

- 너무 과도하게 뭉개서 형태를 크게 변형시키지 않고 필요한 부분만 하도록 노력하자.

- clay polish는 전체적인 각을 잡아준다. 이 때 sharp값을 이용해서 그 정도를 정할 수 있다.  clay polish를 사용하면 폴리곤 구조가 많이 망가지는데, Dynamesh를 사용해서 다시 정리해주면 된다. 이 때, projection 체크하고, resolution 값을 좀 높여서 적용해줘야 각 잡힌게 유지된다.

- Noise를 적용할 때 Noise strength -0.0001~-0.0007정도가 적당하다.

- Noise curve에서 계단식으로 평평한 구간을 만들어주면 중간중간에 평평한 부분이 생긴다보통 계단이나 돌과 같은 경우는 계단형태로 만들어주면 좋다. Noise Maker로 다 만들어준 다음 apply to mesh를 눌러야 메쉬에 적용이 된다.

 

1-6. 사각기둥 만들기

- 알파맵 만드는 법(포토샵)
ㆍ이미지를 흑백으로 만들어준다.

  ㆍ알파의 노이즈를 줄여주기 위해서 Surface blur를 이용하여 노이즈를 줄여주면 된다.

  ㆍ알파 이미지는 디테일한 것보다 약간 뿌연 것이 덩어리감이 잘 나온다.

  ㆍ볼륨감이 있는 부분, 튀어나와줘야 하는 부분은 overlay 레이어를 하나 올려서 하얀색 브러쉬를 Opacity 30이하로 낮춰준 다음 튀어나와야 하는 곳을 밝게 해준다.

  ㆍ튀어나오지 않고 평평하게 되는 문양이 아닌 부분은 레이어를 하나 더 올려서 검게 칠해준다.

- 알파를 적용할 때 문양이 들어가면 안 되는 부분은 검은색으로 나오도록 UV를 배치해준다.

- 폴리곤 모양, 버텍스 개수가 똑 같은 면의 UV를 펼칠 경우는 이미 펼쳐진 uv face copy하고 똑같이 배치해줄 UV Face를 선택한 다음 paste를 해주면 된다.

- 지브러시에서 알파를 이용해서 문양을 줄 때는 그 면은 반드시 최대한 정사각형 구조를 유지하도록 해야 한다. 그렇지 않으면 지브러시에서 Deformation을 줬을 때 깨지게 된다.(Crease 이용)

- 서브툴을 선택할 때는 Alt를 누르고 클릭하면 된다.

- DeformationInflat을 적용할 때 그리드에 비해서 오브젝트가 너무 크면 inflat이 제대로 적용이 안되므로 그리드에 맞게 줄여줘야 한다.

- Dynamesh를 적용하면 UV Divide 레벨을 삭제해버리기 때문에 알파를 이용해서 문양을 넣을 때는 사용할 수 없다.

- 무브툴로 그리드를 그릴 때 표면을 클릭해주면 그 면의 노멀 방향으로 그리드가 그려진다.

- symmetry가 제대로 적용 안될 때는 local symmetry를 눌러주면 된다. 대단히 중요한 기능이다.

- 원형 문양을 그릴 때는 symmetryradial로 적용해주면 대단히 편하다.

- DeformationRotate는 그리드 중앙을 기준으로 적용된다.

 

1-7. 원형기둥 만들기

- 1자로 펴야 하는 UV unfold mapping 기능을 이용하면 쉽게 펼 수 있다.

- Crease값을 이용할 때는, 맥스에서 crease를 이용해 모양을 잡아준 다음, turbo smooth를 적용해서 충분히 면을 나눠준 상태로 지브러시에 가져가면 된다.

- 지브러시 Sub tool append 할 때, append 할 툴의 서브 툴이 여러 개라면, 보이는 것만 append된다.

- 지브러시에서 마스크를 영역으로 그릴 때 그린상태에서 스페이스 바를 눌러주면 영역을 움직일 수 있다.

- 마스크 영역을 컨트롤 누르고 클릭하면 경계선이 부드러워진다.

- 메쉬에 마스크를 칠하고 서브 툴의 extract를 해주면 메쉬로 뽑아줄 수가 있다.

- brush – auto masking  - back face mask를 켜주면 뒷면이 브러쉬 영향을 받지 않는다.

- brush – create insert mesh를 누르면 현재 선택한 서브 툴의 모양을 insert mesh brush로 만들어준다주의할 점은 반드시 메쉬를 정면에서 바라본 모양으로 해야 한다는 것이다.

- 컨셉이 아니라면 깎는 것이 재미있다고 너무 지나치게 깎지 않는다. 그럼 형태가 많이 없어지기 때문이다.

- 기둥 같은 경우 몰딩이나 단순한 반복적인 문양 등은 지브러시 mask - deformation inflat 기능, symmetry 등을 이용하면 쉽게 만들 수 있다.

 

1-8. 원형구조물 만들기

- 폴리곤을 선택할 때 by angle을 이용해주면 해당각도 이내에 있는 폴리곤은 모두 선택해준다.

- 지브러시로 문양 알파를 넣어줄 때, unwarp 과정에서 휘어진 부분을 휘어진 UV그대로 사용하지 않고 사각형으로 만들어서 맞춰줄 수도 있다. 맵을 여러 조각으로 나눠서라도 최대한 자연스럽게 해주면 된다.

- 지브러시로 넘길 때 삼각 페이스는 최대한 피해준다.

- 알파로 문양을 넣을 부분과 그렇지 않은 부분이 동시에 있다면, 알파가 있는 부분을 정사각형으로 만들어주고, 두 부분의 경계 엣지에 crease 1로 주고 지브러시로 넘어가기 전에 turbo smooth를 충분히 줘서 넘기면 된다. 부드럽게 곡선이 되야 하는 부분이 없다면 그냥 넘겨서 smt를 안 주고 divide를 적용해도 된다.

- 문양이 들어가야 하는 것을 Dynamesh를 적용해야 할 때는 문양을 먼저 넣어주고, Resolution 값을 높게 준 다음에 적용하면 된다.

- 서브툴을 하나 선택한 후 clone 버튼을 누르면 따로 빼낼 수 있다.

- 서브툴 크기를 조절할 때는 deformationsize를 이용한다

1-9. 바닥타일 만들기

- 라인의 흐름에 주의하며 모델링한다. 타일되는 부분의 너무 1자로 떨어지진 않는지, 블럭들의 높이를 다양하게 해주기도 하고, 로테이션을 미묘하게 줘서 좀 더 재미있게 만들어지도록 한다.

- 지브러시 기본 도형들은 make poly mesh 3d로 바꿔주어야 한다. 그 후 폴리 구조를 확인하고 너무 이상하면 Dynamesh로 정리해준다.

- 타일 사이의 작은 돌 같은 경우는 작은 돌 하나를 지브러시에서 바로 만들어서 insert mesh로 플랜에 박아준다.  insert mesh는 활용빈도가 매우 높은 기능이므로 익숙해지자.

 

1-10. 철망 만들기

- 철망의 문양 같은 경우는 Line – Enable in viewport를 이용하면 쉽게 만들 수 있다.

- Line을 정리할 때는 버텍스 선택 - 오른쪽 클릭 - corner, smooth를 이용해서 정리해주고, 대칭되는 부분은 symmetry를 적극 활용한다.

- 여러 개를 attach할 때는 attach할 것을 제외하고 attach 리스트를 보면 hide 되지 않은 것만 보여 쉽게 합칠 수 있다.

- 지브러시 서브 툴에서 붓 표시를 다 켜주면 모두 밝게 볼 수 있다.

- 작업을 할 때 잘 보이는지 안 보이는지를 고려해서 작업량을 할당하는 것도 중요하다.

 

1-11. 광장틀 만들기

- snap을 길게 누르면 2.5D snap이 켜지는데, 이 것을 이용하면 shape을 이용하여 다른 메쉬에 cut을 해줄 수 있다.

- 반복되는 부분은 너무 디테일하게 스컬프팅하지 않도록 하자.

  

1-12~14. 광장 분수대 만들기

- 원형으로 패턴이 반복되는 부분은 패턴의 최소 단위만 만들어서 복사해준다.

- 뚫린 면을 cap으로 먼저 막아주고 버텍스를 이어주면 버텍스에 맞춰서 막힌 면이 재조정된다.

- Extrude로 집어 넣어줬는데 양쪽에 면이 생기면 extrude 하려는 면의 엣지를 한번 더 chamfer해준다.
또는 한 면에 너무 버텍스가 많으면 깨지므로 어떤 버텍스든 다른 데에 연결해서 선을 이어주면 면이 깨지는 것이 해결된다.

- j키를 누르면 기즈모를 볼 수 있다.

- 지브러시로 넘겨서 하이폴리곤 작업을 할 때는 굳이 chamfer 3각을 만들지 말고 crease를 이용하여 미리 나눠 준 다음 지브러시로 넘겨도 된다.

- crease를 주는 많은 경우는 각이 져야 할 부분과 라운드 져야 할 부분이 동시에 있는 경우에 많이 쓴다.

-지브러시에서 축에 맞춰서 로테이션해줄 때는 Tool - Deformation - Rotate를 이용하면 된다.

- 지브러시에서 회전하며 배치를 쉽게 하려면 맥스에서 넘어올 때부터 축이 0,0으로 가있어야 한다.

- 사이즈를 균등하게 줄일 때는 스케일툴을 쓰지말고 Deformation을 쓰자

 

1-15. 풀 만들기

- 풀은 텍스쳐를 먼저 만든다.

- 폴리곤에 여유를 두는 조합형과 리소스를 최소화하는 plane형이 있다.

- 캔버스 밖으로 사진이 넘어가게 되면 오프셋을 줄 때 영향을 미치기 때문에 crop으로 잘라주자.

- 풀들을 딸 때는 마법봉으로 하면 테두리가 지저분하므로 펜툴을 사용하는 것이 좋다.

- 바닥 풀은 일부분을 딴 다음에 복사, 변형해서 재조합한다. 잎이 겹쳐진 부분은 밝기를 조절해서 깊이를 느낄 수 있게 해준다.

- nDo를 쓸 때는 덩어리와 디테일 2가지를 뽑아서 overlay 시켜서 합쳐준다.

- 꽃 부분과 줄기를 연결할 때는 버텍스 스냅을 이용하면 쉽다.

- 재탕할 수 있는 건 최대한 재탕해주자. 꽃의 풀잎을 따로 빼내서 원형으로 복사해주면 바닥의 납작한 풀이 되는 것처럼.

  

1-16. 담쟁이 만들기

- 알파로 빠지는 부분의 테두리 색을 바탕에 칠해줄 때는 풀을 복사해서 Gaussian blur를 준 다음에 여러 번 복사해서 아래에 깔리게 해준다. 그 후 맨 아래를 비슷한 색상으로 칠해준다.

- 줄기를 만들 때는 기본 박스를 먼저 만들어 준 다음 맵을 먼저 펼쳐주고 형태를 변형하는 것이 좋다.

- path deform으로 배치해줄 것은 처음에는 엣지를 매우 많이 넣어준다.

- cut 단축키는 Alt + C, Remove 는 백스페이스

- shape line에 버텍스를 추가할 때는 refine을 이용해주면 좋다.

- 스케일을 적용하면 실제로 값이 변형되는 것이 아니기 때문에 path defrom을 적용하면 문제가 생긴다그렇기 때문에 반드시 reset xform을 적용해준다.

 

1-17. 스피드 트리 나무 만들기 part.1

- 스피드 트리 경로 : UDK - Binary – speed tree modeler

- file - new를 눌러 새로운 작업을 시작한다.

- 왼쪽는 노드들의 속성값을 나타내고, 중앙은 뷰포트, 오른쪽 상단은 머테리얼 및 메쉬 추가, 우측하단은 노드를 추가하는 곳, 중앙하단의 커브는 형태를 변형하는 곳이다.

- 휠 버튼을 누른 상태로 돌리면 이동, 클릭 후 움직이면 로테이션이다.

- 스피드 트리의 확장자는 spm이다

- Trunk는 기본 기둥을 이야기하고 level은 굵은 가지, fronde는 잔가지를 의미한다. Trunk와 기본 Level은 동일한 Branch 노드이다.

- 단축키 123을 이용하여 전체보기, 잎 제거, 잔가지를 제거한다. w를 누르면 와이어 모드를 켜고 끈다.

- 뷰포트 상단 좌측의 아이콘으로 뷰포트 모드를 바꿀 수 있다.

- GenerationTree 아이콘을 오른쪽 클릭하고 Trunk를 생성한다. Spine은 길이 변경, Branch에서는 두께를 변경한다.  Branch flares로 밑동을 조절할 수 있다.

- 좌측 shelf를 옆으로 늘리면 각 속성별 curve가 나타난다. 이를 클릭하면 조절할 수 있다. 커브는 좌측이 아래쪽, 우측이 꼭대기이다.

- 머테리얼은 5개정도, 가지, 잔가지, 나뭇잎(2), 마감()으로 등록하곤 한다.

- 노드를 누르고 object properties에서 material +를 누르면 material이 하나 생성된다. 그 곳을 누르면 material을 넣을 수 있다. 텍스쳐 크기를 조절할 때는 바로 위의 texture coordinatetile로 조절할 수 있다.

- branch의 시작 높이, 밀도, 크기는 object propertiesgeneration에서 바꿀 수 있다. spine에서는 길이를 조절할 수도 있다. 이 안의 disturbance로 굴곡을 줄 수 있다.

 - 뷰포트 위의 아이콘 중 allow node editing 버튼을 누르면 가지를 하나하나 편집할 수 있다. 단축키는 Tab이다.

- 잔가지를 줄일 때는 stepnumber값을 줄여도 좋다.

- 잔가지 메쉬를 제거할 때는 object propertiesgeometry type에서 branch를 끄면 된다.

- 잔가지를 가지에 붙일 때는 object propertiesfronde에서 start 값을 0으로 해준다. 폴리곤의 개수를 줄일 때는 Segmentfronde shape의 수치를 낮춘다.

- 나뭇잎은 leavestype에서 material을 넣어줄 수 있다. 여기에 2개의 material을 등록해서 사용한다. 크기는 generation, leaves 두 곳에서 할 수 있다.

- 나뭇잎을 빌보드가 아니라 십자로 하고 싶으면 asset에서 mesh로 들어가 메쉬를 추가해준 다음 십자형태의 메쉬를 등록하고 material을 등록한 곳에서 등록해준다.

 

1-18. 스피드 트리 나무 만들기 part.2

- save as with asset을 이용해서 asset과 함께 저장하자. 폴더이름은 영문으로 지정하는 것이 좋다

- 핸드드로잉은 스페이스바를 누르고 마우스를 드래그하면 된다.

- 핸드드로잉으로 그린 것은 allow node editing을 활성화하면 beizer 곡선을 이용해서 형태를 조절해 줄 수 있다.

- 잔가지나 추가적인 가지는 기존의 가지 위에서 그려주면 생성된다.

- 노드에 있는 체크버튼을 꺼주면 새로 그렸을 때 기존 노드가 아닌 새로운 노드로 그려줄 수 있다. 이것을 이용해서 뿌리를 그려주자.

- 노드의 레벨(단계)을 이동할 때는 노드를 클릭하고 키보드 방향키를 이용하면 된다.

- 하위레벨이 구성된 상태에서 상위 레벨 노드에서 새로 가지를 추가해주면 하위레벨 노드가 자동으로 추가된다. 그래서 추후 추가, 수정이 편하다.

- 노드 오른쪽 클릭 - Branch – nut holes를 이용하면 잘려나간 가지를 표현할 수 있다.

- Branch를 최적화해줄 때는 속성 중 Segment를 이용한다. styleabsolute를 해줘야 내가 원하는 대로 조절이 가능하다. length값은 세로 길이의 폴리곤 수, radial은 원형 폴리곤을 줄여준다. cap값은 끝의 폴리곤을 줄여주며, weld값은 접합부의 폴리곤을 줄여준다.

- 뷰포트에서 오른쪽 클릭 – add force를 이용하면 형태를 변형할 수 있다.  force를 추가한 다음 영향을 받게 하고 싶은 노드를 클릭하고 속성에서 force를 추가해주면 된다. attenuation 값은 보통 linear를 많이 쓴다.  force를 조절할 때는 z, x, c 단축키로 방향과 회전을 조절해주면 된다.

 

1-19. 스피드 트리 나무 만들기 part.3

- Collision을 자동으로 만들 때는 tool – generate collision primitive를 이용하면 된다. 이 때 encompass primitive는 포함하는 영역을 조절해준다. Branch capsule은 가지에 몇 개의 capsule collision을 넣을 것인지, leave sphere는 나뭇잎 영역에 몇 개의 sphere collision을 넣을 것인지 정한다.

- 수동으로 collision을 생성할 때는 뷰포트를 오른쪽 클릭하고 add collision을 이용하면 된다. 수동으로 collision의 크기를 수정할 때는 object properties에서 수정한다.

- compile은 스피드 트리 폴더의 speed tree compiler를 이용한다. 실행한 뒤 이전에 저장한 나무를 불러온다.

- Create texture atlas는 텍스쳐를 하나로 묶는 것이고, billboard atlas는 원거리로 멀어질 시 plane으로 처리할 데이터를 생성할 것이냐를 묻는 것이다. merge billboard into texture atlas는 텍스쳐와 빌보드를 하나로 만들 것이냐를 묻는 것이다. create overhead billboard는 위에서 아래로 내려다 봤을 때의 빌보드를 사용할 것이냐를 묻는 것이다.

- 텍스쳐 사이즈를 줄일 때는 Texture properties에서 줄인다. 빌보드 같은 경우는 좌측 쉘프에서 줄일 수도 있다.

- 텍스쳐와 빌보드 텍스쳐는 일반적으로 별도로 쓰는 것이 원칙이다.

- 빌보드 갯수를 변경해줄 때는 Tree windowBillboard에서 count를 변경해준다.

- 타일로 되어 있는 텍스쳐는 아틀라스로 제작되지 않는다.

 

1-20. 지브러시에서 배치될 돌 만들기

- 먼저 기본박스를 생성한다.

- make poly mesh 3d를 해준다.

- geometryshadow box res값을 적절히 줘서 적용해준다.

- 마스크를 다 지워주면 중앙 오브젝트가 사라진다. 그 후 3면에 마스크를 그려서 형태를 만들 수 있다.

- 오브젝트가 화면을 가리면 transp를 활성화해서 가려주자.

- 마스크 그려주기가 끝나고 shadow box를 비활성화하면 오브젝트로 생성된다.

- 바위는 덩어리감이 가장 중요하다. 디테일에만 신경쓰지 말고 큼직한 덩어리를 챙기자

- clay tube로 잔층을 내준 다음에 정리할 때는 h polish clay polish를 이용한다.

- trim dynamicalt키 누르고 칠하면 홈을 채우기 쉽다.

- 덩어리!덩어리!덩어리!덩어리!덩어리!덩어리!덩어리!덩어리!덩어리!

 


1-서브 단원. 로우폴리곤 제작

1-로폴-1. 로우폴리곤을 만드는 이유

- 로우폴을 먼저 만들던지 하이폴을 먼저 만들던지 상관은 없다.

- 로우폴이 게임에 들어가는 데이터이다.

- 이 유
 
ㆍ게임 내 퍼포먼스 향상에 의미가 있다. 핵심적인 이유이다. 많은 폴리곤은 부하가 많이 간다.

  ㆍ최적화가 잘된 게임은 많은 사람이 무리 없이 즐길 수 있는 환경을 만든다. 렉현상이 줄어들고 동시접속자와 연관되어 매우 중요하다.

  ㆍ설령 퀄리티가 훼손된다 하더라도 텍스쳐도 영향이 있지만 메모리 및 CPU부하를 가하므로 낮게 제작해야 한다.

  (개인적) 개인작업은 위의 사항을 지키지 않아도 되나 실무에서는 반드시 숙지해야 한다.

오브젝트와 캐릭터의 크기 비율에 따라서 로우폴리곤의 트리 갯수가 달라진다. 오브젝트 크기가 크면 구석구석보고 크기가 작으면 실루엣 위주로 본다는 것을 감안하자.

 

1-로폴-2. 계단 로폴 제작 – Topology

- 리깅할 때는 리깅하려는 툴 안에서도 선택된 서브툴만 등록이 된다.

- 서브툴 선택 - ZSphere 선택 - Rigging에서 토폴로지하려는 오브젝트 선택 - TopologyEdit Topology

- Ctrl 누르고 클릭은 기존 점에서 이어서 하기, Alt는 점 삭제하기이다. Move를 이용, 점을 움직일 수도 있다.

- 토폴로지할 때는 크게 크게 먼저 진행하고 세부적으로 들어가는 것이 좋다.

- 토폴로지 도중에 빈 캔버스를 클릭하면 새로운 점에서 시작할 수 있다.

- 최소 4각에서 5각 정도로 해주자.

- 라인 중간에 버텍스를 추가해서 만들어준 경우는 버텍스가 공중에 떠있는데, 이 때 Move로 살짝 움직여주면 면에 붙여줄 수 있다.

- 작업이 다 끝나면 Adaptive SkinMake poly mesh 3D를 눌러서 메쉬로 만들어주어야 한다.

 

1-로폴-3. 돌 로폴 제작 – Decimation Master

- 여러 개의 오브젝트가 겹쳐져있을 경우는 서브툴을 모두 합치고 Dynamesh로 하나로 만들어준 다음 Decimation Master를 적용해준다.

- Decimation Msater는 자연물, 특히 돌에 아주 좋다.

- 적용할 때는 preprocess current -> 폴리 개수 지정 -> Decimate current 순이다.

- Decimation Master를 적용했는데 면이 제대로 분할되지 않거나 깨지거나 한 곳에 너무 몰려있다면 Dynamesh를 먼저 적용해서 정리를 해준 뒤 다시 적용한다.

 

1-로폴-4. 바닥타일 로폴 제작

- Decimation Master를 사용할지 Topology를 사용할지 잘 판단하자.

- 아래가 뚫려있는 경우는 반대쪽의 불필요한 디테일 때문에 상단의 디테일이 죽게 되므로 아래를 박스로 가려서 Dynamesh로 합쳐서 불필요한 부분을 가려준 후 Decimation Master를 진행한다.

- Decimation Master를 이용하면 군데군데 깨진 곳이 있을 수 있으므로 정리를 해준다.

  

1-로폴-5. 베이스를 기반으로 한 로폴 제작

- 실루엣의 자잘한 디테일은 처음부터 다 로폴로 잡아주면 나중에 uv펼 때 번거로우므로 큰 틀을 먼저 만들어준 다음 맨 마지막에 맵을 다 적용하고 해주어도 된다.(깨진 부분과 같은 곳)

- 건축물 같은 경우는 직선 구조가 많아서 Topology하는 것보다 미들폴을 이용해서 만드는 것이 좋다.

- 모서리의 데미지를 살리고 싶다면 지브러시에서 Decimation master를 이용해서 가져오자. 그러나 면이 많이 깨지므로 정리를 해야 한다.

- 서브툴의 split to parts를 이용하면 덩어리별로 계산해서 서브툴을 갈라준다.

 

2단원. 텍스쳐

2-1. 텍스쳐의 종류

- 텍스쳐는 리소스의 퀄리티를 좌우한다.

- 어느 하나를 잘 만들었다고 되는 것이 아니라 모든 텍스쳐가 서로 받쳐주어야 좋은 퀄리티가 나온다.

 

2-2. Diffuse

- 오브젝트의 기본 색상이 들어가는 텍스쳐이다.

- 원래 디퓨즈맵은 그림자나 질감의 정보가 들어가지 않는다. 그러나 게임 데이터에 있어서, 게임엔진에서는
색상만 있어서는 대단히 밋밋하게 나오기 때문에 어느 정도 정보를 포함한다.

- 주의사항 :
ㆍ그림자의 방향성이 뚜렷하지 않도록 할 것(캐주얼 게임에서는 해당 안 됨)(노멀 프로젝트의 경우)

    ㆍ심한 질감표현은 하지 않도록 할 것(노멀 프로젝트의 경우)

    ㆍ너무 심한 contrast는 피하도록 할 것

- 그림자가 짙게 들어간 상태에서 노멀까지 들어가면 대단히 지저분하게 보인다. 또한 디퓨즈의 그림자로 인해서 라이팅의 영향을 별로 받지 못한다.

- cavity, AO맵을 이용해서 베이스 음영을 만들어 사용한다.

  

2-3. Specular

- 물체가 빛을 받을 때 반사되어 광택이 나는 표현을 할 수 있는 맵

- 음영의 밝기에 따라 빛을 반사하는 강도 및 색상를 표현

- 일반적으로 디퓨즈맵이 적용된 상태에서 스펙큘러 맵을 추가로 적용하는 것이 일반적

- 메탈같은 경우는 스펙큘러를 잘 만들어야 한다. 대단히 중요하게 작용한다.

- 스펙큘러 색상은 주변의 환경에 맞춰서 색을 넣어주는 것이 좋다.

- 반사의 양이 어느 정도인지 고려해서 만든다.

 

2-4. Emissive

- Self illumination map이라고도 하며, 일반적으로 자체발광 오브젝트에 효과적이다.(가로등, 괴물의 알에서 빛이 나는 표현)

- 전구, 가로등과 같은 경우는 이미시브 맵을 약간 하얗게 만들고 강도를 아주 강하게 주면 좋다.

- 어두운 배경일수록 효과가 좋다.

- 캐릭터, 배경 등 다방면에 많이 쓰이며, 분위기를 조성하는데 매우 좋으므로 대단히 중요한 맵이다.

- 검은색으로 돼있는 부분은 빛나지 않겠다는 것이다.

 

2-5. Normal

- 로우폴리곤에 하이폴리곤의 디테일을 표현해주는 맵

- RGB채널이 라이팅의 방향의 특성을 구별한다.

- 노멀맵이 푸르딩딩한 것은 B채널이 전반적으로 하얗기 때문이다.

- R채널은 수평, G채널은 수직, B채널은 깊이를 표현한다.

- R채널은 오른쪽, G채널은 아래쪽이 밝은 것이 정상이다.

- 각 채널을 깊이를 주고 싶은 곳을 검게 칠해주면 그만큼 깊이가 표현된다. 이를 이용해 수작업으로   수정해줄 수 있다.

 

2-6. Cube Reflection

- 실제 환경의 방향을 6면체로 저장한 텍스쳐이다. 환경의 이미지를 담을 수 있어 반사맵으로 사용할 수 있다.

- 반사는 노멀맵과 스펙큘러맵의 영향을 받는다.

- 추출하면 육면체의 전개도로 추출이 된다.

  x

y z -y -z

 -x

- 큐브맵과는 별도로 큐브맵이 적용될 마스크맵 역시 제작을 해야 한다.

- 금괴, 메탈, 특히 창문에 아주 좋다.

 

2-7. 텍스쳐의 종류 및 용도, 추출 준비하기

- AO는 큰 명암, Cavity는 디테일 명암을 표현한다.

- Vertex Color라는 것은 지브러시의 머테리얼을 이용해서 만든다. 메탈 재질에 주로 사용한다. 노멀맵을 이용해서 뽑을 수도 있다.

- 하이폴리곤으로 노멀맵을 뽑으면 퀄리티가 좋지만 시간이 오래 걸린다.

- 텍스쳐를 노멀맵으로 변환하면 질감표현이 잘 되지만, 덩어리감이 떨어진다.

- 위의 두 가지를 섞으면 덩어리와 질감 모두를 얻을 수 있다.

- 지브러시 하이폴을 맥스로 가져올 때는 Decimation master로 적당히 줄여서 가져온다.

- 맥스상에서 RTT로 맵을 추출할 때는 로폴과 하이폴의 위치가 정확히 맞아야 하며, 로폴의 실루엣은 최대한 하이폴에 맞춰야 한다.

- UV를 펼 때 Pelt를 이용하자. 상당히 편한 기능이다.

- 캐릭터가 보는 거리나 관찰하는 정도에 따라서 UV해상도를 배분해주자.

- UV가 살짝 밀리는 정도는 괜찮으니 최대한 UV가 꽉 차게 배치되도록 하자.

  

2-8. 노멀 추출하기

- 노멀을 부분적으로 추출하면 폴리곤을 분산할 수 있다. 한꺼번에 추출하면 분산이 어려워 부하가 높아져 잘못하면 다운될 수도 있다.

- 로우폴을 선택하고 Projection을 추가한 뒤 하이폴리곤을 추가한다.

- RTT 옵션

  ㆍProjection MappingEnable을 반드시 체크하고, pick을 눌러 하이폴리곤을 선택한다. 그러면 보라색 선의 cage가 생긴다. cage는 로우폴의 버텍스를 기점으로 생성되며, 반드시 이 cage가 하이폴을 완전히 덮어야 한다. cagereset한 다음 amount값을 늘려 하이폴리곤을 덮게 해준다.

  Mapping coordinate의 오브젝트는 반드시 use existing channel, 1채널을 선택한다.

  output에서 추출할 맵을 지정한다. 이곳에서 저장경로, 파일명, 사이즈를 정한다.

- 노멀 추출시에는 RendererMental lay로 하는 것은 좋지 않다. 렌더링 시간도 오래 걸리며 퀄리티 차이는 별로 없고, anti-aliasing이 들어가지 않아 지저분해진다

- 로우폴의 Smooting Group은 반드시 하나로 묶어줘야 한다. 그렇지 않으면 추출했을 때 로폴의 각대로 노멀맵이 각지게 된다. , 90도로 각지는 곳의 경우는 Smoothing group을 다르게 지정해주는 것이 좋다그렇지 않으면 각지는 부분이 울게 된다.

- Render setup -> common -> assign renderer -> productionscanline renderer로 변경해준다. 그 후 RTT projection mappingoption, global supersamplerer option에서 enable global supersampler를 체크해준다.

- cage가 원래의 버텍스 방향으로 빔을 쏘기 때문에, 빔이 단이나 턱 부분에 걸린다면 깊이감이 제대로 표시가 안될 수도 있다. 그렇기 때문에 cage의 빔 방향이 턱 부분을 제대로 쏠 수 있게 세팅해주는 것이 대단히 중요하다.

- padding이란, 추출한 맵을 uv 영역보다 외곽으로 약간 확장시켜주는 것이다.

- 여러 개를 한번에 추출할 때는 여러 개를 선택한 뒤 RTT를 시켜주면 된다.

- 추출할 때 tga 32비트로 저장해주면 알파채널이 형성되기 때문에 합성해주기 편하다. 합성할 때 하나로 다 몰아준 다음에, 여백을 지울 때는 몰아준 것들의 알파채널을 복사한 다음에 quick mask mode(컬러 팔레트 아래)를 활성화하고 알파채널 복사한 것을 붙여넣기를 해주면 된다

- 한꺼번에 맵 하나로 추출하려면 로우폴끼리, 하이폴끼리 attach를 해주는데, 각각의 parts는 겹쳐지지 않게 떨어뜨려서 배치한 후 추출해주면 된다. 겹쳐져있으면 다른 parts의 하이폴이 들어와서 추출되기 때문에 안 된다.

 

2-9. AO추출하기

- AO를 뽑을 때는 겹쳐진 부분이 없게 필요한 부분을 제외하고는 하이드시키고 추출한다.

- AO는 렌더러를 멘탈레이 렌더러로 해야만 추출할 수 있다.

- 샘플값은 품질을 의미한다. 200~300정도가 적당하다.

  스프레드값은 농도를 의미한다. 2.5~3.5 정도가 적당하다.

- 케이지는 잘 되있는데 그래도 빨간 에러가 생긴다면 로우폴의 버텍스를 움직이며 조절해보자.

- 기본 재질로 노멀을 확인할때는 하드웨어를 사용하고, 적용 수치값을 100으로 준다.

 

2-10. Xnormal 이용하기

- X노멀의 장점 : 폴리곤 갯수에 상관없이 맵을 추출할 수 있다. / 파일이 여러 개라도 1개로 합쳐서 뽑을 수 있다. / 다양한 텍스쳐를 추출할 수 있다.

- x노멀을 사용하더라도 cage를 설정해줘야 하기 때문에 하이폴을 decimation master로 충분히 줄여서   맥스로 가져온 다음 cage를 잡아준다.

- 지브러시에서 저장한 원본 하이폴, cage를 잡아준 로우폴을 각각 x노말로 불러온다.

- 로우폴을 export할 때는 editable poly가 아닌, editable mesh로 해야 한다. 그래야 sbm으로 저장해줄 수 있다.

- 로우폴을 불러온 다음 목록에서 use cage를 체크해주어야 설정해준 cage를 사용할 수 있다.

- anti-aliasing 2배속, 또는 4배속으로 설정해줘야 추출된 맵의 계단현상이 많이 줄어든다.

- x노말은 RTT에 비해서 깊이감이 잘 안 살기 때문에 R,G 채널을 contrast를 많이 줘서 깊이감이 살아나도록 해준다.

- AO biasspread angle이 중요하다. spread 180, bias 0.00008이 적당하다. spread는 올려줄수록 더 넓은 영역을 포함하게 되므로 높을수록 음영이 넓게 나온다

- AO의 경우는 맥스 RTT가 확실히 더 퀄리티가 잘 나오므로 왠만하면 맥스로 뽑도록 하고, x노말로 뽑았는데 깊이감이 부족하다 싶으면 bright/contrast로 조절해주자.

- cavity는 직접 추출하기보다는 노멀로 추출하는 것이 더 잘나온다.

 

 

3단원. 텍스쳐 제작

3-1. 베이스 음영 제작하기

- x노말을 설치했는데도 플러그인이 포토샵에 설치되지 않으면 x노말 폴더의 photoshop plug in으로 가서 내용물을 복사한 다음에 포토샵이 설치된 폴더의 plug in 폴더에 붙여넣기 해준다.

- cavity를 추출할 때는 G채널이 위쪽이 밝도록 조정해서 추출해주어야 한다.

- cavity 맵을 밝기를 낮춰서 디테일이 더 표현되도록 해준 다음 multiply 속성으로 AO맵과 섞어준다.

- 부족한 깊이는 라이팅의 방향을 고려해서 노멀맵을 수정해준다. G채널이나 R채널에 가서 칠해주거나
노멀맵에서 스포이드를 이용하여 바로 칠해줄 수도 있다. 그 외에 단이나 균열도 추가할 수 있다.

- cavity맵은 anti-aliasing이 없어 계단현상이 생기므로 blur를 한 번 정도 주자.

 

3-2. 원형기둥 텍스쳐 제작

- cavity AO맵은 베이스 질감보다 위에 있어야 한다.

- 질감은 contrast가 없이 밝고 맨들맨들하게 플랫한 이미지를 사용하는 것이 좋다.

- 기본 텍스쳐를 적절한 크기로 배치한 다음에는 지나치게 contrast가 심하거나 균열 등이 심한 부분,
재질감이 지나친 부분은 stamp툴로 제거해준다.

- 단일 텍스쳐로하면 너무 심심하므로 여러 개의 텍스쳐를 섞어준다.

- Blending 모드에서 this layer의 검은 부분을 오른쪽으로 움직이면 그 레이어의 검은 부분이 빠지게 되고,
하얀색을 왼쪽으로 움직이면 밝은 부분이 빠지게 된다. undering layer의 경우는 undering layer를 기준으로 판단하여 Blending시키게 된다. 현재 레이어를 블랜딩시키겠다는 것이다.

- 화살표를 Alt키를 누르고 드래그해서 분할해주면 얼마나 부드럽게 블랜딩 될 것인지를 조절해줄 수 있다.

- 이끼를 배치할 때는 AO맵 위에서 이끼를 AO의 밝은 부분이 없어지도록 블랜딩해주면 자연스럽게 구석진 부분에 이끼가 들어간다. 이 때 이끼가 너무 과하게 들어가면 AO의 밝기나 contrast를 조절해주자. AO의 레이어 속성을 바꿔주면 기존의 속성이 달라지는데, 이에 맞춰서 블랜딩 모드도 재조정을 해주어야 하며, AO의 밝기나 contrast를 조절해서 달라지는 점은 추가로 AO레이어를 복사하는 등 적절히 수정해주자.    그러나 이 방법은 밝은 면에는 이끼가 생성되지 않는다는 단점이 있다.

- 위의 사항을 보완하기 위한 또 한가지 방법은 AO를 이끼 텍스쳐에 마스크로 추가해주고, 반전을 시켜주면 적당히 면에도 이끼가 들어가게 된다. 또한 마스크가 있기 때문에 AO를 건드려주지 않고 추가적인 수정을 해줄 수 있다. (부분적 밝기 조정, 브러시를 이용한 수정)

- 이끼를 배치할 때는 오브젝트의 위쪽보다 아래쪽에, 면보다는 구석에 생긴다는 자연현상을 고려하자.

- 텍스쳐 스케일을 맞춘다고 텍스쳐를 너무 작게 축소시켜서 텍스쳐가 깨지게 하는 것 보다는 실제로는 텍스쳐가 대단히 크더라도 텍스쳐가 큰 것이 티가 나지 않는다면 크게 쓰는 것도 좋다.

- 레이어 속성인 darken을 이용하면 어두운 부분만을 남길 수 있는데, 이를 이용하여 어두운 재질 느낌의 텍스쳐를 추가로 블랜딩 해줄 수 있다.

- uv가 휘어져있는 곳은 puppet warp 또는 warp를 이용해서 맞춰준다.

- 스펙큘러 맵을 만들 때 완성된 디퓨즈맵을 2개 복사한 다음, 하나를 채도를 날려서 overlay 시켜주면  채도가 적당히 낮으면서 contrast가 강한 텍스쳐를 얻을 수 있다. 2개를 합치도록 하자

- 돌 재질의 경우는 전반적으로 스펙큘러를 어둡게 하고 군데군데 밝게 해준다. 레이어를 하나 더 올려서
overlay
로 바꿔준 다음 하얗거나 검은 색으로 칠해주면서 수정한다.

- 메탈 부분은 불필요한 웨더링(이를테면 이끼)를 제거해준 다음, 처음에는 밝기를 어둡게, contrast를 강하게 해준 다음, 두 번째에 밝기를 밝게, contrast를 강하게 해주면 채도가 높은 강한 메탈 스펙큘러를 얻을 수 있다. , 이 때 구석 부분이 너무 그림자가 생겼다면, image – adjustment - shadow/highlight에서 shadow amount를 높여서 그림자를 줄여주자. 그 후 overlay 레이어를 하나 올려서 아직도 어두운 곳이나 튀어나온 곳이나 하얀 부분은 좀 더 강하게 빛나도록 수정해주자.

- 메탈의 모서리를 밝게 해줄 때는 cavity EMB맵이 아주 좋다. 이 때, 노멀맵 G채널은 아래가 밝게 해주고, R채널은 왼쪽이 밝게 뒤집어주어야 제대로 된 EMB를 얻을 수 있다. EMB 맵을 밝기는 어둡게, contrast를 강하게 여러 번 적용해줘서 엣지를 강하게 표현해주고, 레이어 블랜딩으로 밝은 부분만 남도록 해준 다음, color balance로 메탈 스펙큘러와 비슷한 색으로 맞춰주고, blurGaussian blur 살짝 준 다음 screen으로 합성해주면 메탈의 엣지 부분만 강하게 표현해줄 수 있다. 돌 같은 경우는 너무 강하지 않게 밝기를 낮춰주고 메탈 느낌이 나지 않게 채도를 날려주자.

 

3-3. 절벽 돌 텍스쳐 제작

- 돌 텍스쳐를 제작하기 전에 습기가 많은 돌인지 적은 돌인지를 고려해야 한다. 그에 따라 스펙큘러가 달라진다.

- 포토샵 cs6 이상을 쓰고 있다면, quick selection 툴을 이용해서 seem을 모두 선택해주고, shift + f5fill-contents aware를 이용해주면 seem을 알아서 맞춰준다.

- 기본적인 베이스 맵은 contrast가 심하지 않은 것이 좋다.

- 라임아츠의 방식은 AO EDT를 멀티플라이로 사용하는 것이 포인트이다.

- AO의 밝기를 감안해서 이끼 밝기를 조절해주어야 한다.

- contrast가 심한 것은 블랜딩해줄 때 어두운 부분을 최대한 부드럽게 넣어주면 좋다

- 컬러를 추가할 때에도 blending if를 이용해주면 자연스럽게 넣어줄 수 있다.

- AO를 이용해서 이끼를 넣었다면, AO를 마스크로 이용해서 스펙큘러에 넣을 이끼 영역을 조절해준다. 블랜딩 영역과 마스킹 영역이 다르다면, 마스크로 쓴 AO를 밝기 및 대비 조정을 해주자.

 

3-4. UDK에 텍스쳐 적용하기

- 엔진에 넘기기 전에 크기를 맞춘다.

- 메쉬를 넘길 때는 fbx ase 익스포터를 사용한다. ase 익스포터 사용시, 좌측 하단의 메쉬 옵션을 모두 켜줘야 한다.

- 맵은 tga 확장자를 사용한다. 이 때 알파 정보가 없다면 24비트로 저장해야 한다. 알파정보가 없는데 32비트로 저장하면 알파를 포함해 불필요하게 용량이 커지게 된다.

- udk에서 노멀맵을 불러올 때는 compression setting TC_normal로 해주어야 한다.

- 컨텐츠 브라우저에서 메쉬를 클릭하면 LOD info에 머테리얼을 넣는 곳이 있는데, 여기에 머테리얼을  넣는다. 머테리얼을 선택하고 녹색 화살표를 눌러주면 된다.

- 머테리얼에서 맵을 불러올 떄는 텍스쳐 샘플로 불러오면 된다. 텍스쳐 좌측의 검은색은 RGB채널 전체를, 각 색은 RGB채널을, 하얀색은 알파채널을 의미한다.

- 머테리얼 창에서 미리보기창의 라이팅 방향을 바꾸려면 L키를 누르고 마우스를 드래그하면 된다.

- 노드에 수학공식(math)를 넣을 때는 말 그대로 수학을 생각하자. 텍스쳐의 밝기는 어두운 곳은 0, 밝은 곳은 1로 생각하면 된다.

- 상수값은 constant를 추가해주면 된다. 단일 수치로 전체 채널을 조절할 때는 constant, 여러 개의 수치를 조절할 때는 원하는 수치의 개수만큼 vector수에 맞춰 골라주면 된다. (RGB채널 각각을 조절할 때는 3vector를 이용하면 된다. 가능하면 B채널은 건드리지 않는다.)

- 수치를 변환해서 multiply 노드의 변화를 확인하려면 스페이스 바를 누른다.

- 머테리얼 변화를 메쉬에 적용하려면 머테리얼창 좌측 상단의 체크표시를 해주어야 한다.

- 노드를 움직일 때나 여러 개의 노드를 추가 선택, 동시 이동할 때는 컨트롤을 누르고 움직인다. 노드를 복사할 때는 노드를 선택하고 컨트롤+W를 누른다.

- Specular power 노드는 스펙큘러의 강도라기보다는 Glossiness라고 생각하자. 스펙큘러의 퍼짐 정도를 조절하는 것이다.

 

- 매 메쉬마다 머테리얼을 새로 만들어주면 노드도 다시 짜거나 수치도 다시 입력해줘야 하며, 머테리얼 개수만큼 컴파일을 해주기 때문에 로딩이 길어진다. 그래서 이를 방지하기 위해 parentinstance를 사용한다. instance는 항상 parent의 노드를 따라가며, parent에 비해 수치를 조절하기가 몹시 편하기 때문에 보통 instance를 많이 사용한다.

- parent에 있는 노드들은 parameter로 변경해줘야 instance에서 텍스쳐나 수치를 변경할 수 있다. 이 떄 instance에서 보기 편하게 노드들의 이름을 변경해주자.

- instance의 내용을 바꾸어도 parent는 바뀌지 않는다.
하지만 instance parent의 영향을 받으므로 parent의 텍스쳐는 null텍스쳐를 만들어서 넣어주는 것이 좋다.
(
디퓨즈, 스펙큘러는 회색의 솔리드 텍스쳐, 노멀은 R128 G128 B255)

 

3-5. 돌 질감의 표현

- 디테일 노멀이라는 것은 사이즈를 작게 해서 타일링으로 제작한 것이다.

- 디테일 노멀은 너무 밀집돼있는 것보다 퍼져있는 것을 이용해도 괜찮다. 굳이 사이즈가 큰 사진이라도 축소할 필요는 없다.

- NDO를 사용할 경우에는 bevelouter 또는 bevel 변경해서 노이즈를 줄여주거나 depth값을 조절해서 노이즈를 줄여준다. NDO G채널이 상단이 밝게 나오기 때문에 뒤집어주어야 한다.

- 타일로 써야하기 때문에 노멀을 생성한 다음에는 offset으로 seem을 정리해준다.

- instance material은 노드 구조를 변경할 수 없으므로 parent를 변경해주어야 한다.

- 디테일 노멀은 기존 노멀에다가 추가적으로 더한다는 의미가 되기 때문에 add 노드를 사용한다.

- 노드가 하늘색 테두리로 표시된다는 것은 이름이 중복된다는 의미이므로 수정해주자.

- 텍스쳐를 작게 여러 번 타일링 적용하려면 texture coordinate 노드를 추가해서 텍스쳐 뒤에 연결해준다그런데 texture coordinateparameter로 지정이 안 되기 때문에 multiply를 이용해야 한다.

  

3-6. 나무 텍스쳐의 표현(잘 정돈된 나무 구조물)

- RTT로 노멀맵을 뽑을 때 하이폴의 빈 부분이 많아서 붉은 부분이 많이 생기는 경우에는 projection optionray miss check 부분을 B 255로 해주면 된다.

- 나무 텍스쳐를 만들 때는 로폴의 방향에 따라 나뭇결의 가로 세로 방향을 맞춰주는 것이 좋다.

- 텍스쳐가 너무 밝고 contrast 낮으면 붕 떠 보이므로 조심하자

- 나무의 까진 부분은 필요한 부분을 가져와서 sharpen으로 날카롭게 해준 다음에 color balance나 밝기, 대비를 최대한 비슷하게 맞춰주고 지우개로 살짝 지워주며 배치해준다. 또는 전체적으로 거친 나무를 가져와서 마스크를 이용하여 부분적으로 배치해줄 수도 있다.

- 웨더링이나 미묘한 디테일을 추가해줄 때는 blending if를 활용하자.

- 부분적으로 원하는 색의 채도를 뺄 때는 hue / saturation에서 master를 원하는 색으로 바꿔서 조절해주자.

- 디퓨즈에서 blending if를 이용했던 부분을 스펙큘러로 밝게 해줘야 할 경우에는 밝게 해줄 부분의 색이 동일하다면 blending if를 색으로 지정해서 빼주면 좋다.

- 스펙큘러는 알파맵이 필요없어 tga로 저장할 때 24비트로 해준다.

- UDK 머테리얼에서 알파를 빼주려면 material blend modeblend_masked로 변경해주어야 한다. 그 뒤 디퓨즈의 알파 노드를 opacity mask에 연결해주면 된다.

- 알파를 써야 하는 오브젝트와 쓸 필요가 없는 오브젝트가 있다면 각각 parent material을 따로 만들어서 적용하자.

- 무광의 나무는 스팩큘러가 강하면 메탈처럼 보이므로 너무 강하지 않게 해줘야 한다.

- 유광의 나무는 스펙큘러를 contrast가 심하지 않게 하면서 약간 밝게 가주자.

- 나뭇결을 노말로 넣어줘야 할 경우는 디퓨즈를 nDocrazybump 등으로 약하게 만들어서 기존 노멀맵에   overlay로 적용해주자. 재질 노멀이 들어가면 스펙큘러가 강할 경우 매우 지저분하게 표현되므로 스펙큘러와 노멀을 적당히 약하게 해서 너무 지저분해 보이지 않게 해주자.

 

3-7. 메탈 텍스쳐의 표현

- 디퓨즈보다 스펙큘러의 영향력이 상당히 중요하다.

- 디퓨즈는 컬러 위주의 표현정도면 무방, 스크래치 등은 노멀이나 스펙큘러에서 담당

- 텍스쳐는 기본 메탈, 컬러 느낌, 스크래치 3가지 정도를 준비하자

- 너무 기본 텍스쳐가 밍밍하면 컬러가 있는 것을 가져와서 blending if로 섞어주자.

- 메탈의 경우 디퓨즈가 너무 밝으면 스펙큘러가 별로 티가 안 나기 때문에 어둡게 해주자.

- 레이어 효과의 inner shadow를 이용하면 메탈이 벗겨진 부분을 좀 더 쉽게 해줄 수 있다. 이 때 spreadsize 값은 조금만 줘야 한다.

- 메탈의 노말은 스크래치 정도는 괜찮은데 재질이 들어가면 몹시 지저분해 보인다.

- 스펙큘러에 컬러를 추가할 때는 컬러를 추가해줄 레이어를 레이어 속성 color로 해준다. 스크래치를 추가할 때는 스크래치가 있는 텍스쳐를 level contrast를 조절해서 어두운 곳은 어둡게 해준 다음에 overlayscreen으로 합성하고 blending if로 어두운 부분을 빼준다.

- R채널을 뒤집어서 뽑아준 EMB맵을 대비를 강하게 줘서 overlay와 레이어 blending if로 밝은 부분만 남게 해준 다음 모서리로 갈수록 강하게, 중앙으로 갈수록 약하게 지우개로 수정을 해주고 ripple 필터를 이용하여 흐름을 다양하게 해주자.(overlay 된 레이어를 여러 번 복사해서 강하게 들어가게 해주자.)

 

3-8. 창문의 표현(반사 큐브맵)

- 창문은 디퓨즈보다 반사재질의 영향이 제일 중요하다.

- UDK에서 환경을 구에 캡쳐하는 방법
ㆍ컨텐츠 브라우저 actor class에서 scene capture cube map actor를 생성한다.

  ㆍ컨텐츠 브라우저 빈 공간을 오른쪽 클릭하여 맨 아래의 texture render target cube를 생성한다. 그리고 더블클릭해서 사이즈를 지정한다.

  ㆍ앞서 생성한 원을 더블클릭하여 scene capture – capture – texture target에 위에서 생성한 텍스쳐를 넣어준다.

  far plane의 값을 충분히 높여서 하늘까지 표현되게 해준다.

  ㆍ아까 생성한 텍스쳐를 오른쪽 클릭하여 create static texture를 눌러 텍스쳐를 생성해준다.

  ㆍ텍스쳐 큐브와 각 방향의 텍스쳐는 반드시 있어야 한다.

 

- 큐브맵을 추가하기 위해서는 material editor에서 큐브맵을 추가해주고, vector 중에 reflection vector를 추가하여 큐브 텍스쳐의 uv에 연결해준다. 이대로는 오브젝트가 회전해도 반사맵이 제대로 적용이 안 되는데, 이를 수정하기 위해서 월드 축과 반사맵의 축을 맞춰주어야 한다. 그것은 vector ops 에서 new transform을 생성한다. 이것을 reflection vector와 텍스쳐 사이에 넣어서 탄젠트를 월드로 바꿔주고, 최종적으로는 emissive에 연결해주면 된다. 그런데 창문의 유리만 돼야 하므로 마스크 텍스쳐를 넣을 텍스쳐 노드를 하나 추가해주고, 이 마스크의 강도를 지정해줄 constant vector를 하나 추가해준 다음, 이것을 다시 multiply로 반사맵과 섞어주면 마스크의 강도에 따라서 반사맵이 적용될지 안될지, 마스크를 적용할지 안 할지, 반사맵의 강도는 어떨지를 지정해줄 수 있다.

- 반사맵의 마스크맵은 클 필요가 없다. 마스크맵을 약간 블러를 주어서 프레임으로 갈수록 흐릿해지게 하는 것도 좋다.

- 스펙큘러 맵에 깨진 느낌을 추가하여 빛을 받았을 때 유리창의 모양이나 깨진 느낌을 추가해줄 수도 있다.

- 노멀을 이용해서 창문의 굴곡도 추가해보고, 반사맵을 흐리게 만들어서 불투명 창문도 만들어보자.

 


4단원. 고급 테크닉

4-1. 머테리얼을 이용한 텍스쳐 제작

3dsmax 노멀맵으로 뽑는 법

- 주로 메탈느낌에 좋다.

- 지브러시 머테리얼과 노멀맵이 필요하다.

- 지브러시 document 크기를 텍스쳐 사이즈에 맞게 정사이즈로 만들어준다.

- sphere를 생성하고 edit를 활성화한다. 그리고 make polymesh 3d를 해주고 divide를 충분히 올려준다.

- fit mesh to view를 눌러 캔버스에 맞게 키워준다. 그리고 원하는 재질을 적용한다.

- 그 다음 bpr render를 한번 걸어주고 텍스쳐 grab doc으로 텍스쳐를 뽑아준다.

- 3dsmax로 넘어와 plane을 하나 생성해주고 renderermental로 변경해준다. 그 다음 planeenviroment probe/gray ball 재질을 standard diffuse에 적용해준다. 그리고 원하는 노멀맵을 적용해준다. 노멀이 약하면 충분히 값을 올려주자. 메탈의 경우에는 스펙큘러 값을 적당히 적용해준다.

- 다되면 RTT를 이용하여 맵을 추출해준다. 이것을 blending하거나 하여 활용한다.

-------------

 

3dsmax 메쉬로 뽑는 법

- 노멀을 뽑는 법과 동일하다. uv가 펼쳐진 projection된 로폴과 하이폴이 필요하다.

- 하이폴리곤에 머테리얼을 적용한다. uv는 특별히 펼쳐줄 필요는 없다.

- 그 후 로폴을 이용하여 하이폴을 기반으로 한 complete 맵을 추출해준다.

- complete 맵이 너무 어둡다면 라이트를 세팅해줘야 한다. 부분적으로 어두울 경우에는 돌려가며 렌더링해서 밝은 부분을 부분부분 뽑아준 다음에 포토샵에서 합성해주자.

--------------------

zbrush로 뽑는 법

- 컬러에서 하얀색을 fill로 칠해주고, 좌측 shelf에서 원하는 색상을 선택한 후 zadd를 끄고 칠해준다.

- 폴리곤이 적다면 퀄리티가 낮기 때문에 폴리곤이 충분히 있어야 한다.

- 하나의 서브툴이라도 poly group이 다르다면 mrgb를 활성화하여 머테리얼을 선택한 후 필을 눌러주면   보이는 부분만 해당 재질을 입혀줄 수 있다.

- document zapplink에서 zapplink properties를 이용하여 메쉬의 앞옆뒤상하를 찍어준 후, zapplink 버튼을 누른 후 set target app으로 포토샵을 선택해준다. 그 후 OK를 눌러주면 view 정보가 포토샵에 넘어가는데, 각 방향의 쉐이딩과 방향 레이어를 합쳐준다. 그 후 저장해주면, 지브러시에 창이 하나 뜨는데, 여기서 reenter를 선택해주고 accept를 선택해준다. 방향수만큼 6accept를 눌러주고, 색이 검어졌다면 정상이다다 되면 메쉬를 obj로 저장해준다.

- 로폴을 최상위에 projection, 그 아래 editable mesh 상태로 해준 뒤 sbm 로폴로 export해준다.

- x노멀에서 모두 로드해주고, 하이폴 메뉴에서 ignore vertex color를 해제해주고, 로폴은 cage 사용을 체크해준다.

- 그 후 bake highpoly vertex color를 선택해서 추출해주면 된다.

- 이 텍스쳐는 명암이 너무 심하기 때문에 리터칭을 해서 암부를 밝게 해주거나 shadow/highlight로 밝게 해준다.

 

4-2. 노멀맵 짜집기하기

- 노멀의 기본 색상은 RGB 128 128 255이다.

- G채널에서는 흑백으로 Y축값의 깊이를 표현해준다. 이 때 라이팅이 아래쪽에서 때린다고 생각하고 작업한다.

- 다른 노멀맵에서 필요한 형태나 디테일적인 부분을 가져와서 합성해준다.

- 문양의 경우는 최대한 비틀림이 없는 부분을 선택한다.

- 노멀맵을 복사 붙여넣기를 하고 회전을 시키면 R G채널이 바뀌므로 반드시 수정해줘야 한다.

- 원하는 채널의 깊이감을 추가해줄 때, 흑백의 그라데이션을 영역에 맞게 그려준 후, layer blending 옵션에서 불필요한 채널을 제거해버리면 된다. (예를 들어 G채널을 추가해줄 경우 R B를 제거하고 overlay 속성으로 추가한다.)

- 웨더링같은 경우는 overlay보다 적당히 동일하게 위치해주고 경계선을 살살 지워서 배치해주는 것이 더 자연스럽다. 그리고 자연스러울 수 있도록 수정을 더 해주자

- 짜찝기한 노멀의 AO nDo를 이용해서 뽑아줄 수 있다. 이 때도 G채널은 위가 밝게 해주어야 한다.

 

4-3. 텍스쳐 이음새 제거

- 3dsmax 2011버전부터 그나마 사용할 수 있다. 2010은 기능이 너무 없다. 제대로 쓰려면 2012 이상 버전을 쓰는 것이 낫다.

- viewport canvas를 이용하기 전에 텍스쳐가 오브젝트에 적용이 돼있어야 한다.

- tool – viewport canvas를 토글한다.

- clone 툴을 선택하고 텍스쳐 종류를 선택한다.

- 포토샵과 동일하다. Alt키를 눌러서 복사할 곳을 선택하고 칠해주면 된다.

- ctrl+shift를 누르고 상하로 움직이면 브러쉬 크기를 조절할 수 있다.

- 다 끝나고 오른쪽 버튼을 클릭하면 해주었던 것이 텍스쳐에 적용이 된다.

- 포토샵 psd파일의 레이어가 호환이 되지만, 레이어 블랜딩은 호환되지 않는다.

 

4-4. 2.5D로 타일맵 제작하기

- 캔버스 사이즈를 document에서 정사이즈로 바꿔준다. 사이즈를 입력해주고 resize 해주면 된다.

- Tool 팔레트의 preview에서 오브젝트를 움직여주면 처음 생성될 때 생성되는 모습을 정해줄 수 있다움직여주고 store를 누르자.

- 가장 먼저 plane을 생성해서 화면을 꽉 채워주자.

- 레이어를 새로 만들어서 Draw 모드에서 미리 제작한 돌을 plane 위에 그려주자.

- 키보드 w, e, rmove, scale, rotate가 가능하다.

- move일 때 원 안의 영역을 누르면 자유롭게 움직일 수가 있다. 바깥쪽의 축을 잡으면 축으로만 움직일 수 있다. 약간 안쪽의 회색부분을 잡으면 현재 보여지는 부분으로만 움직일 수 있다. rotatescale은 각 축의 바를 잡아서 움직인다. 오브젝트의 z축값을 조절할 때는 gizmo 바깥을 누르고 움직이면 된다.

- rotate를 준 상태에서 move로 원 안쪽을 누르고 움직이면 다시 오브젝트가 똑바로 서버리는데, rotate 준 것을 그대로 적용한 채로 움직일 때 안쪽의 회색영역을 누르면 된다.

- 돌을 적당히 그려준 다음 ~키를 누른 상태에서 드래그해주면 자동으로 타일링이 되는 것을 볼 수 있다.

- 레이어를 생성했는데 이전 레이어가 활성화되어 있지 않으면 더블 클릭해서 활성화해주자.

- 2.5deraser 브러쉬로 부분적으로 지워줄 수 있는데, 바위와 plane이 하나의 레이어로 돼있다면 플랜까지 지워지므로 반드시 plane과 돌의 레이어를 따로 관리해주자.

- 레이어 팔레트 하단의 displace를 이용하여 레이어 전체를 움직여줄 수도 있다.

- 레이어가 나눠져 있으면 ~키를 누르고 움직였을 때 선택된 레이어만 움직이므로 레이어를 합쳐주고 움직여야 한다.

- 돌의 경우는 라인의 흐름을 고려하며 배치하자.

- 2.5d는 캔버스에 그려지는 document이므로 document로 저장해야 한다. 이 때 레이어도 같이 저장이 된다.

- 완성된 2.5d에서 디퓨즈를 뽑을 때는 텍스쳐에서 grab doc, 알파는 알파에서 grab doc을 해주고, 노멀의 경우는 simple 브러쉬를 선택해준 다음, zadd를 꺼주고, mrgb만 켜진 상태에서 노멀 재질을 선택해 캔버스에 칠해준다. 이것을 텍스쳐로 추출하면 된다.

- 지브러시는 기본적으로 노멀이 G채널이 위가 밝게 되어있다.

- 알파맵은 깊이값을 주기 위한 맵으로 사용한다. multiplyblending해주자. 너무 검게 들어가지 않도록 하자.

- 추출해준 알파를 이용하여 지브러시에서 plane에 알파로 마스크를 입혀준 다음, move툴로 움직여주면 통으로 된 3d 파일을 얻을 수 있다. 이것을 이용하여 브러시 작업을 더 해줄 수도 있고, 로폴을 뽑을 수도 있다.