메시 데이터 세트의 기본 사용법
스태틱·스켈레탈 메시의 표면 위치·노멀·정점 데이터를 읽어 파티클을 스폰하고 메시를 따라 이동시킵니다.
지금까지 파티클 자체 속성 제어를 중심으로 작업했다면, 이번에는 외부 3D 데이터와 결합하는 단계로 넘어갑니다.
핵심은 메시 데이터 세트(Mesh Data Interface)입니다.
이 기능을 사용하면 스태틱 메시(Static Mesh)와 스켈레탈 메시(Skeletal Mesh)의 기하학 정보를 나이아가라 파티클 시스템에서 직접 활용할 수 있습니다.
이는 파티클이 단순히 정해진 공간에서만 생성되고 움직이는 것이 아니라, 게임 월드 내의 특정 3D 오브젝트의 형태를 따르거나, 그 표면에서 상호작용하는 등 훨씬 더 유기적이고 사실적인 효과를 구현할 수 있게 해줍니다.
마치 메시 오브젝트에 파티클을 심는 것과 같다고 이해하시면 됩니다.
임의 위치에 흩뿌리는 대신 메시의 표면, 노멀, UV를 읽어 형상을 따라가는 효과를 만든다.
| 읽는 정보 | 파티클에 쓰는 값 | 맞는 효과 | 주의점 |
|---|---|---|---|
| Vertex/Surface Position | Spawn Position | 오브젝트 표면 발광, 먼지 | 좌표 공간과 스케일 확인 |
| Normal | Velocity 또는 Orientation | 표면 바깥으로 분출 | 노멀 방향이 뒤집히지 않는지 확인 |
| UV | 마스크와 색 샘플 | 특정 영역에서만 발생 | UV 채널과 텍스처 일치 |
| Triangle/Area | 분포 밀도 | 표면 균일 샘플링 | 작은 삼각형에 몰리지 않는지 확인 |
| Skeletal Update | 변형된 표면 추적 | 캐릭터 주변 효과 | 애니메이션 갱신 비용 |
메시 데이터 세트란 무엇인가요?
표면 위치만 읽으면 붙는 효과가 되고, 노멀과 UV까지 읽으면 방향과 영역 제어까지 가능해진다.
| 구성 | 읽을 수 있는 값 | 활용 | 검증 기준 |
|---|---|---|---|
| 참조 메시 | Static Mesh 또는 Skeletal Mesh | 효과를 붙일 형상 선택 | 원하는 메시가 DI에 연결됨 |
| 표면 샘플 | 위치, 삼각형, 버텍스 | 표면에서 입자 생성 | 분포가 특정 면에 몰리지 않음 |
| 방향 정보 | Normal, Tangent | 표면 바깥 방향 속도 | 입자가 안쪽으로 들어가지 않음 |
| UV 정보 | UV 좌표와 마스크 | 특정 재질 영역 제어 | 텍스처 채널과 UV가 일치 |
| 런타임 비용 | 갱신 빈도와 샘플 수 | 움직이는 메시 추적 | 샘플 수가 프레임 비용을 넘지 않음 |
메시 데이터 세트는 메시의 정점(Vertex), 면(Triangle), UV, 노멀(Normal) 같은 기하학 정보를 나이아가라가 읽을 수 있게 변환하는 데이터 인터페이스입니다.
이 정보를 사용하면 파티클을 메시 표면/내부에 스폰하거나 특정 지점을 따라 이동시키고, 메시 속성(색상, 재질)을 파티클 표현에 반영할 수 있습니다.
주로 사용되는 메시 데이터 인터페이스는 다음과 같습니다.
Niagara Data Interface Static Mesh: 변형되지 않는 고정된 형태의 3D 모델(스태틱 메시)의 데이터를 활용합니다. 건물, 바위, 무기 등 환경 오브젝트에 주로 사용됩니다.Niagara Data Interface Skeletal Mesh: 애니메이션되는 캐릭터나 움직이는 오브젝트(스켈레탈 메시)의 데이터를 활용합니다. 캐릭터의 피격 효과, 발자국 먼지, 또는 몬스터의 특정 부위에서 발생하는 효과 등에 사용됩니다.
메시 데이터 세트의 주요 활용 예시
메시 데이터 세트는 표면 샘플링, 위치 분포, 형태 기반 스폰처럼 여러 방식으로 활용할 수 있습니다.
메시 표면에 파티클 스폰하기
가장 흔하게 사용되는 방법 중 하나입니다.
메시의 표면(Surface)을 파티클의 스폰 위치로 활용하여, 마치 오브젝트에서 직접 파티클이 뿜어져 나오는 듯한 효과를 구현합니다.
-
사용 예시
- 뜨거운 바위에서 피어오르는 증기.
- 용암 표면에서 끓어오르는 거품.
- 건물이 파괴될 때 떨어지는 잔해 파티클.
- 수영하는 캐릭터의 몸에서 떨어지는 물방울.
메시의 속성 활용하기
메시의 정점 색상, UV 정보, 노멀 방향 등을 파티클에 전달하여 파티클의 초기 속성을 설정하거나, 동적인 변화를 부여할 수 있습니다.
-
사용 예시
- 메시의 텍스처 색상을 파티클의 초기 색상으로 사용하여, 오브젝트의 색상에 맞는 불꽃이나 스파크 효과를 낼 때.
- 메시의 노멀 방향을 파티클의 초기 속도 방향으로 사용하여, 표면에서 수직으로 튀어 오르는 효과를 낼 때.
메시를 따라 파티클 이동시키기
메시의 정점 위치나 본(Bone), 소켓(Socket)을 참조하여 파티클이 메시와 함께 움직이거나, 메시의 특정 부분을 따라 이동하게 할 수 있습니다.
-
사용 예시
- 캐릭터의 손에 불꽃이 따라다니는 마법 효과.
- 검의 날을 따라 흐르는 에너지 효과.
- 발자국이 찍히는 위치에만 발생하는 먼지 효과.
아래 다이어그램은 메시에서 어떤 샘플 지점을 읽을지 결정할 때 Surface, Volume, Vertex, Edge 옵션을 고르는 기준을 정리한 것입니다.
Static Mesh 데이터 인터페이스는 같은 메시라도 표면, 내부, 정점, 모서리 중 어디를 샘플링하느냐에 따라 완전히 다른 효과를 만듭니다.
- 표면에서 피어오르는 효과
Surface 증기, 먼지, 용암 거품처럼 메시 외곽에 붙어 나오는 파티클에 어울립니다.
- 부피 안을 채우는 효과
Volume 에너지 코어, 구름 덩어리, 내부 발광처럼 메시 내부 밀도가 중요한 표현에 사용합니다.
- 구조 점을 드러내는 효과
Vertex 정점 색상, 노멀, 고정된 포인트를 활용해야 할 때 위치가 안정적으로 유지됩니다.
- 윤곽과 균열을 따라가는 효과
Edge 모서리 하이라이트, 금이 간 표면, 검날 에너지처럼 메시의 윤곽선을 따라 파티클을 배치할 때 씁니다.
직접 해보기: 스태틱 메시에 파티클 스폰하기
간단한 예제를 통해 Niagara Data Interface Static Mesh를 사용하여 스태틱 메시 표면에 파티클을 스폰하는 방법을 알아보겠습니다.
새로운 나이아가라 시스템 생성: New system with empty system 템플릿을 사용하여 NS_MeshSurfaceSpawn이라는 이름의 빈 나이아가라 시스템을 만듭니다.
기본 모듈 추가: Initialize Particle, Spawn Rate (값: 50 정도), Sprite Renderer 모듈을 이미터에 추가합니다.
- 개요(Overview) 패널에서 이미터를 선택하고,
Emitter Update섹션 아래의+버튼을 클릭합니다. Niagara Data Interface Static Mesh를 검색하여 추가합니다.
- 추가된
Niagara Data Interface Static Mesh모듈을 선택합니다. - 디테일(Details) 패널에서
Source섹션 아래의Static Mesh속성을 찾습니다. Static Mesh옆의 드롭다운 메뉴를 클릭하거나 검색 버튼을 사용하여 원하는 스태틱 메시 에셋을 할당합니다. 예를 들어,SM_Cube또는SM_Sphere같은 엔진 기본 메시를 사용해 보세요.
- 개요(Overview) 패널에서 이미터의
Spawn섹션으로 이동합니다. +버튼을 클릭하고Location: Static Mesh모듈을 검색하여 추가합니다.- 이 모듈은
Niagara Data Interface Static Mesh에서 데이터를 받아 파티클의 스폰 위치를 결정합니다.
Location: Static Mesh모듈을 선택합니다.- 디테일 패널에서
Location Type속성을 찾습니다. Surface(표면),Volume(내부),Vertex(정점),Edge(모서리) 등 다양한 옵션이 있습니다. 여기서는Surface를 선택합니다.Generate Position On Mesh를 활성화하여 메시의 표면에서 랜덤하게 스폰되도록 합니다.
스태틱 메시 표면 스폰은 데이터 인터페이스와 위치 모듈이 함께 맞물려야 결과가 보입니다.
아래 흐름처럼 소스 지정, 샘플링 방식, 스폰 위치 반영을 한 줄로 이어 보면 누락된 설정을 빠르게 찾을 수 있습니다.
표면 스폰은 메시를 지정하는 일과 파티클 시작 위치를 계산하는 일을 분리해서 연결해야 한다.
- 1. Mesh Asset읽을 표면을 정한다
Mesh Asset SM_Cube , SM_Sphere 같은 메시 에셋을 먼저 고른다.
- 2. Data InterfaceEmitter가 메시를 읽게 한다
Data Interface Niagara Data Interface Static Mesh 가 표면 정보를 공급한다.
- 3. Location ModuleSpawn 위치로 소비한다
Location Module Location: Static Mesh 가 데이터 인터페이스 값을 파티클 시작점으로 쓴다.
- 4. Surface Mode표면 샘플링을 확인한다
Surface Mode 내부가 아니라 표면에서 생성되는지 Viewport에서 바로 검증한다.
| 안 보일 때 | 먼저 볼 곳 | 의미 |
|---|---|---|
| 메시가 비어 있음 | Static Mesh 데이터 인터페이스 | 샘플링할 표면 자체가 없어 Spawn 위치가 나오지 않는다. |
| 중심에서만 생성됨 | Location Type | Surface가 아니라 기본 위치나 다른 샘플 모드로 남아 있을 수 있다. |
| 생성은 되지만 티가 안 남 | Spawn Count, Lifetime, Size | 위치 연결은 맞지만 표현 값이 너무 작거나 짧을 수 있다. |
이제 뷰포트에서 여러분이 선택한 스태틱 메시의 표면에서 파티클들이 생성되어 솟아오르는 것을 볼 수 있을 겁니다.
파티클의 수명이나 속도 등을 조절하여 메시 표면을 따라 흐르거나, 튀어 오르는 등 다양한 효과를 연출해 보세요.
메시 데이터 세트 활용 팁
- 최적화 고려: 복잡한 메시나 너무 많은 파티클을 메시 표면에 스폰하면 성능에 부담을 줄 수 있습니다. 필요한 경우 메시의 LOD(Level of Detail) 설정을 조정하거나 파티클 수를 제한하는 것이 좋습니다.
- 머티리얼과의 연동: 메시 데이터 인터페이스는 메시의 UV나 Vertex Color와 같은 데이터를 파티클에 전달할 수 있습니다. 이를 파티클의 초기 색상이나 텍스처 좌표로 활용하여 메시의 질감을 파티클에 반영할 수 있습니다.
- 블루프린트 연동: 게임 월드에 배치된 특정 메시 액터의 참조를
Niagara Data Interface Static Mesh에 전달하여, 런타임에 동적으로 메시를 변경하거나 메시의 움직임에 따라 파티클이 반응하도록 할 수 있습니다.
메시 데이터 세트는 3D 오브젝트의 표면, 위치, 방향 정보를 파티클 생성이나 이동 기준으로 사용할 때 필요합니다.
효과 범위가 넓어지는 만큼 입력 메시와 샘플링 기준을 명확히 두어야 합니다.
메시 데이터 세트는 표면 샘플링, 속성 읽기, 이동 방향, 스폰 범위, 검증 뷰를 함께 확인해야 메시 기반 효과가 안정적입니다.
메시 표면에서 파티클을 만들 때는 소스, 샘플 위치, 읽을 속성, 속도 방향, 검증 화면이 한 묶음으로 맞아야 한다. 하나만 틀려도 스폰이 한쪽으로 몰리거나 메시에서 떨어져 보인다.
- Mesh
사용할 메시, 좌표 공간, 스케일 기준을 먼저 고정한다.
- Surface
표면, 정점, 삼각형 중 어떤 위치를 뽑을지 정한다.
- Attribute
노멀, UV, 색상, 바운드 중 필요한 값을 연결한다.
- Motion
표면 밖, 표면을 따라 이동, 낙하 중 방향을 고른다.
- Validate
프리뷰에서 밀도, 뒤집힌 방향, 성능 비용을 확인한다.
| 목적 | 선택 기준 | 연결 값 | 실패 신호 |
|---|---|---|---|
| 표면 스폰 | 오브젝트 표면에서 자연스럽게 시작 | Surface, Normal | 한 면에 몰림, 내부 생성 |
| 방향 반응 | 표면 밖으로 튀거나 흐르는 효과 | Normal, Tangent | 방향 반전, 속도 튐 |
| 영역 구분 | 재질 영역이나 색으로 밀도 제어 | UV, Vertex Color | 원치 않는 영역 반응 |
메시 데이터 세트는 표면, 정점, 위치 기준을 명확히 잡아야 하므로, 스폰 기준 선택표로 정리합니다.
메시 데이터는 파티클을 공간에 붙이는 기준이다. 표면, 정점, UV, 색상, 움직임 중 무엇을 읽을지 먼저 정해야 샘플 위치와 렌더 결과가 흔들리지 않는다.
- 소스 고정
입력 메시가 런타임에 바뀌는지, 고정 에셋인지 먼저 나눈다.
- 샘플 방식
표면 분포와 노멀 방향이 의도와 맞는지 프리뷰로 본다.
- 비용 경계
복잡한 메시, 스켈레탈 추적, 높은 입자 수를 함께 계산한다.
| 기준 | 맞는 상황 | 필수 확인 |
|---|---|---|
| Static Mesh | 움직임이 적은 오브젝트 표면에서 생성 | 스케일, 좌표 공간, 삼각형 밀도 |
| Skeletal Mesh | 캐릭터 애니메이션과 함께 따라가는 효과 | 스킨 변형, 소켓, 프레임 비용 |
| Mesh 속성 | UV, 색상, 노멀로 반응 영역을 나눔 | 속성 누락, 좌표 반전, 영역 경계 |