ProBuilder
면선택 후 shift + 마우스 드래그 => extrude
면선택후 r + shift + 마우스 드래그 => 면 스케일 변환
new shape => 모형을 만들 수 있음. 플레인, 콘, 구, 삼각기둥, 큐브, 원기둥 등의 다양한 물체를 만들 수 있다.
new poly shape => 내가 원하는 모양의 물체를 만들 수 있다.
PB의 아래에 있는 버튼을 클릭하면 언제든지 다시 수정이 가능하다.
상단 바에 있는 옵션에 따라 ProBuilder의 옵션 역시 달라진다. 파란색은 선택관련, 초록색은 기본옵션, 빨간색은 수정과 관련된 옵션이다.
두번재는 점선택, 세번째는 선 선택, 네번째는 면 선택이다.
probuilder에서 만든것들은 자동으로 colider 적용 > 따로 colider를 안넣어주어도 된다.
subdivide > 면나누기
Vertex 선택
Cut tool => 블렌더 knife
collabs => 점 합치기
Weld Vertex
Connect => 점과 점 이어서 선 만들기
Edge 선택
Loop => 루프선택. 마지막 막힌면은 루프선택이 안된다. 막힌면의 엣지들을 선택하고싶으면 면선택을 한 후 엣지선택으로 바꾸어주면된다.
Ring => 루프선택과는 조금 다르다. 링 형태로 엣지 선택이 된다.
Bevel => 블렌더 베벨과 같음
insert edge loop => 루프형으로 엣지 생성. 사각형에서만 적용이 된다.
connect edge => 면과 면사이에 엣지 생성
material을 만든 후, 적용하고 싶은 면을 선택, 드래그해서 넣어주면 그 면만 material이 적용이 된다. material editor를 이용하면 단축키를 통해 더 쉽게 material을 적용시킬 수 있다.
UV Editor
벽돌모양 => 텍스쳐 키고 끄기
블렌더와 같이 텍스쳐에 맞춰서 크기를 줄여주어야 한다.
Vertex Color => 점에 색상을 줄 수있다.
Toon Shader
URP 파일의 Depth Texture, Opaque Texture에 모두 체크를 해준다.
Project Setting에 들어가서 Graphics 항목에 들어가면 URP가 High로 설정되어있는것을 볼 수있다. 게임의 그래픽의 상 중 하가 이 부분에 적용된 URP를 뜻한다.
Universal Renderer 에 들어가서, Add Renderer Feature를 선태갛여 Render Objects와 Screen Space Ambient Occlusion을 추가해준다. Render Obeject항목을 보면 Overrides항목에 material이 비어있는 것을 볼 수 있다. 여기에 만들어진 Toon-Shader를 넣어주면 물체에 Toon Shading이 적용이 된다.
이제 toon shader를 만들어 볼것이다.
프로젝트 창에서 우클릭, Create > Shader Graph > URP > Unlit Shader Graph를 선택해주고 이름을 toon shader로 지정해준다.
Lit > 빛의 영향을 받음
Unlit> 빛의 영향을 받지 않음
만들어진 shader graph를 더블클릭해서 들어간 후, 베이스 컬러를 빨강으로 바꾸어준다. 적용을 시켜주려면 꼭 Save Asset을 눌러주어야 한다.
shader graph를 선택해주고, 우클릭 > Create > Material을 하면 shader graph가 material로 뽑아져 나온다.
만들어진 Toon Shader Material을 Universal renderer의 material에 넣어준 후, Layer mask를 everything을 하면 물체에 잘 적용이 되는 것을 볼 수 있다.
렌더링의 순서는 다음의 순서와 같이 진행이 된다.
node 생성 단축키 = space
Scean Color 노드를 생성해주고, Out 점에서 선을 뽑은 후 Multiply(A)를 추가해준다. 이후, Multiply의 B점에서 선을 뽑은 후, Float을 추가해준다. 이후 x에서 선을 뽑고 Subtract를 추가해준다.
이후 ToonShader창에서 +를 누른후 float을 생성해주고 이름을 CellShading으로 바꾸어준다. CellShading을 드래그해서 노드에 추가해주고, Subtract의 B에 연결, Subtract A의 X값을 256으로 바꾸어준다.
CellShading을 선택, Mode를 Slider로 바꾸어주고 Max값을 255로 설정해준다.
그 다음, Multiply의 Out에 Round를, Round의 Out에 Divide를, Divide의 Out에 Base를 연결해준다. 그리고 divide의 B파트에 Float을 연결해준다.
subtract 노드 > A에서 B를 뺀다. A의 값에서 B의 Max값을 빼준다 B의 Max값이 작아져서 차이가 커질수록 자연스러운 표현이 가능하고, 적어질수록 toon shading에 가까워진다.
ToonShader에서 다시 Material을 추출해주고, Universal Renderer의 Material에 적용을 해주고, event를 After Rendering으로 설정, 적용한 material의 Surface Input항목을 조절해주면 Toon shader가 적용되는 것을 확인 할 수 있다.
Outline 만들기
Toon shader와 같은 방법으로 Unlit을 만들어준 후, normal Vector와 Multiply(A)노드를 생성해주고, float을 하나 생성해준 후 이름을 thickness로 지정해주고 Multiply의 B에 연결을 해준다.
그 다음, Multiply의 Out에 Add를 생성해주고 Add의 B에 Position을 연결해준다. 그후 Add의 Out을 Vertex의 Position에 연결을 해준다.
그 다음 오브젝트의 Mesh Renderer에서 각 메터리얼의 위에 Outline Material을 추가해준다. => 순서 중요!!
그 이후 Vertex에서 graph settings에서 Render Face를 both로 바꾸어준다.
그 다음, is front face 노드를 추가해주고, 거기에 branch 노드를 추가해서 연결해준다. branch 노드의 x를 0, y를 1로 설정해준 후, Vertex의 Alpha에 연결해준다. 그리고 Normal Vector와 Position의 Space를 Object로 설정해준다. 그리고 Asset Save를 한 후, 확인을 하면 다음과 같이 적용이 되는것을 볼 수 있다.
'Unity' 카테고리의 다른 글
2024/06/11 Unity VFX (0) | 2024.06.11 |
---|---|
Unity 물 shader (0) | 2024.05.17 |
2024/05/10 Unity Terrain Tool (0) | 2024.05.10 |
2024/05/09 Unity 포켓몬 게임 구현하기 (Coroutine, Enumerator) (0) | 2024.05.09 |
Unity 포켓몬 게임 구현하기 (효과음) (0) | 2024.05.01 |