캐릭터와 무기 관련 간단한 이펙트
애니메이션과 소켓에 차징·피격·무기 궤적·총구 화염·탄피 효과를 연결해 캐릭터 액션의 시각 피드백을 구현합니다.
캐릭터와 무기는 플레이어가 자주 보는 대상이므로, 움직임과 액션에 반응하는 파티클 이펙트가 피드백 역할을 합니다.
발자국이나 마법 효과처럼 캐릭터·무기 이펙트도 블루프린트와 애니메이션 시스템과의 연동을 기준으로 설계해야 합니다.
이 절에서는 캐릭터와 무기에 적용할 수 있는 간단하지만 효과적인 파티클 이펙트들을 제작하는 방법에 대해 알아보겠습니다.
게임에서 캐릭터와 무기는 플레이어가 가장 많이 보고 상호작용하는 핵심 요소입니다. 이들의 움직임, 상태, 액션에 반응하는 파티클 이펙트는 스폰 타이밍, 소켓 부착, 상태 전환, 비용 제한에 맞춰 즉각적인 피드백을 제공합니다.
- Anim Notify와 소켓 기반 이펙트 연결
캐릭터 관련 이펙트는 주로 캐릭터의 움직임, 상태 변화, 특정 스킬 사용 시 발생합니다. 2 무기 관련 이펙트는 공격 액션, 피격, 발사 등 무기의 기능과 직접적으로 연결됩니다. 3 트리거 이벤트와 스폰 노드가 달라 파라미터 누락을 먼저 봅니다. 4 Anim Notify는 공격 판정, 무기 소켓, 이펙트 수명이 맞물리는 지점에 배치하고 종료 Notify까지 함께 둡니다.
- 캐릭터 관련 이펙트 제작
캐릭터 관련 이펙트는 주로 캐릭터의 움직임, 상태 변화, 특정 스킬 사용 시 발생합니다.
- 무기 관련 이펙트 제작
무기 관련 이펙트는 공격 액션, 피격, 발사 등 무기의 기능과 직접적으로 연결됩니다.
- 캐릭터/무기 이펙트 연동 기준표
트리거 이벤트와 스폰 노드가 달라 파라미터 누락을 먼저 봅니다.
- 최적화 및 연동 팁
Anim Notify는 공격 판정, 무기 소켓, 이펙트 수명이 맞물리는 지점에 배치하고 종료 Notify까지 함께 둡니다.
- 전투 이펙트 연동 검수
무기 소켓, Montage Section, Blueprint 이벤트 이름을 맞춰야 이펙트가 판정 프레임과 어긋나지 않습니다. NS SkillCharge는 Spawn Rate를 낮게 시작하고 차징 시간이 늘수록 밀도와 밝기를 단계적으로 올립니다. 초기화 단계에서는 User.ChargeTime, 소켓 위치, 루프 수명 값을 받아 스킬 취소 시 즉시 줄어들게 합니다.
캐릭터 관련 이펙트 제작
캐릭터 관련 이펙트는 주로 캐릭터의 움직임, 상태 변화, 특정 스킬 사용 시 발생합니다.
스킬 시전/차징(Charging) 이펙트
스킬을 사용하기 위해 힘을 모으거나 대기할 때 나타나는 효과입니다.
-
나이아가라 시스템 (
NS_SkillCharge)-
스폰/초기화
Spawn Rate: 낮게 시작하여 차징 시간에 따라 점차 증가.Lifetime: 비교적 짧게 (0.5~1.0초).Sprite Size: 작게 시작하여 크게.Color: 스킬의 속성(예: 불 스킬은 주황, 전기 스킬은 파랑).Initial Location: 캐릭터 주변 (Sphere또는Cylinder형태) 또는 특정 소켓(손, 발)에 부착.Initial Velocity: 캐릭터를 향해 안쪽으로 모이거나, 회전하면서 위로 솟아오르도록.
-
물리/힘
Add Force: 캐릭터의 중심을 향해 끌어당기는 힘을 적용하여 에너지가 모이는 느낌을 줍니다. (음의 힘 적용)Noise Force/Curl Noise Force: 에너지가 휘몰아치거나 불규칙하게 진동하는 느낌을 줍니다.
-
시간에 따른 변화
Scale Color: 시간에 따라 색상이 밝아지거나, 마지막에 강렬하게 빛나도록 조절.Scale Sprite Size: 파티클이 생성되었다가 커지면서 캐릭터에게 흡수되는 느낌.
- 렌더링:
Additive또는Translucent블렌드 모드의Unlit머티리얼을 사용하여 발광하는 에너지 또는 스파크 텍스처를 사용합니다. -
블루프린트 연동
- 캐릭터 블루프린트에서 스킬 차징 상태에 따라
Niagara Particle System컴포넌트의Spawn Rate,Color,Scale등 사용자 변수를 동적으로 업데이트합니다. - 차징이 완료되거나 취소될 때
Deactivate노드를 호출하여 이펙트를 중지합니다.
- 캐릭터 블루프린트에서 스킬 차징 상태에 따라
-
스폰/초기화
피격(Hit/Impact) 이펙트
캐릭터가 공격받았을 때 발생하는 짧고 강렬한 효과입니다.
-
나이아가라 시스템 (
NS_CharacterHit)-
스폰/초기화
Spawn Burst Instantaneous: 필수. 한 번에 스폰.Spawn Count는 피격 강도에 따라 조절.Lifetime: 매우 짧게 (0.1~0.3초).Sprite Size: 작게 시작하여 빠르게 확장.Color: 피격 속성(예: 물리 공격은 붉은색 스파크, 독은 녹색, 마법은 보라색).
-
물리/힘
Add Velocity: 피격 방향의 반대 또는 사방으로 강하게 퍼지도록.Add Gravity Force/Drag: 피격 파편이 빠르게 떨어지고 사라지도록.
-
시간에 따른 변화
Scale Color: 순간적으로 밝게 터졌다가 어둡고 투명하게 사라지도록.Scale Sprite Size: 빠르게 확장하고 수축하는 충격파 느낌.
- 렌더링:
Additive또는Translucent블렌드 모드의Unlit머티리얼. 스파크, 파편, 피, 연기 등의 텍스처 사용. -
블루프린트 연동
- 캐릭터의
OnTakeDamage또는Event Hit이벤트에서Spawn System at Location노드를 호출합니다. Location: 피격 지점 (Hit Result의Impact Point).Rotation: 피격 노멀 (Hit Result의Impact Normal).Parameters핀을 통해ImpactStrength,HitNormal,DamageType등 피격 정보를 전달하여 나이아가라에서 이를 활용해 이펙트의 강도나 종류를 조절합니다.
- 캐릭터의
-
스폰/초기화
무기 관련 이펙트 제작
무기 관련 이펙트는 공격 액션, 피격, 발사 등 무기의 기능과 직접적으로 연결됩니다.
무기 휘두르기(Swing/Trail) 이펙트
검, 도끼 등 근접 무기를 휘두를 때 발생하는 잔상 또는 에너지 궤적 효과입니다.
-
나이아가라 시스템 (
NS_WeaponSwing)-
스폰/초기화
Spawn Rate: 보통 (20~50).Lifetime: 짧게 (0.2~0.5초).Sprite Size: 작게 시작하여 크게.Color: 무기/스킬 속성 (예: 불검은 주황, 얼음검은 파랑, 일반 검은 흰색/회색).
-
물리/힘
Add Velocity: 무기 이동 방향으로, 또는 회전 방향으로.Noise Force: 약하게 적용하여 흔들리는 느낌.
-
시간에 따른 변화
Scale Color: 수명에 따라 투명하게 사라지도록.Scale Sprite Size: 수명에 따라 퍼지면서 커지도록.
-
렌더링
Sprite Renderer: 에너지, 스파크, 바람 가르기 텍스처.Ribbon Renderer또는Trail Renderer: 무기의 움직임을 따라가는 궤적을 만드는 데 필수적입니다. 무기의 특정 소켓에 부착하여 사용합니다.Material:Additive또는Translucent블렌드 모드의Unlit머티리얼을 사용합니다.
-
블루프린트 연동
- 애니메이션 몽타주(
Anim Montage)에서 무기를 휘두르는 애니메이션 구간에 애니메이션 노티파이(Anim Notify)를 추가합니다. - 이 노티파이에서
Niagara Particle System컴포넌트의Activate노드를 호출하여 이펙트를 켜고, 스윙이 끝나는 노티파이에서Deactivate노드를 호출합니다. - 무기 소켓에
Spawn System Attached를 사용하여 파티클 시스템을 부착합니다.
- 애니메이션 몽타주(
-
스폰/초기화
총구 화염(Muzzle Flash) 및 탄피 이펙트
총기 발사 시 총구에서 뿜어져 나오는 화염과 탄피가 튀어나가는 효과입니다.
-
나이아가라 시스템 (
NS_MuzzleFlash)-
스폰/초기화
Spawn Burst Instantaneous: 필수. 한 번에 소량 스폰.Lifetime: 극히 짧게 (0.05~0.1초).Sprite Size: 작게 시작하여 빠르게 확장.Color: 밝은 주황/노랑/빨강.
-
물리/힘
Add Velocity: 총구 전방으로 강하게, 미세한 노이즈 추가.
-
시간에 따른 변화
Scale Color: 순간적으로 최대 밝기 -> 즉시 투명하게 사라지도록.Scale Sprite Size: 빠르게 확장했다가 사라지도록.
- 렌더링:
Additive블렌드 모드의Unlit머티리얼. 총구 화염 텍스처(주로 SubUV). Light Renderer: 짧은 시간 동안 총구 주변을 밝히는 용도로 활용. (성능 주의)
-
스폰/초기화
-
탄피 배출 나이아가라 시스템 (
NS_ShellEject)-
스폰/초기화
Spawn Burst Instantaneous: 1개 스폰.Lifetime: 짧게 (0.5~1.0초).Mesh Renderer사용.Mesh Scale을 실제 탄피 크기에 맞게 작게 설정.Initial Velocity: 탄피 배출구에서 옆/뒤로 튕겨나가도록.
-
물리/힘
Add Gravity Force: 강하게 적용하여 탄피가 지면으로 떨어지도록.Drag: 적당히.Collision: 필수.Restitution및Friction을 조절하여 지면에 닿았을 때 튕기거나 구르도록.Set New or Existing Parameter(Physics)에서Angular Velocity를 추가하여 탄피가 회전하며 떨어지도록.
- 렌더링:
Mesh Renderer에 탄피 메쉬 할당.Default Lit셰이딩 모델 사용.
-
스폰/초기화
-
블루프린트 연동
- 총기 블루프린트나 캐릭터 발사 로직에서
Spawn System Attached(총구 화염) 및Spawn System at Location(탄피 배출) 노드를 사용합니다. - 총구
Socket에 부착하고, 발사 시점에 정확히 스폰되도록 합니다.
- 총기 블루프린트나 캐릭터 발사 로직에서
캐릭터/무기 이펙트 연동 기준표
전투 이펙트는 예쁜 효과를 붙이는 일이 아니라 게임 이벤트와 위치, 수치가 정확히 맞을 때 설득력이 생긴다.
| 효과 | 트리거 | 위치 기준 | 전달 값 |
|---|---|---|---|
| Charge | 입력 시작 또는 Notify | 손, 무기, 캐릭터 중심 | ChargeTime, Power |
| Weapon Swing | Anim Notify State | 무기 소켓과 궤적 | Trail on/off, Speed |
| Hit Impact | Damage/Hit Event | Impact Point와 Normal | DamageType, Surface |
| Muzzle Flash | Fire Event | 총구 소켓 | Direction, Intensity |
| Shell Eject | Fire Event | 탄피 소켓 | Initial Velocity, Spin |
캐릭터와 무기 이펙트는 같은 나이아가라 기능을 써도 트리거 이벤트와 스폰 노드 선택이 다르기 때문에, 구현 단계에서 파라미터 누락이 자주 발생합니다.
아래 기준표로 효과 유형별 연결 규칙을 고정해 두면 디버깅 속도를 크게 줄일 수 있습니다.
아래 다이어그램은 전투 VFX를 반복 제작할 때 이벤트, 소켓, 사용자 파라미터, 수명 제어를 한 흐름으로 점검하는 방법입니다.
반복 재생 효과와 one-shot 효과는 켜는 시점뿐 아니라 끄는 시점과 남는 입자까지 다르게 관리한다.
| 구간 | 확인할 것 | 좋은 상태 | 실패 신호 |
|---|---|---|---|
| Start | 입력, Montage Notify, Fire Event | 액션과 같은 프레임에 시작 | 타이밍이 늦거나 먼저 나옴 |
| Attach | Socket, Component, Transform | 무기·캐릭터를 따라감 | 월드 위치에 고정됨 |
| Params | 강도, 방향, 표면, 색 | 게임 값이 시각 강도에 반영 | 항상 같은 효과 |
| Run | Loop 또는 One-shot | 반복/단발 정책이 분명함 | Loop가 끊기거나 누적됨 |
| End | Deactivate, Auto Destroy, Pooling | 잔여 입자 정리 | 다음 액션까지 남음 |
최적화 및 연동 팁
- 애니메이션 노티파이 적극 활용: 캐릭터/무기 관련 이펙트는 애니메이션과 완벽한 타이밍을 맞추는 것이 중요하므로, 애니메이션 시퀀스/몽타주에
Anim Notify를 추가하여 나이아가라 시스템을 활성화/비활성화하거나,Spawn System노드를 호출합니다. - 데이터 인터페이스 활용: 캐릭터의 속도, 현재 체력, 무기 정보 등을
Niagara Data Interface Actor나 커스텀 데이터 인터페이스를 통해 직접 나이아가라 시스템으로 가져와 이펙트를 동적으로 조절합니다. - 조건부 스폰: 특정 조건(예: 공격이 빗나갔을 때, 낮은 체력일 때)에서만 이펙트가 발생하도록 블루프린트에서
Branch노드를 활용하여 스폰 로직을 제어합니다. - 오브젝트 풀링: 총구 화염이나 피격 이펙트처럼 짧은 시간 동안 매우 자주 발생하는 효과는
Niagara Component Pool이나 커스텀 풀링 시스템을 사용하여 성능 오버헤드를 줄입니다. World Scale고려: 캐릭터와 무기는 게임 월드의 스케일에 직접적인 영향을 받으므로, 파티클의 크기나 속도 등을 월드 스케일에 맞게 조절합니다.
캐릭터와 무기 관련 파티클 이펙트는 게임의 액션과 플레이어의 경험을 직접적으로 향상시키는 중요한 요소입니다.
이펙트가 게임플레이에 자연스럽게 녹아들고, 플레이어에게 시각적으로 즐거운 피드백을 제공하도록 끊임없이 실험하고 개선하는 것이 중요합니다.
다양한 모듈의 조합과 블루프린트 연동을 통해 여러분은 캐릭터와 무기에 생동감을 불어넣을 수 있을 것입니다.
캐릭터와 무기 이펙트는 애니메이션 타이밍과 게임 판정을 맞추는 것이 핵심입니다.
아래 다이어그램은 무기 이펙트의 동기화 기준입니다.
트레일과 충격 이펙트는 애니메이션 이벤트 기준으로 켜지고, 실제 데미지 판정과 어긋나지 않아야 한다.
| 시간점 | 게임 이벤트 | Niagara 동작 | 검증 기준 |
|---|---|---|---|
| Input | 공격 명령과 취소 구간 | 차징 또는 준비 이펙트 시작 | 입력과 시각 시작이 맞음 |
| Notify Start | 몽타주 시작 Notify | 무기 트레일 Activate | 트레일이 늦지 않음 |
| Hit | 판정 또는 충돌 이벤트 | Impact VFX와 데미지 연결 | 이펙트와 실제 판정이 같은 순간 |
| Notify End | 스윙 종료 Notify | Trail Deactivate | 잔상이 과하게 남지 않음 |
| Cleanup | 풀 반환 또는 Auto Destroy | 남은 파티클 정리 | 반복 공격에서 누적 없음 |
실제 프로젝트에서는 노티파이, 소켓, 파라미터, 풀링, 성능 로그를 같은 체크리스트로 묶어야 반복 제작 품질이 안정됩니다.
차징, 피격, 스윙, 총구 화염은 멋보다 타이밍이 먼저입니다. 애니메이션 노티파이, 소켓, 사용자 파라미터, 수명 제어를 같은 순서로 점검합니다.
- 1입력 이벤트
trigger 스킬 시작, 피격, 발사, 장전처럼 게임 판정이 만든 이벤트만 출발점으로 둡니다.
- 2노티파이 구간
notify 몽타주 프레임과 판정 프레임이 어긋나면 먼저 노티파이 위치를 조정합니다.
- 3부착 기준
socket 손, 무기 끝, 총구, 탄피 배출구 소켓 이름을 블루프린트와 동일하게 맞춥니다.
- 4파라미터
params HitNormal , DamageType , ChargeRatio 가 시스템에 도착하는지 봅니다.
- 5종료 처리
cleanup Deactivate , 풀 반환, 지속 잔상 제거까지 한 액션 안에서 확인합니다.
- 6증상별 우선 복구
입력 즉시 컴포넌트를 켜고, 완료 노티파이는 밝기나 스케일만 바꿉니다. 시작과 끝 소켓을 분리하고, 무기 교체 시 소켓 존재를 먼저 검사합니다. Impact Normal 과 공격자 방향 벡터 중 어느 값을 쓰는지 통일합니다. 극짧은 수명, 자동 제거, 풀 반환 로그를 함께 확인합니다.
- 7차징이 늦다
입력 즉시 컴포넌트를 켜고, 완료 노티파이는 밝기나 스케일만 바꿉니다.
- 8스윙 궤적이 튄다
시작과 끝 소켓을 분리하고, 무기 교체 시 소켓 존재를 먼저 검사합니다.
- 9피격 방향이 틀리다
Impact Normal 과 공격자 방향 벡터 중 어느 값을 쓰는지 통일합니다.
- 10총구 섬광이 남는다
극짧은 수명, 자동 제거, 풀 반환 로그를 함께 확인합니다.
캐릭터와 무기 이펙트는 애니메이션 노티파이, 소켓 위치, 재생 수명이 맞아야 액션 타이밍이 선명하게 보입니다.
차징, 피격, 트레일, 총구 화염은 애니메이션 노티파이와 소켓 위치를 기준으로 재생 시점을 고정해야 합니다.
- 차징
Charge 손이나 무기 소켓에 붙이고 User.ChargeAmount로 크기와 밝기를 키웁니다.
- 피격
Hit Hit Location과 Normal을 받아 피격 방향에 맞는 Burst를 만듭니다.
- 무기 트레일
Trail Ribbon Renderer로 스윙 시작과 끝 프레임을 정확히 자릅니다.
- 총구 화염
Muzzle Muzzle Socket에서 짧은 Lifetime과 밝은 Emissive로 순간성을 만듭니다.
- 방향
소켓 Forward 축과 파티클 초기 Velocity 방향이 맞는지 봅니다.
- 지연
Notify 프레임과 시스템 Warmup 때문에 효과가 늦게 켜지지 않는지 확인합니다.
- 반복
연사와 연속 공격에서 컴포넌트가 누적 생성되지 않도록 재사용합니다.
캐릭터와 무기 이펙트는 입력 이벤트, 부착 위치, 렌더 비용, 재현 기준으로 점검합니다.