본문으로 건너뛰기

안동민 개발노트

본문 시작

캐릭터와 무기 관련 간단한 이펙트

애니메이션과 소켓에 차징·피격·무기 궤적·총구 화염·탄피 효과를 연결해 캐릭터 액션의 시각 피드백을 구현합니다.

캐릭터와 무기는 플레이어가 자주 보는 대상이므로, 움직임과 액션에 반응하는 파티클 이펙트가 피드백 역할을 합니다.

발자국이나 마법 효과처럼 캐릭터·무기 이펙트도 블루프린트와 애니메이션 시스템과의 연동을 기준으로 설계해야 합니다.

이 절에서는 캐릭터와 무기에 적용할 수 있는 간단하지만 효과적인 파티클 이펙트들을 제작하는 방법에 대해 알아보겠습니다.

캐릭터와 무기 반응 이펙트

게임에서 캐릭터와 무기는 플레이어가 가장 많이 보고 상호작용하는 핵심 요소입니다. 이들의 움직임, 상태, 액션에 반응하는 파티클 이펙트는 스폰 타이밍, 소켓 부착, 상태 전환, 비용 제한에 맞춰 즉각적인 피드백을 제공합니다.

  1. Anim Notify와 소켓 기반 이펙트 연결

    캐릭터 관련 이펙트는 주로 캐릭터의 움직임, 상태 변화, 특정 스킬 사용 시 발생합니다. 2 무기 관련 이펙트는 공격 액션, 피격, 발사 등 무기의 기능과 직접적으로 연결됩니다. 3 트리거 이벤트와 스폰 노드가 달라 파라미터 누락을 먼저 봅니다. 4 Anim Notify는 공격 판정, 무기 소켓, 이펙트 수명이 맞물리는 지점에 배치하고 종료 Notify까지 함께 둡니다.

  2. 캐릭터 관련 이펙트 제작

    캐릭터 관련 이펙트는 주로 캐릭터의 움직임, 상태 변화, 특정 스킬 사용 시 발생합니다.

  3. 무기 관련 이펙트 제작

    무기 관련 이펙트는 공격 액션, 피격, 발사 등 무기의 기능과 직접적으로 연결됩니다.

  4. 캐릭터/무기 이펙트 연동 기준표

    트리거 이벤트와 스폰 노드가 달라 파라미터 누락을 먼저 봅니다.

  5. 최적화 및 연동 팁

    Anim Notify는 공격 판정, 무기 소켓, 이펙트 수명이 맞물리는 지점에 배치하고 종료 Notify까지 함께 둡니다.

  6. 전투 이펙트 연동 검수

    무기 소켓, 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 ResultImpact Point).
      • Rotation: 피격 노멀 (Hit ResultImpact 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: 필수. RestitutionFriction을 조절하여 지면에 닿았을 때 튕기거나 구르도록.
      • Set New or Existing Parameter (Physics)에서 Angular Velocity를 추가하여 탄피가 회전하며 떨어지도록.
    • 렌더링: Mesh Renderer에 탄피 메쉬 할당. Default Lit 셰이딩 모델 사용.
  • 블루프린트 연동
    • 총기 블루프린트나 캐릭터 발사 로직에서 Spawn System Attached (총구 화염) 및 Spawn System at Location (탄피 배출) 노드를 사용합니다.
    • 총구 Socket에 부착하고, 발사 시점에 정확히 스폰되도록 합니다.

캐릭터/무기 이펙트 연동 기준표

캐릭터·무기 VFX는 이벤트, 소켓, 파라미터, 수명을 맞춘다

전투 이펙트는 예쁜 효과를 붙이는 일이 아니라 게임 이벤트와 위치, 수치가 정확히 맞을 때 설득력이 생긴다.

효과트리거위치 기준전달 값
Charge입력 시작 또는 Notify손, 무기, 캐릭터 중심ChargeTime, Power
Weapon SwingAnim Notify State무기 소켓과 궤적Trail on/off, Speed
Hit ImpactDamage/Hit EventImpact Point와 NormalDamageType, Surface
Muzzle FlashFire Event총구 소켓Direction, Intensity
Shell EjectFire Event탄피 소켓Initial Velocity, Spin

캐릭터와 무기 이펙트는 같은 나이아가라 기능을 써도 트리거 이벤트와 스폰 노드 선택이 다르기 때문에, 구현 단계에서 파라미터 누락이 자주 발생합니다.

아래 기준표로 효과 유형별 연결 규칙을 고정해 두면 디버깅 속도를 크게 줄일 수 있습니다.

아래 다이어그램은 전투 VFX를 반복 제작할 때 이벤트, 소켓, 사용자 파라미터, 수명 제어를 한 흐름으로 점검하는 방법입니다.

전투 VFX는 시작, 부착, 값 전달, 종료 타이밍을 함께 점검한다

반복 재생 효과와 one-shot 효과는 켜는 시점뿐 아니라 끄는 시점과 남는 입자까지 다르게 관리한다.

구간확인할 것좋은 상태실패 신호
Start입력, Montage Notify, Fire Event액션과 같은 프레임에 시작타이밍이 늦거나 먼저 나옴
AttachSocket, Component, Transform무기·캐릭터를 따라감월드 위치에 고정됨
Params강도, 방향, 표면, 색게임 값이 시각 강도에 반영항상 같은 효과
RunLoop 또는 One-shot반복/단발 정책이 분명함Loop가 끊기거나 누적됨
EndDeactivate, Auto Destroy, Pooling잔여 입자 정리다음 액션까지 남음

최적화 및 연동 팁

  • 애니메이션 노티파이 적극 활용: 캐릭터/무기 관련 이펙트는 애니메이션과 완벽한 타이밍을 맞추는 것이 중요하므로, 애니메이션 시퀀스/몽타주에 Anim Notify를 추가하여 나이아가라 시스템을 활성화/비활성화하거나, Spawn System 노드를 호출합니다.
  • 데이터 인터페이스 활용: 캐릭터의 속도, 현재 체력, 무기 정보 등을 Niagara Data Interface Actor나 커스텀 데이터 인터페이스를 통해 직접 나이아가라 시스템으로 가져와 이펙트를 동적으로 조절합니다.
  • 조건부 스폰: 특정 조건(예: 공격이 빗나갔을 때, 낮은 체력일 때)에서만 이펙트가 발생하도록 블루프린트에서 Branch 노드를 활용하여 스폰 로직을 제어합니다.
  • 오브젝트 풀링: 총구 화염이나 피격 이펙트처럼 짧은 시간 동안 매우 자주 발생하는 효과는 Niagara Component Pool이나 커스텀 풀링 시스템을 사용하여 성능 오버헤드를 줄입니다.
  • World Scale 고려: 캐릭터와 무기는 게임 월드의 스케일에 직접적인 영향을 받으므로, 파티클의 크기나 속도 등을 월드 스케일에 맞게 조절합니다.

캐릭터와 무기 관련 파티클 이펙트는 게임의 액션과 플레이어의 경험을 직접적으로 향상시키는 중요한 요소입니다.

이펙트가 게임플레이에 자연스럽게 녹아들고, 플레이어에게 시각적으로 즐거운 피드백을 제공하도록 끊임없이 실험하고 개선하는 것이 중요합니다.

다양한 모듈의 조합과 블루프린트 연동을 통해 여러분은 캐릭터와 무기에 생동감을 불어넣을 수 있을 것입니다.


캐릭터와 무기 이펙트는 애니메이션 타이밍과 게임 판정을 맞추는 것이 핵심입니다.

아래 다이어그램은 무기 이펙트의 동기화 기준입니다.

무기 이펙트는 입력, Notify, 히트 판정, 종료를 같은 시간축에 둔다

트레일과 충격 이펙트는 애니메이션 이벤트 기준으로 켜지고, 실제 데미지 판정과 어긋나지 않아야 한다.

시간점게임 이벤트Niagara 동작검증 기준
Input공격 명령과 취소 구간차징 또는 준비 이펙트 시작입력과 시각 시작이 맞음
Notify Start몽타주 시작 Notify무기 트레일 Activate트레일이 늦지 않음
Hit판정 또는 충돌 이벤트Impact VFX와 데미지 연결이펙트와 실제 판정이 같은 순간
Notify End스윙 종료 NotifyTrail Deactivate잔상이 과하게 남지 않음
Cleanup풀 반환 또는 Auto Destroy남은 파티클 정리반복 공격에서 누적 없음

실제 프로젝트에서는 노티파이, 소켓, 파라미터, 풀링, 성능 로그를 같은 체크리스트로 묶어야 반복 제작 품질이 안정됩니다.

캐릭터·무기 이펙트 검수

차징, 피격, 스윙, 총구 화염은 멋보다 타이밍이 먼저입니다. 애니메이션 노티파이, 소켓, 사용자 파라미터, 수명 제어를 같은 순서로 점검합니다.

  1. 1
    입력 이벤트

    trigger 스킬 시작, 피격, 발사, 장전처럼 게임 판정이 만든 이벤트만 출발점으로 둡니다.

  2. 2
    노티파이 구간

    notify 몽타주 프레임과 판정 프레임이 어긋나면 먼저 노티파이 위치를 조정합니다.

  3. 3
    부착 기준

    socket 손, 무기 끝, 총구, 탄피 배출구 소켓 이름을 블루프린트와 동일하게 맞춥니다.

  4. 4
    파라미터

    params HitNormal , DamageType , ChargeRatio 가 시스템에 도착하는지 봅니다.

  5. 5
    종료 처리

    cleanup Deactivate , 풀 반환, 지속 잔상 제거까지 한 액션 안에서 확인합니다.

  6. 6
    증상별 우선 복구

    입력 즉시 컴포넌트를 켜고, 완료 노티파이는 밝기나 스케일만 바꿉니다. 시작과 끝 소켓을 분리하고, 무기 교체 시 소켓 존재를 먼저 검사합니다. Impact Normal 과 공격자 방향 벡터 중 어느 값을 쓰는지 통일합니다. 극짧은 수명, 자동 제거, 풀 반환 로그를 함께 확인합니다.

  7. 7
    차징이 늦다

    입력 즉시 컴포넌트를 켜고, 완료 노티파이는 밝기나 스케일만 바꿉니다.

  8. 8
    스윙 궤적이 튄다

    시작과 끝 소켓을 분리하고, 무기 교체 시 소켓 존재를 먼저 검사합니다.

  9. 9
    피격 방향이 틀리다

    Impact Normal 과 공격자 방향 벡터 중 어느 값을 쓰는지 통일합니다.

  10. 10
    총구 섬광이 남는다

    극짧은 수명, 자동 제거, 풀 반환 로그를 함께 확인합니다.

캐릭터와 무기 이펙트는 애니메이션 노티파이, 소켓 위치, 재생 수명이 맞아야 액션 타이밍이 선명하게 보입니다.

캐릭터와 무기 FX 연동표

차징, 피격, 트레일, 총구 화염은 애니메이션 노티파이와 소켓 위치를 기준으로 재생 시점을 고정해야 합니다.

  1. 차징

    Charge 손이나 무기 소켓에 붙이고 User.ChargeAmount로 크기와 밝기를 키웁니다.

  2. 피격

    Hit Hit Location과 Normal을 받아 피격 방향에 맞는 Burst를 만듭니다.

  3. 무기 트레일

    Trail Ribbon Renderer로 스윙 시작과 끝 프레임을 정확히 자릅니다.

  4. 총구 화염

    Muzzle Muzzle Socket에서 짧은 Lifetime과 밝은 Emissive로 순간성을 만듭니다.

  5. 방향

    소켓 Forward 축과 파티클 초기 Velocity 방향이 맞는지 봅니다.

  6. 지연

    Notify 프레임과 시스템 Warmup 때문에 효과가 늦게 켜지지 않는지 확인합니다.

  7. 반복

    연사와 연속 공격에서 컴포넌트가 누적 생성되지 않도록 재사용합니다.

캐릭터와 무기 이펙트는 입력 이벤트, 부착 위치, 렌더 비용, 재현 기준으로 점검합니다.