[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 2편
2023.07.11 - [Unreal 엔진] - [UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 1편
[UE] Stack-O-Bot 프로젝트 튜토리얼 스터디 노트 - 2편
작은 톱다운 어드벤쳐 게임 제작 튜토리얼
2번째 스터디 노트.
커리큘럼 - Static Mesh, Texture 임포트
- Material 제작 (진행 중)
- Skeletal Mesh, Animation 임포트
- Simple Interaction 시스템 제작
- 약간의 마무리, 폴리싱 작업
환경 오브젝트 생성
지형에 배치할 오브젝트들을 생성해보기로. 먼저 풀을 만들어본다. Content 폴더에 리소스를 Import. Environment / Grass 를 임포트. 풀 머티리얼을 만들어야 함.
M_Grass 머리티리얼을 에디터로 열고, 텍스쳐 노드를 연결. 머티리얼 설정에서 블렌드 모드를 Masked 로 변경해서 검은색은 투명하게 처리되도록 함. 색상 노드는 랜드스케이프 머티리얼 그래프에서 노드 몇 개를 복사해서 사용함.
이렇게 머티리얼을 만들어서 폴리지 모드에서 심을 수도 있는데, 튜토리얼에서는 랭드스케이프 머티리얼을 활용.
M_Landscape 랜드스케이프 머티리얼 그래프로 이동해서 LandscapeGrassOutput 노드를 생성.
연결할 에셋이 필요. 콘텐츠/Environment 폴더에서 우클릭, Follage(폴리지)/Landscape Grass Type 을 생성. LandscapeGrassType 에셋을 열고, Grass Mesh 는 방금 머티리얼을 적용한 Static Mesh 를 적용.
그래스 밀도를 조정하고, X스케일 최소, 최대 값을 조정.
M_Landscape 머티리얼로 돌아가서, LandscapeGrassOutput 노드를 선택하고 Grass Type 을 방금 생성한 에셋으로 설정. 이제 이 잔디(Grass)들이 출력되면 되는데, 위치는 이미 M_Landscape 머티리얼에서 설정한 영역과 동일하게 작업.
LandscapeLayerSample 노드를 활용. LandscapeGrassOutput 에 연결해주면 레벨에 잔디가 심어진 걸 볼 수 있음.
이번엔 바위.
바위 StaticMesh 는 RockFlat_01.FBX 를 임포트 하면 되는데, 폴리곤이 매우 많고 무거운 메시이기 때문에 Import 옵션에서 나나이트 빌드 체크를 하고 임포트. 임포트 시간이 3분 정도(더 걸릴 수도 있음) 걸리고, Content 폴더에 140MB 정도 파일이 생성됨.
나나이트 빌드된 매시를 보려면 뷰포트에서 보기 옵션 / 나나이트 시각화 / 트라이앵글(적절한 모드) 를 선택해주면 됨.
그럼 이렇게 나나이트 적용된 매시의 트라이앵글이 동적으로 변하는 걸 볼 수 있음.
이 바위에 쓸 머티리얼을 만들어본다.
T_RockTileable_BC 텍스쳐를 임포트. 월드 포지션을 가져와서 이전과 같이 좌표값에 상수를 나눠서 텍스쳐 타일링 밀도를 조절한다.
노드에서 1 키를 입력하고 생성하는 노드는 constant 노드와 동일.
위에서 보면 자연스러운데 옆면이 늘어나보임.
그렇다고 worldposition 다른 축을 이용하면 옆면은 괜찮은데 윗면이 늘어나보임. 그래서 사용하는 트릭.
VertexNormalWS 는 월드 스페이스의 버텍스 노멀을 가져올 수 있는 노드.
모두 작업한 뒤 노드는 아래. 선형보간으로 섞어줄 다른 텍스쳐는 Sand 텍스쳐를 가져와서 타일링 보정해줌.
폴리지 툴 활용 : 바위 배치
폴리지에 등록할 에셋을 제작해야 함. 폴리지 > 스태틱 메시 폴리지 생성. F_FlatRock 으로 생성하고 폴리지 에셋 옵션을 설정해줌. 메시는 앞에서 생성한 바위를 등록하고, Z 오프셋을 수정하고, 라이트 받도록 설정, 컬릿젼은 BlockAll 로 셋팅.
여기까지 설정하고 폴리지 툴로 이동하면 폴리지를 등록할 수 있음. 밀도와 스케일 범위를 수정. 이제 브러쉬로 바위를 선택하고 그려주면 됨.
폴리곤이 600만개인 바위들을 여러 개 배치했고, 나나이트 뷰로 실시간 확인이 가능. 성능상 크게 저하되는 현상은 안 느껴짐.
식생 추가
양치식물과 나무를 추가해본다.
Stack-O-Bot 프로젝트에서 "에셋 이주" 기능을 사용해본다. Stack-O-Bot 프로젝트를 열어서 "스태틱 메시 폴리지" 에셋을 콘텐츠 브라우저에서 찾아서 선택.
우큭릭한 뒤 Asset Action / Migrate (에셋 액션 / 이주) 선택. 에셋의 레퍼런스로 추적된 모든 컨텐츠들을 확인하고, 이주 목적지가 되는 대상 폴더의 Content 폴더를 선택해서 확인.
이주가 완료되면 작업하던 컨텐츠 폴더에 새로운 폴더가 생성되고 모든 에셋들이 이주.
폴리지 모드로 돌아가면 새 폴리지를 등록할 수 있어짐.
폴리지를 추가로 등록해서 레벨 배치까지 진행.
다음 스터디 노트에서는 게임 플레이 프레임워크 내용을 진행해보는 것으로.
참조
Your First Game In Unreal Engine 5
https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5