언리얼 학습 기록

금일 진행 사항

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 노드를 따로 연결하지 않았는데
  • 그래스가 나온 부분에 폴리지가 생성됨

가능성:

  1. Landscape Grass Output 노드가 이미 머티리얼에 연결되어 있음
  2. 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 사용 (성능 때문)