[Unreal] 14.머티리얼_C++

본 문서는 어소트락 언리얼엔진 게임프로그래머 양성과정의 강의를 토대로 필기한 내용입니다

머티리얼_CPP

머티리얼 인스턴스

  • 원본 머티리얼의 파라미터 값만 조절하여 재사용 가능
  • 셰이더 컴파일을 하지않음

머티리얼 인스턴스 다이내믹

  • UMaterialInstanceDynamic : Material Instance Dynamic를 이용해서 코드로 머티리얼을 제어할 수 있다
  • 피격 시 머티리얼 값 변경, 랙돌 이후 Dissolve Parameter 변경 등으로 머티리얼 조작을 통해 단순하게 색상 및 머티리얼 질감 변경을 만들 수 있다

  • Dissolve
    • 몬스터가 죽으면 Death 관련 함수 작동
    • Death 관련 함수가 작동될 때, mDissolve boolean 변수 체크
    • Tick() 함수에서 mDissolve 값이 체크될 때, MID 조작
  • Hit
    • 다중 피격을 당할 때, 타이머를 체크해서 피격 효과 구현
    • FTimerHandle : 핸들을 이용해서 타이머를 제거 하는 방식. 필요한 만큼만 타이머 사용하고 제거
      • TimerManager에 있는 SetTimer() 함수를 오버로딩해서 사용

AIPawn.cpp

void AAIPawn::BeginPlay()
{
  Super::BeginPlay();

  // 지정된 Material을 Dynamic Material Instance로 변경한다
  int32 MaterialCount = mMesh->GetNumMaterials();

  for(int32 i = 0; i< MaterialCount; i++)
  {
    UMaterialInstanceDynamic* Mtrl = mMesh->CreateDynamicMaterialInstance(i);
  }
}

포스트 프로세스 머터리얼

카메라 후보정 필터효과
색, 명암, 채도, 화면 잔상, DoF, 화면 빗방울, 모션블러 등등 보정

  • PostPrecessVolume 액터 아웃라이너에 추가
  • Depth Of Field : 씬의 초점 앞이나 뒷부분을 거리에 따라 흐리게 만드는 기법
  • Motion Blur : 잔상 효과
  • Lens Flares : 렌즈에 플레어 효과 나오는 것 처럼 보이기
  • 컬러 그레이딩 : 색 보정
  • PP 세팅
    • 무한규모(언바운드) : 체크 시 전체 월드에 상시적용

포스트 프로세스 머티리얼 커스텀

포스트 프로세싱용 새 머티리얼 생성 및 머티리얼 도메인 Post Process로 지정

[렌더링 기능] - [포스트 프로세스 머티리얼]에 머티리얼 추가하여서 커스텀 가능

SceneTexture 노드를 이용해서 최종적으로 카메라에 랜더링 되어 실제 플레이어가 보는 화면(씬)을 만들어 낸다

아웃 라인을 판단하는 방법

  1. 어떤 지점을 지정한 후 8방향의 지점의 픽셀을 찍는다
  2. 그 지점보다 큰 깊이가 있다면 그 사이 지점이 아웃 라인

포스트 프로세스를 이용한 특정 물체의 아웃라인 만들기 -> Custom Stencil 사용

  • 머티리얼 함수로 Outline_Dir 에셋을 만들고, 여기에서 아웃라인 만드는 함수 머티리얼 그래프 작성

  • 8 방향

커스텀 뎁스와 씬 뎁스의 깊이 차이를 구해서 가려지는 물체에 대한 처리도 가능

머티리얼 컬렉션

  • 컬렉션에 색상을 미리 저장해 두고, CollectionParameter 노드를 활용하여 MF에서 불러와서 사용 가능
  • 커스텀 스텐실 값을 가져와서 커스텀 스텐실 값의 일의 자리 숫자를 통해 분기문을 나눠서 리턴값을 다르게 할 수 있음

오클루젼 컬링

보이지 않는 부분을 렌더링하지 않는 기법


© 2023 Jinsoo Lee. All rights reserved.

Powered by Hydejack v9.1.6