블루프린트
컴포넌트 추가하기
강의 내용대로 블루 프린트 클래스(Actor)를 만들고 켜보니, 내가 상상했던 화면과 달랐다. 나는 셰이더, 머티리얼 그래프처럼 노드와 간선이 연결되어있는 인터페이스를 상상했는데...
이런 3D 뷰가 나타났다. 라고 생각했지만, Event Graph 탭을 들어가니 내가 아는 형태의 인터페이스가 나왔다.
Static Mesh 컴포넌트를 추가시켜주었다. 이게 뭐지...
Static Mesh 컴포넌트에 전에 만들어주었던 메쉬를 추가하니 뷰포트에 메쉬가 보였다. 내 생각에 Static Mesh 컴포넌트는 Unity에서 MeshFilter와 MeshRenderer를 간편하게 합친 컴포넌트인 것 같다. 확실하지는 않지만...
물리 적용을 위해서 Physics 컴포넌트에 SimulatePhysics를 켜주었다. 질량과 댐핑 또한 조정해주었다. Rigidbody와 비슷한 역할을 하는 컴포넌트 같다.
레벨로 불러오기
아니 이런 일이... 나는 지금까지 블루 프린트가 비주얼 스크립팅인 줄 알았는데, 갑자기 프리팹의 역할을 하고 있어 머리가 조금 어지러워졌다.
아무튼, 실행을 하니 물리가 아주 잘 적용되는 모습을 보였다. 이 강의에서는 블루프린트를 이 정도로만 하고 끝냈지만, 나중에 블루 프린트 강의를 듣고 정확한 개념을 파악해야겠다.
랜드스케이프
지형 만들기
랜드스케이프 모드를 선택해주었다.
유니티의 터레인이랑 별다를 게 없어 쉽고 빠르게 지형을 만들 수 있었다.
랜드스케이프 머티리얼 만들기
지형의 거칠기를 완전하게 주기 위해서 Material > Advanced > Fully Rougp를 체크해주었다. 아마 Roughness를 1로 만들어주는 속성인 것 같다.
그 다음엔 Landscape Layer Blend라는 노드를 추가해주었다. 2개의 레이어를 추가해주고 Base Color와 연결시켰다.
3+좌클릭을 눌러 Vector3 노드를 만든 다음 색을 정해준 후 각각의 레이어와 연결시켰다.
페인팅하기
머티리얼을 적용하니 모래 색도 잔디 색도 아닌 색으로 나타났다.
두 레이어 모두 블렌딩된 레이어로 만들어주었다. (왜지?)
그랬더니 랜드 스케이프가 모래가 되었다?!?! 내 생각엔 Index가 0번이었던 레이어를 Default로 가져가는 것 같다. 나는 열심히 모래와 잔디 레이어를 오가며 페인팅을 해주었다.
텍스쳐 추가하기
... 보잘 것 없는 내 페인팅을 개선시키기 위해 머티리얼에 텍스쳐를 추가해보자.
잔디 텍스쳐를 추가했는데, 타일링이 별로 좋지 않다는 강의 선생님의 말씀.
해당 위치 좌표 (x, y)만을 추출한 후에 특정 값으로 나눈 후 UVs에 연결한다. 그렇게 되면 움직이게 되어도, 정렬된 것 처럼 보인다고 하는데
솔직히 차이를 잘 모르겠지만...
에디터를 보면 크기가 달라질 때마다 텍스쳐가 다시 정렬되는 게 한 눈으로 보였다.
강의를 듣던 중 Named Reroutes라는 노드를 배울 수 있었다! 노드의 재사용, 그래프를 깔끔하게 유지할 수 있도록 도와주는 괜찮은 친구인 것 같다.
잔디의 색은 초록색과 연두색을 회색조로 선형 보간 시켜서 만들었다.
원했던 두 개의 레이어를 가진 머티리얼이 완성 되었다!
잔디 심기
잔디 머티리얼 만들기
텍스쳐가 검은색일 때 머티리얼을 마스킹하게 하기 위해, 잔디 머티리얼의 블렌드 모드를 Opaque에서 Masked로 바꿔주었다. Unity와 비슷해서 기분이 좋았다.
가져온 잔디 텍스쳐를 Opacity Mask, Lerp의 Alpha와 연결하면...
예쁜 잔디가 있다!
잔디 심기
잔디를 심을 것이다. Landscape Grass Type이라는 것을 하나 생성해준다.
Landscape Layer Blend와 꽤 비슷한 화면이다. 요소를 추가해주고, 잔디 메쉬를 넣었다.
생성해준 Landscape Grass Type을 Landscape Grass Ouput 노드에 요소로 넣어주었다.
Landscape Layer Sample 노드를 추가하고, 이름을 Grass로 바꾼다. 그리고 방금 만든 Grass Output과 연결해주면...
엥?!?! 잔디가 생겼다... 이 무슨 마법 같은 일이... 교수님 진도가 너무 빨라요 느낌이라 영상을 멈추고 Landscape Layer Sample에 대해서 찾아보았다.
한 문장으로 정리하면, 나는 방금 Grass 레이어의 정보에 액세스해서 Grass Output과 연결해 그 자리에 잔디를 설정한 밀도로 심은 것이다. 참 신기한 기능이다.
바위 심기
바위 또한 심어준다고 한다. 바위 FBX를 임포트할 때, 폴리곤이 600만개 이상 되기 때문에 나나이트 빌드를 체크할 것이다. (라고 강의 선생님이 말씀하셨다)
나나이트 빌드에 대하여
나나이트 빌드에 대한 별도의 설명이 없어 찾아보았다.
이점이 많은 친구였다! DX12를 배울 때 컬링 기능을 선생님을 따라 구현했었는데, 조금의 메쉬가 카메라에 충돌하는 오브젝트 전체를 렌더링해야하는 게 비효율적이라고 생각한 경험이 있다.
클러스터로 묶어 트리 구조로 구성된 게 참 창의적이고 신기했다. LOD 또한 자동으로 된다는 게 놀라웠다! 아무래도, 계층으로 트리가 나누어져있기 때문에 자동으로 LOD가 지원되는 것 같다.
실제로 에디터에서 뷰 모드를 바꾸어서 확인할 수 있었다. 현대 미술 같기도 하다.
바위 머티리얼 꾸미기
잔디와 모래 방식처럼, 좌표에 따라 정렬해주는 머티리얼을 만들었는데... 윗면이 그다지 예쁘지 않았다. 윗면을 아까 썼던 모래 텍스쳐로 바꿔주면 좋을 것 같아
이런 머티리얼 그래프를 선생님을 따라 구성했는데... 사실 어떤 원리로 작동되는지 잘은 모르겠다...
윗면은 모래, 옆면은 바위 텍스쳐인 머티리얼이 완성되었다.
폴리지 툴로 바위 심기
아까 Grass Type을 만들었던 것처럼, 비슷하게 Static Mesh Foliage를 만들어주었다.
돌 메쉬를 끌고 와주고, Z 오프셋과 Collision Presets를 BlockAll로 바꾸는 등 프로퍼티를 조정했다.
그리고 새롭게 폴리지를 추가해주었다. 선택한 폴리지를 추가하고 페인팅을 하면...
예쁘게 바위가 심어진다 ㅎ_ㅎ!!
1일차 끝!! 물흐르듯 강의를 듣지 못하고 궁금한 기능들을 자꾸 찾아보니까, 25분을 듣는데도 1시간이 훌쩍 넘도록 걸렸다. 비효율적인 방식인 걸까 ㅠ_ㅠ
그래도 언리얼에 인터페이스에 조금은 익숙해진 것 같아서 안도감이 든다. 특히 머티리얼 그래프는 Unity의 셰이더 그래프와 비슷해서 금방 적응할 수 있었다.
그렇지만, 아직 블루프린트는 모르겠다... 내가 정말 얕게 알고 있던 개념과는 달리 프리팹 같기도 해서... 완강해야 알 것 같다. 아자 아자 파이팅!! ^__^
'Unreal' 카테고리의 다른 글
[공부일지][3일차] <Your First Game In UE5> 5 (1) | 2023.01.24 |
---|---|
[공부일지][3일차] <Your First Game In UE5> 4 (0) | 2023.01.24 |
[공부일지][2일차] <Your First Game In UE5> 3 (0) | 2023.01.23 |
[공부일지][2일차] <Your First Game In UE5> 2 (1) | 2023.01.23 |
[공부일지][1일차] <Your First Game In UE5> 0 (1) | 2023.01.22 |