본문으로 건너뛰기

안동민 개발노트

본문 시작

기본적인 마법 및 능력 시각화

오라·발사체·충격 이미터의 형태·색상·타이밍을 조합하고 블루프린트로 이동시키는 얼음 파편 마법을 완성합니다.

게임에서 마법(Magic)이나 능력(Ability) 시각화는 플레이어에게 강력한 시각적 피드백을 제공하고, 게임 세계의 판타지적인 요소를 강화하는 데 핵심적인 역할을 합니다.

불꽃 구슬, 얼음 파편, 치유의 빛, 순간이동 효과 등 다양한 마법과 능력은 단순히 아름다움을 넘어, 게임플레이 정보를 전달하는 중요한 수단이기도 합니다.

이 절에서는 나이아가라를 활용하여 기본적인 마법 및 능력 효과를 제작하는 방법을 다룹니다.

앞서 배운 불꽃, 연기, 폭발 이펙트와 달리 색상, 형태, 타이밍으로 추상적인 능력 상태를 표현하는 데 중점을 둡니다.

마법 FX는 상태, 이동, 적중을 다른 시간 문법으로 보여준다

색을 고르기 전에 플레이어가 읽어야 할 순간을 나누면 오라, 발사체, 충격 레이어의 책임과 수명이 선명해진다.

  1. Aura · Buff

    지속 상태 캐릭터 주변에 머물며 능력의 활성 여부와 범위를 계속 알린다. 시간 낮은 Rate · 긴 Lifetime 움직임 Sphere · Curl Noise

  2. Projectile

    동 방향 선명한 중심과 짧은 꼬리로 발사 방향, 속도, 도달 경로를 읽히게 한다. 시간 이동 수명에 맞춤 움직임 Velocity · Trail

  3. Impact

    적중 순간 충돌 지점에서 짧고 강하게 터져 타격 위치와 속성, 영향 범위를 확인시킨다. 시간 Burst · 짧은 Lifetime 움직임 Normal · Cone/Sphere


마법/능력 효과 제작의 핵심 요소

마법 및 능력 효과는 일반적으로 다음과 같은 요소들을 조합하여 시각화됩니다.

  • 에너지 흐름: 마법이 시전되거나 발사될 때 느껴지는 에너지의 움직임과 방향성.
  • 원소적 특성: 불, 얼음, 전기, 자연, 빛, 어둠 등 마법의 속성을 나타내는 색상, 형태, 움직임.
  • 영향 범위: 마법이 미치는 영역이나 폭발 범위.
  • 시전/충격 피드백: 마법이 준비되거나 적중했을 때 발생하는 시각적, 청각적 피드백.

기본적인 마법/능력 효과 제작 가이드

오라(Aura) 또는 버프(Buff) 효과

캐릭터 주변을 감싸거나 특정 위치에서 지속적으로 발생하는 에너지 효과입니다.

  • 스폰/초기화
    • Spawn Rate: 낮거나 중간 (지속적인 흐름)
    • Lifetime: 길게 (오라가 유지되는 시간)
    • Sprite Size: 작게 시작하여 크게 (10 ~ 50)
    • Color: 마법의 속성(예: 치유는 녹색/노랑, 보호막은 파랑/흰색, 저주는 보라/검정)
    • Initial Location: Sphere 또는 Cylinder 형태로 캐릭터 주변에 분포하거나 특정 소켓에 부착.
    • Initial Velocity: Z축으로 천천히 위로 움직이거나, Sphere 형태로 아주 미세하게 퍼지도록.
  • 물리/힘
    • Add Gravity Force: 약하게 적용하거나 제거.
    • Noise Force: 필수. 오라의 유기적이고 흐르는 듯한 움직임을 만듭니다. StrengthFrequency를 조절하여 부드러운 흐름이나 번개 같은 파동을 표현합니다.
    • Curl Noise Force: Noise Force보다 더 복잡한 소용돌이 형태의 노이즈를 생성하여 에너지가 휘감기는 듯한 효과를 줍니다.
  • 시간에 따른 변화
    • Scale Color: NormalizedAge에 따라 색상을 시작 색상 -> 밝게 발광 -> 투명하게 사라지도록 변화시켜 오라의 지속 시간과 강도 변화를 표현합니다.
    • Scale Sprite Size: NormalizedAge에 따라 크기를 작게 -> 크게 -> 작게 변화시켜 파티클이 생성되었다가 소멸하는 느낌을 줍니다.
  • 렌더링
    • Sprite Renderer
    • Material: 추상적인 에너지, 빛, 구름 형태의 텍스처를 포함하고 Additive 블렌드 모드, Unlit 셰이딩 모델을 사용합니다. 발광 효과를 위해 머티리얼에서 Emissive Color를 적극 활용합니다.
    • Soft Particle: 활성화하여 다른 오브젝트와의 교차 시 부드럽게 보이도록 합니다.

발사체(Projectile) 효과

마법 구슬, 화살, 에너지 볼 등 플레이어가 발사하는 투사체 효과입니다.

  • 스폰/초기화
    • Spawn Rate: 낮게 (주로 발사체 자체는 한 개)
    • Lifetime: 발사체의 이동 거리에 맞춰 조절 (길게)
    • Sprite Size: 중간 (20 ~ 50)
    • Color: 마법의 속성 (예: 불은 빨강/주황, 얼음은 파랑/흰색, 전기는 노랑/파랑)
    • Initial Location: 총구 또는 시전 위치.
    • Initial Velocity: 발사 방향으로 매우 빠르게 (예: X축으로 5000 이상)
  • 물리/힘
    • Add Gravity Force: 중력 영향을 받는지 여부에 따라 조절. (마법 구슬은 무시, 돌멩이는 영향)
    • Drag: 공기 저항이 있는지 여부에 따라 조절.
    • Noise Force / Curl Noise Force: 발사체 주변에 에너지 잔상이나 소용돌이 효과를 추가합니다.
  • 시간에 따른 변화
    • Scale Color: 발사체가 날아가는 동안 색상이 미세하게 진해지거나 밝아지도록 조절합니다.
  • 렌더링
    • Sprite Renderer (주로 구형 또는 추상적인 형태) 또는 Mesh Renderer (화살, 얼음 파편).
    • Material: 발광하는 에너지, 불, 얼음 질감의 텍스처를 포함하고 Additive 블렌드 모드, Unlit 셰이딩 모델을 사용합니다.
    • 잔상(Trail) 효과: Trail Renderer를 추가하여 발사체가 지나간 자리에 꼬리처럼 흔적을 남깁니다. 잔상의 색상, 두께, 수명을 조절합니다.
  • 추가 효과: 발사체 주변에서 작은 스파크나 파편을 추가로 스폰하여 움직임을 강조합니다. (자식 이미터 또는 Spawn System Attached 사용)

충격(Impact) 효과

마법이 적중하거나 능력이 발동했을 때 발생하는 순간적인 효과입니다.

  • 스폰/초기화
    • Spawn Burst Instantaneous: 필수. 한 번에 많은 파티클을 스폰합니다. Spawn Count는 효과의 강도에 따라 조절.
    • Lifetime: 매우 짧게 (0.1 ~ 0.5초)
    • Sprite Size: 작게 시작하여 빠르게 확장.
    • Color: 마법의 속성 + 충격에 따른 흰색/검정.
    • Initial Location: 충격 지점.
    • Initial Velocity: Sphere 또는 Cone 형태로 사방으로 강하게 퍼지도록.
  • 물리/힘
    • Add Gravity Force: 파편/먼지에는 적용, 에너지에는 제거.
    • Drag: 강하게 적용하여 빠르게 소멸하도록.
    • Noise Force: 약하게 적용하여 불규칙성을 줍니다.
  • 시간에 따른 변화
    • Scale Color: 폭발과 유사하게 순간적으로 밝게 터졌다가 어둡고 투명하게 사라지도록.
    • Scale Sprite Size: 폭발과 유사하게 빠르게 확장하고 수축하도록.
  • 렌더링
    • Sprite Renderer (에너지, 빛) 및 Mesh Renderer (파편).
    • Material: 충격파 텍스처, 스파크 텍스처 등을 포함하고 Additive / Translucent 블렌드 모드를 조합하여 사용합니다.
    • Light Renderer: 순간적인 섬광 효과를 위해 추가합니다. (성능 주의)
  • 블루프린트 연동: Spawn System at Location 노드를 사용하여 충격 지점과 충격 강도를 Parameters 핀으로 전달합니다.

파라미터 기준값 템플릿 (값 -> 현상 -> 튜닝)

마법/능력 이펙트는 예쁜 값보다 일관된 기준값이 중요합니다.

아래 템플릿을 시작점으로 잡으면 장면 간 편차를 줄일 수 있습니다.

  • 오라(Aura)
    • Spawn Rate: 20~40 -> 안정적인 지속 흐름 -> 과밀하면 Lifetime을 먼저 줄이고 Spawn Rate를 나중에 줄입니다.
    • Noise Strength: 15~35 -> 부드러운 요동 -> 난류가 과하면 Frequency를 낮춰 깜빡임을 줄입니다.
  • 발사체(Projectile)
    • Initial Velocity: 3000~6000 -> 빠른 직진 감각 -> 히트 판정보다 빨라 보이면 Trail Width를 키워 가독성을 보완합니다.
    • Trail Lifetime: 0.15~0.35 -> 잔상 인지 가능 -> 화면 번짐이 심하면 0.2 이하로 낮춥니다.
  • 충격(Impact)
    • Burst Count: 20~60 -> 즉시 폭발감 형성 -> 성능이 흔들리면 Count를 절반으로 줄이고 Sprite Size를 키워 체감량을 유지합니다.
    • Lifetime: 0.12~0.35 -> 순간 타격감 유지 -> 길어지면 잔상 누적이 생기므로 0.4 이상은 지양합니다.
시전 전조부터 충돌 잔상까지 겹쳐 읽는다

오라, 투사체, 꼬리, 충돌 폭발은 한 시스템에 섞기보다 시간과 역할을 나누어 쌓으면 수정 범위와 비용 신호가 선명해진다.

  1. 상태를 오래 보여준다

    오라 생성률은 낮게, 수명은 길게 잡고 구형 또는 원기둥 범위 안에서 부드럽게 흔들리도록 둔다.

  2. 방향과 속도를 읽히게 한다

    투사체 중심 입자는 선명하게, 꼬리는 짧게 남겨 빠른 이동이 화면에서 끊기지 않도록 보완한다.

  3. 순간 반응만 강하게 둔다

    충돌 파편 수와 섬광 밝기를 올리더라도 수명은 짧게 묶어 다음 전투 장면에 잔상이 쌓이지 않게 한다.


마법/능력 시각화의 추가 팁

  • 색상 팔레트: 마법의 원소적 특성을 나타내는 명확한 색상 팔레트를 설정합니다. (예: 불 = 주황/빨강, 얼음 = 파랑/흰색, 번개 = 노랑/하늘색).
  • 발광(Emissive): Unlit 셰이딩 모델과 높은 Emissive Color를 사용하여 마법이 자체적으로 빛을 내는 듯한 느낌을 줍니다. 이는 밤이나 어두운 환경에서 특히 효과적입니다.
  • 렌즈 플레어/블룸(Bloom): 포스트 프로세스 볼륨에서 Bloom 설정을 조절하여 마법 효과의 발광을 더욱 강조합니다.
  • 사인/코사인 함수 활용: 나이아가라 스크립트에서 Sine 또는 Cosine 노드를 사용하여 파티클의 움직임이나 크기에 주기적인 파동을 주어 마법적인 느낌을 더합니다.
  • 오브젝트 풀링: 자주 사용되는 마법 효과(예: 작은 충격, 버프 적용)는 오브젝트 풀링을 통해 성능을 최적화합니다.
  • 캐릭터 애니메이션과의 동기화: 마법 시전 애니메이션의 특정 프레임에 맞춰 파티클 효과를 시작하거나 속성을 변경하도록 애니메이션 노티파이를 활용합니다. (8장 1절, 3절 참조)

직접 해보기: 간단한 얼음 파편 마법 발사체

얼음 파편 마법 발사체 FX 조립 타임라인

발사 순간의 섬광, 이동 중 트레일, 충돌 파편, 사운드와 라이트가 시간축에서 서로 맞물리도록 Niagara와 Blueprint 역할을 나눈다.

  1. Spawn

    Projectile Actor가 생성되며 Niagara System과 초기 속도 파라미터를 받는다. 0.00s

  2. Travel

    발사체 위치를 따라 ribbon trail과 작은 얼음 입자가 계속 갱신된다. in flight

  3. Impact

    충돌 지점에서 이동 Niagara를 끄고 파편 burst와 decal을 새로 만든다. hit event

  4. Fade

    라이트와 잔상 입자는 짧은 곡선으로 감소하고 decal은 더 천천히 사라진다. cleanup

얼음 속성을 가진 발사체와 충격 효과를 간단하게 만들어 보겠습니다.

얼음 발사체 나이아가라 시스템 (NS_IceProjectile)

New system from selected emitters > Fountain 템플릿으로 NS_IceProjectile을 생성합니다.

Emitter Update 섹션의 Spawn Rate 모듈을 제거합니다.

Initialize Particle 모듈

  • Lifetime: 2.0
  • Sprite Size: 30.0
  • Color: R:0.1, G:0.5, B:1.0, A:1.0 (밝은 파란색)
  • Initial Location: SphereRadius 0.0 (단일 지점 스폰)
  • Initial Velocity: VectorX:500.0, Y:0.0, Z:0.0으로 설정 (앞으로 직진)

Add Gravity ForceDrag는 제거하거나 매우 약하게 설정합니다. (마법은 일반적으로 중력에 덜 영향받음)

Noise Force를 추가하여 파티클 주변에 미세한 흐름을 줍니다. (예: Strength: 50.0, Frequency: 0.1)

Scale Color: NormalizedAge에 따라 파티클이 처음엔 진하게, 끝으로 갈수록 투명하게 사라지도록 커브를 조절합니다.

Sprite Renderer

  • Material: 얼음 질감 또는 추상적인 빛 텍스처를 포함하는 Additive 블렌드 모드, Unlit 셰이딩 모델 머티리얼을 할당합니다.
  • SubUV를 사용한다면 SubUV Animation 모듈을 추가하여 재생합니다.

Trail Renderer를 추가하여 발사체 뒤에 얼음 꼬리를 만듭니다.

WidthColor를 조절합니다.

시스템을 저장합니다.

블루프린트에서 발사체 스폰

캐릭터 블루프린트나 별도의 발사체 스폰 블루프린트에서 특정 이벤트(예: 마우스 클릭, 능력 사용) 시 NS_IceProjectile을 스폰합니다.

캐릭터 블루프린트(예: BP_ThirdPersonCharacter)를 엽니다.

Event Graph에서 마법 발사 키(예: F 키) 이벤트를 추가합니다.

FPressed 이벤트에서 Spawn System at Location 노드를 추가합니다.

  • Niagara System: NS_IceProjectile 할당.
  • Location: 캐릭터의 손 소켓 위치(Get Socket Location) 또는 카메라 전방 위치(Get Actor Forward VectorGet Actor Location 활용).
  • Rotation: 캐릭터의 회전(Get Actor Rotation).
  • 필요하다면 Parameters 핀을 통해 발사체의 속도나 크기 등을 조절할 사용자 변수를 연결합니다.

저장하고 플레이하여 F 키를 누르면 얼음 발사체가 나가는 것을 확인합니다.


마법 및 능력 시각화는 나이아가라의 표현력을 가장 잘 드러내는 영역 중 하나입니다.

마법 및 능력 효과는 색상, 형태, 움직임, 블루프린트 연동 조건을 조합해 게임플레이 정보를 전달하도록 설계해야 합니다.


마법과 능력 이펙트는 역할별 레이어를 나누면 조정이 쉬워집니다.

아래 다이어그램은 오라, 발사체, 충격 효과의 분리 기준입니다.

마법 이펙트는 오라, 발사체, 충격 레이어를 역할별로 나눈다

한 시스템에 모든 것을 섞기보다 레이어별 생성 조건과 렌더러를 나누면 타이밍과 비용을 조절하기 쉽다.

레이어역할주요 설정조절 기준
Aura시전 전 에너지 축적Loop, Color curve, Soft sprite차징 시간과 밝기
Projectile목표 방향으로 이동Velocity, Trail, Collision속도와 궤적 길이
Impact히트 순간 폭발Burst, Ring, Debris충격 강도와 표면 타입
Afterglow짧은 잔상과 감쇠Lifetime, Opacity curve잔상 길이와 오버드로우
ControlUser Parameter로 강도 연결Power, Color, Radius게임 상태와 시각 강도 일치

프로젝트에 적용할 때는 제작값, 블루프린트 연결, 성능 예산, 재사용 기준을 한 번에 점검해야 합니다.

마법 효과 전달 항목

오라, 발사체, 충격 효과를 만들었다면 다음 단계는 같은 기준으로 재사용하고, 블루프린트 호출과 디버그 흔적을 남기는 것입니다.

  1. 의도 고정

    시전 예고, 이동 궤적, 적중 피드백 중 어떤 정보를 먼저 읽혀야 하는지 적습니다.

  2. 레이어 분리

    Core, Trail, Impact 이미터를 나누고 각 레이어의 색상과 수명을 따로 둡니다.

  3. BP 연결

    Spawn System 위치, 회전, 사용자 파라미터 이름을 같은 표로 검토합니다.

  4. 예산 측정

    동시 발동 상황에서 파티클 수, 오버드로우, GPU 시간을 기록합니다.

  5. 재사용 잠금

    값을 프리셋으로 남기고 속성만 바꿔도 다른 마법에 적용되는지 확인합니다.

마법과 능력 이펙트는 역할별 레이어와 파라미터 기준값을 정리해 두면, 오라와 발사체와 충격 표현을 일관되게 만들 수 있습니다.

마법 효과 레이어 설계

오라, 발사체, 충격 효과는 중심 형태와 보조 입자를 나누고 색, 속도, 소멸 타이밍을 같은 세계관 규칙으로 맞춥니다.

  1. 오라/버프

    Aura 캐릭터 주변의 원형 흐름과 낮은 스폰량으로 지속 효과를 만듭니다.

  2. 발사체

    Projectile Velocity, Trail, Light 또는 Emissive로 이동 방향을 읽히게 합니다.

  3. 충격

    Impact Hit Normal과 ImpactStrength로 파편 방향과 Burst Count를 조절합니다.

  4. 기준값

    Params 색상, 크기, 속도, Lifetime을 능력 등급이나 속성값으로 노출합니다.

  5. 가독성

    전투 중에도 아군, 적, 위험 범위가 빠르게 구분되는지 봅니다.

  6. 속성 색

    불, 얼음, 독 같은 색 규칙을 머티리얼과 파티클 Color에 함께 적용합니다.

  7. 성능

    지속 오라는 낮은 스폰량, 순간 충격은 짧은 Lifetime으로 예산을 나눕니다.

마법과 능력 시각화의 기본 기준은 입력 신호, 레이어 구성, 렌더 비용, 재현 결과로 점검합니다.