Unreal: AoE

3. Material and Color

Kang Min Kim
CodeAlpha
8 min readJun 11, 2021

--

Distortion, Dissolve 를 표현한 재질을 AoE에 적용하고 색상까지 추가해 AoE 의 비주얼 요소를 하나씩 완성해 보도록 한다. (🛎️ Gabriel Aguiar 의 강의 내용을 요약 및 정리한 스토리 입니다.)

1. Distortion and Dissolve Material

Copy from M_Particle > Rename to M_AoE_Niagara
Import Noise textures
M_AoE_Niagara Material Parameter Defaults Tab

M_Particle 재질을 복사해 Distortion 과 Dissolve 를 표현할 재질을 만든다. Noise 로 사용할 텍스처를 임포트 하고 파라미터들은 위와 같이 설정해 일렁이는 불꽃 느낌의 재질을 완성한다.

Dynamic Parameter node

Dynamic Parameter 노드는 Niagara 에서 재질의 vector 값을 직접적으로 수정할 수 있게 해준다. Param Names 에 입력한 이름들이 Default Value 의 각 값들과 매핑되며 여기서는 DistortionAmount : 0.1, DissolveAmount : 2.0 을 기본값으로 설정하였다.

이 재질의 핵심은 TexCoord 와 Time 노드를 이용해 V 축 + 방향으로 이동하는 텍스처를 만들어 내는 것에 있다.

2. Assign AoE Material to Niagara

Mi_FireImpact01Add material > General > Parent > M_AoE_Niagara
UV Seam issue
Main Texture > X-axis Tiling Method > Wrap

01_CylinderAdd 에 사용된 Mi_FireImpact01Add 재질의 Parent 를 변경하게 되면 UV seam 이 생기게 되는데 메인 텍스처의 타일링 방식을 기본값 Wrap 로 되돌리면 사라진다.

NS_AoE_FireColumn01 > 01_CylinderAdd > Particle Update > Dynamic Material Parameters
01_CylinderAdd > Dynamic Material Parameters > Adjust Dynamic Parameter Index
01_CylinderAdd > Dynamic Material Parameters > DissolveAmount > Float from Curve
02_CylinderAdd > Disable Scale Color > Add Dynamic Material Parameters module
02_CylinderAdd > Dynamic Material Parameters > DissolveAmount > Float from Curve

01, 02_CylinderAdd 이미터에 Dynamic Material Parameters 모듈을 추가하고 타이밍에 맞게 01_CylinderAdd 는 사라지는 커브를 02_CylinderAdd 에는 생성되는 커브를 만들어준다.

Mi_FireImpact02Add > General > Parent > M_AoE_Niagara
02_FireImpactAdd > Dynamic Material Parameters > DissolveAmount > Float from Curve
02_FireImpactAdd > Initialize Particle > Sprite Size > Adjuat X, Y value

내부 화염을 표현한 Mi_FireImpact02Add 재질의 Parent 재질도 변경해준다. 마찬가지로 Dynamic Material Parameter 를 추가하고 적절하게 커브를 조절한다. Sprite Size 를 조절해 방출되는 02_CylinderAdd 의 사이즈와 맞도록 크기를 조절한다.

3. Add Color

NS_AoE_FireColumn01 > Parameters > User Exposed > Add Linear Color Parameters (Color01, Color02)
NS_AoE_FireColumn01 > User Parameters > Color1 set to Orange > Color2 set to Red
01_CylinderAdd > Initialize Particle > Color > (USER) Color01
01_GroundBeamAdd > Initialize Particle > Color > (USER) Color01
01_GroundBeamAdd > Scale Color > Adjust Curve
01_SparksINAdd > Color > Random Range Linear Color > Min > (USER) Color01 > Max > (USER) Color02
02_CylinderAdd > Initialize Particle > Color > (USER) Color01
02_SparksOUTAdd > Initialize Particle > Color > Random Range Linear Color > Min > (USER) Color01 > Max > (USER) Color02
02_GroundBeamAdd > Initialize Particle > Color > (USER) Color01
02_GroundBeamAdd > Scale Color > Adjust Curve
02_BeamFlash > Initialize Particle > Color > (USER) Color01
02_FireImpactAdd > Initialize Particle > Color > (USER) Color01

NS_AoE_FireColumn01 에서 Linear Color 타입으로 컬러를 표현하기 위한 사용자 변수 2개를 만들고 색을 설정한다. 모든 이미터의 Color 에 사용자 변수로 만든 컬러를 지정해주고 Scale Color 로 강도를 조절한다.

--

--