ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 텍스처 머터리얼과 파라미터 머터리얼의 차이와 이해
    컴퓨터 3D 그래픽/언리얼엔진 2025. 2. 12. 17:22

    📌 언리얼 엔진: 머터리얼 인스턴스를 활용한 나이아가라 텍스처 변경 방법

    머터리얼 인스턴스를 사용하면, 텍스처를 실시간으로 변경하고 최적화된 VFX를 제작할 수 있다.
    본 포스팅에서는 머터리얼 인스턴스를 활용하여 나이아가라 시스템에서 텍스처를 동적으로 변경하는 방법을 다룬다.
    또한, 텍스처 기반 머터리얼과 파라미터 기반 머터리얼의 차이점을 설명하고, 실제 적용 방법을 설명한다.


    1️⃣ 머터리얼 인스턴스란?

    머터리얼 인스턴스(Material Instance)부모 머터리얼(Material Parent) 을 기반으로 생성되며,
    컴파일 없이 즉시 텍스처, 색상, 파라미터 등을 변경할 수 있는 기능을 제공한다.

    머터리얼 인스턴스를 사용하는 이유

    머터리얼을 다시 컴파일하지 않고도 텍스처를 변경 가능
    동일한 머터리얼을 공유하면서 여러 개의 변형을 생성 가능 (최적화 효과)
    나이아가라 시스템에서 텍스처 변경을 자동화할 수 있음


    2️⃣ 텍스처 기반 머터리얼 vs. 파라미터 기반 머터리얼

    머터리얼에서 텍스처를 적용하는 방식에는 두 가지 방법이 있다.

    📌 (1) 텍스처 샘플(Texture Sample) 기반 머터리얼

    특징:

    • Texture Sample 노드를 사용하여 텍스처를 직접 연결
    • 머터리얼에서 텍스처를 변경하려면 직접 수정 후 다시 컴파일 필요
    • 변경 사항이 적용될 때마다 컴파일 부담이 크다

    사용 예시:

    • 고정된 텍스처가 필요한 환경 (ex: 특정 UI 요소, 고정된 배경)

    📌 (2) 파라미터 기반 머터리얼 (Texture Parameter)

    특징:

    • Texture Sample을 파라미터로 변환 (Convert to Parameter)
    • 머터리얼 인스턴스에서 컴파일 없이 즉시 텍스처 변경 가능
    • 다양한 텍스처를 하나의 머터리얼로 관리 가능 → 최적화에 유리

    사용 예시:

    • 나이아가라 이펙트에서 텍스처를 다르게 적용할 경우
    • 파티클 시스템에서 불꽃, 연기, 폭발 등 다양한 효과를 한 번에 관리할 때
    • 동적인 텍스처 변경이 필요한 경우

    3️⃣ 머터리얼 인스턴스 편집기 화면 설명

    아래의 이미지는 머터리얼 인스턴스 편집기의 모습이다.
    이 화면에서 사용자가 설정할 수 있는 옵션을 번역 및 설명해보자.

    ![머터리얼 인스턴스 편집기](첨부된 이미지)

    UI 항목 설명 번역

    General (일반 설정) 기본적인 머터리얼 속성을 설정하는 영역 일반적인 머터리얼 속성 조정
    Phys Material (물리 머터리얼) 물리적인 충돌 반응을 추가할 수 있는 옵션 물리 머터리얼 설정 (현재 없음)
    Parent (부모 머터리얼) 현재 인스턴스가 기반으로 하는 머터리얼 부모 머터리얼 (M_Big2Fire)
    Lightmass Settings (라이팅 설정) Lightmass 관련 라이팅 설정 라이팅 품질 조정
    Material Property Overrides (머터리얼 속성 덮어쓰기) 특정 머터리얼 속성을 인스턴스에서 변경할 수 있음 특정 속성 오버라이드 가능
    Advanced (고급 설정) 추가적인 설정 가능 고급 머터리얼 설정
    Preview Mesh (미리보기 메시) 머터리얼을 적용할 메시를 설정하는 옵션 미리보기 메시 설정 가능

    📌 이미지에서 확인할 수 있는 주요 정보:

    • 현재 적용된 부모 머터리얼: M_Big2Fire
    • 물리 머터리얼이 없음 (Phys Material = None)
    • 머터리얼 인스턴스이므로 텍스처 변경 가능 (파라미터 기반일 경우)
    • 현재 미리보기 메시가 설정되지 않음 (Preview Mesh = None)

    4️⃣ 머터리얼 인스턴스를 활용한 텍스처 변경 방법

    이제 머터리얼 인스턴스를 나이아가라에서 적용하는 과정을 단계별로 정리해보자.


    📌 Step 1: 머터리얼 생성 및 텍스처 파라미터화

    먼저 머터리얼을 생성하고, 텍스처를 파라미터화하여 변경할 수 있도록 설정해야 한다.

    🔹 머터리얼 생성 (M_NiagaraParam)

    1. 콘텐츠 브라우저에서 New Material을 생성하고, 이름을 M_NiagaraParam으로 설정.
    2. Texture Sample 노드를 추가하고, 원하는 기본 텍스처를 연결.
    3. Texture Sample 노드를 선택 → Convert to Parameter 클릭
      • 파라미터 이름을 "MainTexture"로 설정.
    4. Base Color와 Opacity에 연결한 후 저장.

    💡 이제 이 머터리얼을 기반으로 다양한 텍스처를 가진 인스턴스를 만들 수 있음!


    📌 Step 2: 머터리얼 인스턴스 생성

    1. M_NiagaraParam을 우클릭 → Create Material Instance 선택
    2. 새로운 인스턴스 이름을 MI_Niagara_Fire 로 설정.
    3. 머터리얼 인스턴스를 열어 "MainTexture" 파라미터를 활성화.
    4. 원하는 텍스처를 적용하고 저장.

    💡 예를 들어, 불꽃(Fire), 연기(Smoke), 폭발(Explosion) 등 각각 다른 텍스처를 적용 가능.


    📌 Step 3: 나이아가라에서 머터리얼 인스턴스 적용

    1. 나이아가라 시스템을 열고 Sprite Renderer 모듈을 선택.
    2. Material 슬롯에서 MI_Niagara_Fire 를 선택하여 할당.
    3. 이제 파티클이 MI_Niagara_Fire 의 텍스처를 기반으로 렌더링됨.

    💡 이제 이 머터리얼 인스턴스를 변경하면, 나이아가라에서도 즉시 반영됨!


    📌 Step 4: 다이나믹하게 텍스처 변경 적용

    머터리얼 인스턴스를 사용하면, 특정 조건에서 자동으로 텍스처를 변경할 수도 있다.

    방법 1️⃣ Set Material Parameter 모듈 사용

    1. Particle Update 섹션으로 이동.
    2. Set Material Parameter 모듈을 추가.
    3. "MainTexture" 파라미터를 선택하고 다른 텍스처를 동적으로 적용.

    💡 예제:

    • 불꽃이 처음에는 작은 불 텍스처를 사용하다가,
    • 시간이 지나면 더 큰 불 텍스처로 변경 가능.

    📌 최종 정리: 머터리얼 인스턴스를 활용한 텍스처 변경의 장점

    비교 항목 일반 머터리얼(Texture Sample) 머터리얼 인스턴스(Texture Parameter)

    머터리얼 인스턴스에서 변경 가능 여부 ❌ 불가능 (머터리얼 직접 수정 필요) ✅ 가능 (즉시 변경 가능)
    변경 시 다시 컴파일 필요 여부 🔄 필요 🚀 필요 없음
    실시간 텍스처 교체 가능 여부 ❌ 불가능 ✅ 가능

    이제 나이아가라에서 머터리얼 인스턴스를 활용하여 더욱 유연한 VFX를 만들어보자! 🚀

    댓글

Designed by Tistory.