언리얼 학습 기록
금일 진행 사항
1. 레벨 생성
- 새로운 레벨을 생성하는 방법 학습
- 레벨은 단순한 맵이 아니라, 월드 단위의 구성 요소(조명, 액터, 환경 등)를 담는 컨테이너
- 이후 스트리밍 레벨 / 서브 레벨 개념까지 확장 가능 (대형 월드 구성 시 중요)
- 우측 위 파일에 클릭하면 알 수 있음
2. 라이트 생성
- 기본적인 라이트 생성 및 배치
- Directional / Point / Spot Light 등 종류 존재
- 라이트는 단순 시각 요소가 아니라:
- 그림자
- 라이팅 모델
- 퍼포먼스 (특히 Dynamic vs Static) 와 직접적으로 연결됨
- 상단 윈도우 클릭하면 env-light 있음
3. 메쉬 및 머티리얼 로드
-
Static Mesh 로드 및 배치
-
머티리얼 적용 과정 이해
-
DX에서 하던:
- 버텍스 버퍼 / 인덱스 버퍼 / 셰이더 바인딩
→ 언리얼에서는 에셋 + 컴포넌트 기반으로 추상화
- 버텍스 버퍼 / 인덱스 버퍼 / 셰이더 바인딩
-
임포트 하고 더블 클릭하면 블루프린트로 넘어감
4. 머티리얼 + 텍스처 적용
- 텍스처를 머티리얼에 연결
- 머티리얼 그래프 기반 작업 진행
시행착오
- Lerp (Linear Interpolate) 노드 못찾아서 헤맴
정리:
- Lerp는
LinearInterpolate또는Lerp로 검색하면 나옴 - A / B / Alpha 구조
- Alpha = 0 → A
- Alpha = 1 → B
느낀 점
- UV / World Position 노드 등을 활용하면 DX에서 직접 구현하던 효과들을 훨씬 쉽게 구성 가능
예시:
- World Position → 월드 기준 그라데이션
- UV → 텍스처 좌표 조작
- Time → 값 변화 제어
즉,
셰이더 코드 → 노드 기반으로 치환된 형태라고 보면 됨
5. 네임드 노드 (Parameter) 사용
- Scalar / Vector Parameter 사용
- 머티리얼 인스턴스를 통해 값 변경 가능
의미:
- 머티리얼을 데이터화
- 런타임에서 값만 바꿔서 다양한 결과 생성
DX 기준으로 보면:
- Constant Buffer 값을 외부에서 제어하는 느낌
6. 랜드스케이프 (Landscape)
- Sculpting / Brush 작업 진행
- 지형을 직접 조형
핵심 개념:
-
랜드스케이프는 일반 메쉬가 아니라 지형 전용 시스템 (LOD / 최적화 포함)
-
셀렉트 모드가 아니라 랜드 스케이프 모드 보면 알 수 있음
-
추가로 노드로 렌드스케이프 레이어를 추가하면 추가한 레이어만큼 페인팅 가능
-
레이어 인포 만들어줘야 함
7. 폴리지 (Foliage)
어려웠던 부분:
- 잔디 메쉬를 썼는데 왜 또 폴리지를 쓰는지
정리:
폴리지는 단순히 메쉬를 배치하는 것이 아니라:
- 대량 배치를 위한 시스템
- Instancing 기반
- 드로우콜 감소
- 자동 분포 / 랜덤화
즉,
- 그냥 메쉬 배치 = 개별 오브젝트
- 폴리지 = 최적화된 대량 배치 시스템
- DX기준 메쉬 인스턴싱이라고 봐도 된다.
8. Landscape Layer Blend
개념:
- 지형에 여러 텍스처를 섞는 노드
예:
- 흙 / 잔디 / 바위
각각을 레이어로 정의하고 블렌딩
9. 폴리지와 레이어의 관계
- 랜드스케이프 머티리얼에서 레이어 기반으로 지형을 칠함
- 그 레이어 정보를 기반으로 폴리지가 자동 생성됨
즉:
- 텍스처를 칠하는 동시에
- 환경 생성 규칙을 정의하는 것
10. Grass Node 관련 의문
상황:
- 이전에 만든 Grass 노드를 따로 연결하지 않았는데
- 그래스가 나온 부분에 폴리지가 생성됨
가능성:
- Landscape Grass Output 노드가 이미 머티리얼에 연결되어 있음
- Foliage Tool에서 레이어 기반 배치 설정이 되어 있음
결론:
- 레이어 정보 기반으로 자동 생성 규칙이 이미 존재했을 가능성 높음
Landscape Layer Blend
- “여기는 grass 레이어다” 라는 값 생성
- 그 값을 Base Color에도 쓸 수 있고
- 그 값을 Landscape Grass Output에도 쓸 수 있음
Base Color
- 표면이 초록색으로 보임
Landscape Grass Output
- 그 grass 레이어가 칠해진 위치에 grass mesh를 자동 배치
11. 오파시티 (Opacity)
- 이전 동숲 프로젝트에서 사용했던 개념 등장
주로:
- 잔디 / 나뭇잎 / UI 등에 사용
언리얼에서 특징:
- Masked / Translucent 등의 블렌드 모드 존재
차이:
- Masked: 알파 테스트 기반, 성능 유리
- Translucent: 반투명 표현 가능하지만 비용 큼
잔디 같은 경우:
- 보통 Masked 사용 (성능 때문)