Unreal: AoE

2. 이미터 조합

Kang Min Kim
CodeAlpha
11 min readJun 8, 2021

--

앞선 스토리에서 제작 한 이미터들을 하나의 시스템에 조합하여 포스가 모이는 듯한 연출을 표현해보도록 하자. (🛎️ Gabriel Aguiar 의 강의 내용을 요약 및 정리한 스토리 입니다.)

1. Niagara system

Niagara system 을 만들고 앞서 제작한 이미터들을 타임라인에 추가한다. 이름을 변경해 이미터의 특성을 명확하게 나타내도록 한다.

2. 이미터 스케일 및 회전 설정

01_GroundBeamAdd > Scale Mesh Size > Scale Factor (Vector from Float) > Value (Float from Curve)

01_GroundBeamAdd 이미터의 Particle Update 그룹에 Scale Mesh Size 모듈을 추가한 뒤 파라미터를 스케일을 그래프로 조절할 수 있도록 값들을 변경한다. 첫번째 키값을 잡고 키 보간을 Auto로 설정한다 마지막 키를 잡고 곡선형태의 그래프로 스케일 값을 조절한다.

01_CylinderAdd > VectorCurve > ZCurve > last key set to 0.88
01_CylinderAdd > VectorCurve > X&YCurve > last key set to 0.5

Alt 키를 누른 채로 Scale Mesh Size 를 01_CylinderAdd 이미터로 복사한다. ZCurve 의 마지막 키값을 다른 키값보다 조금 높게 설정해 Z 축의 소멸이 조금 더 빠르게 진행되도록 한다.

01_CylinderAdd > Particle Update > Mesh Rotation Force > Solve Rotational Forces and Velocity
01_CylinderAdd > Mesh Rotation Force > VectorCurve > First Key value set to 8> Last key value set to 12
01_GroundBeamAdd > Initialize Particle > Mesh Attributes > Mesh Scale set to 4

Mesh Rotation Force 모듈에서 XCurve, YCurve 의 시작 키 값을 삭제하고 ZCurve 의 첫 키를 Auto 로 보간 하고 값은 8로 설정하고 마지막 키 값은 12로 설정한다.

3. User Parameter 를 사용한 타이밍 조절

Parameter Tab > Add Float type User Parameter
NS_AoE_FireColumn01 > User Parameters > ImpactDelay set to 1.0
01_CylinderAdd > Initialize Particle > Lifetime edit to ImpactDelay
01_GroundBeamAdd > Initialize Particle > Lifetime edit to ImpactDelay
01_SparksINAdd > Emitter State > Loop Duration > Dived Float > A value edit to ImpactDelay > B value set to 1.7

Float type 의 사용자 파라미터를 만들고 기본값을 1로 설정해 이미터들의 수명에 이 값을 사용하도록 한다. 01_SparksINAdd 이미터의 Loop Duration 값을 수정해 실린더가 소멸할 때 동일한 타이밍에 소멸하도록 해준다.

스케일, 회전, 수명이 조절된 이미터들

결과물은 위와 같은 느낌이다. 스킬이 캐스팅 되기 전에 포스를 충전 또는 압축, 소멸 과 같은 키워드로 설명될 수 있을 것 같다.

4. Create Effect Climax

Copy from 01_CylinderAdd > 02_CylinderAdd > Loop Delay > ImpactDelay(user parameter)
02_CylinderAdd > Initialize Particle > lifetime set to 0.4
02_CylinderAdd > Scale Mesh Size > Adjust Curve

01_CylinderAdd 이미터를 복사해 이름을 02_~ 로 변경하고 수명과 매쉬 사이즈의 커브를 조절해 방출하는 느낌으로 변경한다. X 와 YCurve 는 동일한 키값이라 겹쳐 보인다.

Copy from 01_SparksINAdd > 02_SparksOUTAdd > Loop Delay > ImpactDelay(user parameter)
02_SparksOUTAdd > Velocity Strength > 100
02_sparksOUTAdd > Kill Particles in Volume & Spawn Rate disable > Add Spawn Burst Instantaneous
02_sparksOUTAdd > Spawn Count > Random Range Int > Mim 20 > Max 30
02_sparksOUTAdd > Set sphere Radius > Sphere Radius > 100
02_sparksOUTAdd > Sphere Location > Non Uniform Scale > Z > 0.2
02_sparksOUTAdd > Initialize Particle > Lifetime > Min 0.3 > Max 0.6
02_sparksOUTAdd > Add Velocity from Point > Velocity Strength > Random Range Float > Min 50 > Max 220

01_SparksINAdd 이미터로 부터 복사해 02_SparksOUTAdd 을 만든다. 파티클을 방출하는 형태로 속성들을 조절하는데 Sphere Location 모듈의 Z 값을 낮추면 바닥으로 깔리는 듯한 모양으로 파티클이 방출 된다.

Add Track > NE_Plane > Rename to 02_GroundBeamAdd
02_GroundBeamAdd > Scale Mesh Size > Adjust Curve
02_GroundBeamAdd > Lifetime > Color > Mesh Scale

NS_AoE_FireColumn01 에 NE_Plane 트랙을 추가하고 이름을 변경한 뒤 매쉬 사이즈 커브와 파티클 속성을 변경해 점점 커지는 형태로 연출한다. Color 의 A값(알파)을 조절하면 이미터의 투명도 조절이 가능하다.

Create New Simpe Sprite Burst template emitter > Rename to NE_Beam
NE_Beam > Sprite Renderer > Material > Mi_Beam01Add
NS_AoE_FireColumn01 > Track > Emitters > NE_Beam > Rename to 02_BeamFlash
02_BeamFlash > Loop Delay > ImpactDelay (user parameter)
02_BeamFlash > Initialize Particle > Color > Sprite Size Mode
NS_AoE_FireColumn01 Timeline tab

파티클과 바닥 이미터가 방출될때 순간 번쩍이는 효과를 주기 위한 이미터를 만들고 추가한다.

방출되는 클라이맥스 단계까지의 연출이 끝났다. 다음으로 내부 화염을 표현하기 위한 텍스처를 만들고 내부 화염을 표현한다.

Duplicate MI from Mi_Beam01Add > Rename to Mi_FireImpact02Add
Mi_FireImpact02Add > MainTexture > FireImpact02
NS_AoE_FireColumn01 > Copy from 02_BeamFlash Emitter > Rename to 02_FireImpactAdd > Emitter Properties > Local Space
02_FireImpactAdd > Sprite Rendering > Material > Mi_FireImpact02Add
02_FireImpactAdd > Initialize Particle > Lifetime > 0.4 > Value > 100.0
02_FireImpactAdd > Particle Spawn group > Add new Module > Set new or existing parameter directly
02_FireImpactAdd > Set Specific Parameters > (PARTICLES) Position
02_FireImpactAdd > Position > Make Vector > Z > 40.0
02_FireImpactAdd > Add Scale Sprite Size Module > Scale Factor > Vector 2DFrom Float > Value > Float from Curve
02_FireImpactAdd > Initialize Particle > Lifetime > 0.5 > Sprite Size > 150.0, 200

파티클의 위치를 변경하기 위해 Particle Spawn 그룹에서 particle 변수를 사용해 Vector 위치를 변경했다. 방출되는 형태를 위해 Scale Sprite Size 모듈에서 커브의 키 값을 0 > 1 로 변경 했고 Sprite Size 의 크기를 Y 축을 조금 길게 설정해준다.

내부 화염을 위처럼 표현했고 이제 재질을 수정해 일렁이는 왜곡 효과와 색상을 표현하는 단계로 넘어간다.

--

--