본문으로 건너뛰기

안동민 개발노트

본문 시작

크로스 플랫폼 호환성 기본 이해

PC·콘솔·모바일·VR의 GPU·메모리·렌더링 차이를 반영해 플랫폼별 스케일러빌리티와 효과 예산을 설계합니다.

현대 게임은 단일 플랫폼만 겨냥하기보다 PC, 콘솔, 모바일, VR/AR를 함께 고려하는 경우가 많습니다.

나이아가라 이펙트도 플랫폼별 하드웨어 특성과 성능 제약을 반영해 설계해야 합니다.

크로스 플랫폼 호환성(Cross-Platform Compatibility)을 이해해야 모든 대상 플랫폼에서 의도한 비주얼과 안정적인 성능을 동시에 확보할 수 있습니다.

이 절에서는 나이아가라 시스템을 다양한 플랫폼에 배포할 때 고려해야 할 기본적인 호환성 문제와 최적화 전략에 대해 알아보겠습니다.

플랫폼별 이펙트 예산

나이아가라는 PC에서 보이는 그대로 모바일, 콘솔, VR에 옮기는 기능이 아니라 각 환경의 GPU·메모리·프레임 목표에 맞춰 줄이는 작업이다.

  1. Mobile

    낮은 GPU와 발열 때문에 Spawn Rate와 오버드로우를 강하게 제한한다.

  2. Console

    고정 하드웨어지만 메모리와 GPU 예산을 지켜야 한다.

  3. PC

    옵션과 스케일러빌리티로 저사양부터 고사양까지 대응한다.

  4. VR

    90FPS 이상을 위해 가까운 파티클과 후처리 비용을 엄격히 본다.


플랫폼별 하드웨어 및 API 차이점

각 플랫폼은 CPU, GPU, 메모리 등의 하드웨어 사양이 다르고, 사용 가능한 그래픽스 API(Application Programming Interface)에도 차이가 있습니다.

이러한 차이점이 나이아가라 이펙트의 동작과 성능에 직접적인 영향을 미칩니다.

  • 모바일 플랫폼 (iOS, Android)
    • 제약 사항: 낮은 GPU 성능, 제한된 메모리(VRAM), 낮은 CPU 클럭 속도, 발열 문제.
    • 영향: 복잡한 셰이더, 대량의 파티클, 복잡한 물리 시뮬레이션, 실시간 그림자, 라이트 렌더러 등은 성능 저하를 초래할 가능성이 높습니다. Translucent 오버드로우에 특히 취약합니다.
    • 주요 API: OpenGL ES (레거시), Vulkan, Metal.
  • 콘솔 플랫폼 (PlayStation, Xbox, Switch)
    • 제약 사항: PC보다는 균일한 하드웨어 사양을 가지지만, 여전히 PC 하이엔드에 비해서는 성능 제약이 있습니다. 특히 닌텐도 스위치와 같은 휴대용 콘솔은 모바일과 유사한 제약을 가집니다.
    • 영향: PC처럼 자유롭지는 않지만, 충분히 복잡하고 시각적으로 풍부한 이펙트를 구현할 수 있습니다. 메모리 사용량과 GPU 최적화가 여전히 중요합니다.
    • 주요 API: DirectX, Vulkan, Metal.
  • PC 플랫폼
    • 제약 사항: 하드웨어 사양이 매우 다양합니다. 최신 하이엔드 PC에서는 대부분의 나이아가라 기능을 제약 없이 사용할 수 있지만, 구형 또는 저사양 PC를 고려해야 할 경우 성능 최적화가 필수입니다.
    • 영향: 가장 자유롭지만, 넓은 사용자층을 고려하여 스케일러빌리티(Scalability) 설정을 통해 저사양 PC에서도 원활하게 작동하도록 조절해야 합니다.
    • 주요 API: DirectX, Vulkan.
  • VR/AR 플랫폼
    • 제약 사항: 매우 높은 프레임 레이트(예: 90FPS 이상)를 안정적으로 유지해야 하므로, 극한의 성능 최적화가 요구됩니다. Stereoscopic Rendering으로 인해 렌더링 부하가 두 배가 됩니다.
    • 영향: 오버드로우, 복잡한 셰이더, 대량 파티클, 고해상도 텍스처 사용에 극도로 민감합니다. 시차(Parallax)를 고려한 파티클 위치와 깊이감이 중요합니다.
    • 주의: 파티클이 플레이어의 눈 가까이에서 갑자기 나타나거나 사라지는 것은 멀미를 유발할 수 있습니다.

크로스 플랫폼 최적화의 기본 전략

나이아가라 플랫폼 예산 분배

크로스 플랫폼 이펙트는 동일한 외형보다 각 장치의 입자 수, 머티리얼, 충돌 비용 예산을 맞추는 것이 먼저입니다.

  1. 대표 장치 선정

    최소 사양과 목표 사양을 나눠 같은 장면에서 측정합니다. Device

  2. 비용 분해

    입자 수, 머티리얼 오버드로우, 충돌, 이벤트 비용을 분리합니다. Breakdown

  3. 스케일 규칙

    품질 단계별 스폰 수, LOD 거리, 렌더러 수를 줄이는 규칙을 둡니다. Scalability

  4. 시각 보존

    장 눈에 띄는 실루엣과 타이밍은 유지하고 보조 입자부터 줄입니다. Perception

  5. 피크 장면

    장 많은 이펙트가 겹치는 장면에서 프레임 하한을 확인합니다.

  6. 품질 단계

    Low, Medium, High 전환 시 이펙트가 사라진 느낌을 주지 않아야 합니다.

  7. 장기 실행

    메모리와 발열이 긴 플레이에서 누적되지 않는지 봅니다.

다양한 플랫폼에서 나이아가라 이펙트의 호환성과 성능을 확보하기 위해서는 다음과 같은 전략들을 고려해야 합니다.

스케일러빌리티 (Scalability) 적극 활용

  • 엔진 스케일러빌리티 설정: 언리얼 엔진은 Engine Scalability Settings를 통해 Cine, Epic, High, Medium, Low 등 다양한 품질 레벨을 제공합니다.
    • Project Settings > Engine > Scalability 섹션에서 나이아가라 시스템에 대한 스케일링 규칙을 정의할 수 있습니다.
    • 예를 들어, Particles 품질 설정이 Low일 때 특정 나이아가라 시스템의 Spawn Rate0.5로 줄이거나, 복잡한 모듈을 비활성화하도록 설정할 수 있습니다.
  • 나이아가라 이미터/시스템 LOD:
    • 각 이미터의 Scalability 섹션을 사용하여 거리 기반 LOD를 설정합니다. 카메라가 멀어질수록 파티클 수명을 단축하거나, 스폰율을 낮추거나, 특정 모듈을 비활성화하는 방식으로 성능을 조절합니다.
    • 이는 특히 PC에서 저사양 옵션을 제공하거나, 콘솔/모바일 환경에서 자동으로 최적화된 효과를 제공하는 데 필수적입니다.

머티리얼 최적화

  • Unlit 셰이딩 모델 우선: 대부분의 파티클은 Unlit 셰이딩 모델을 사용하는 것이 가장 효율적입니다. 조명 계산이 불필요하여 GPU 부하를 크게 줄입니다.
  • Additive 블렌드 모드 선호: Translucent 블렌드 모드보다 Additive 블렌드 모드가 Overdraw 비용이 낮아 성능에 유리합니다. 연기나 안개처럼 Translucent가 필수적인 경우에는 오버드로우를 최소화하도록 파티클 배치와 알파 값을 조절합니다.
  • 텍스처 해상도 및 압축: 플랫폼의 메모리 제약을 고려하여 텍스처 해상도를 적절히 낮추고, 최적의 압축 설정을 사용합니다. 모바일에서는 특히 텍스처 스트리밍을 피하고 VRAM 사용량을 최소화해야 합니다.
  • 셰이더 복잡도 줄이기: 머티리얼 그래프에서 불필요한 연산이나 복잡한 함수 호출을 피하여 셰이더 명령 수를 줄입니다.

파티클 수 및 계산량 관리

  • 엄격한 Max Particles 제한: 각 이미터의 Max Particles를 플랫폼의 목표 프레임 레이트에 맞춰 엄격하게 제한합니다. 모바일에서는 수백, 콘솔에서는 수천 단위로 제한될 수 있습니다.
  • 짧은 Lifetime: 파티클의 수명을 최대한 짧게 설정하여 동시에 활성화되는 파티클 수를 줄입니다.
  • Collision 모듈 사용 주의: Collision 모듈은 비용이 높으므로, 반드시 필요한 경우에만 사용하고 Max Collisions를 낮게 설정하는 등 최적화합니다. 모바일에서는 Collision을 최대한 피하거나 Distance Field Collision 대신 Sphere Trace 등 단순한 방식을 고려합니다.
  • 복잡한 모듈/스크립트 회피: Curl Noise, 복잡한 데이터 인터페이스, 매 프레임 높은 연산을 수행하는 커스텀 스크립트 등은 성능에 큰 영향을 미칠 수 있으므로 신중하게 사용하거나 더 단순한 대안을 찾습니다.

플랫폼별 기능 비활성화

  • Light Renderer (라이트 렌더러): 모바일 및 낮은 사양의 콘솔에서는 Light Renderer를 비활성화하는 것이 일반적입니다. 동적 라이트 생성은 매우 비용이 높습니다.
  • 그림자 (Shadows): 파티클에 그림자를 드리우는 Cast Shadows 옵션도 성능에 큰 영향을 미치므로, 모바일이나 저사양 플랫폼에서는 비활성화합니다.
  • Depth of Field, Motion Blur 등 후처리 효과: 이펙트에 영향을 미치는 후처리 효과들도 플랫폼 성능을 고려하여 조절하거나 비활성화합니다.

테스트 및 프로파일링

  • 실제 플랫폼에서 테스트: 개발 중인 PC에서만 이펙트를 확인하지 말고, 반드시 목표하는 모든 플랫폼에서 주기적으로 이펙트가 어떻게 보이는지, 성능은 어떤지 테스트해야 합니다.
  • 플랫폼별 프로파일링 도구 활용: 언리얼 엔진의 stat 명령어, Unreal Insights, GPU Profiler를 기본으로 사용하고, 플랫폼 전용 도구까지 함께 확인해야 합니다. 예를 들어 Android Studio Profiler, Xcode Instruments, PIX on Xbox, Razor GPU Profiler for PS를 사용해 실제 병목 지점을 정확히 파악합니다.
기능을 임의로 끄지 말고 예산 초과 신호에 스케일 규칙을 연결한다

보편적인 컷 목록은 없다. 목표 기기의 대표 장면을 측정하고, 같은 Effect Type에 일관된 품질·컬링 정책을 적용한다.

  1. 1 · Target

    · Target FPS를 프레임 시간으로 바꾸고 FX 몫을 정한다.

  2. 2 · Measure

    · Measure 실기기·대표 장면에서 CPU, GPU, 메모리를 나눈다.

  3. 3 · Scale

    · Scale Platform Set과 Effect Type 규칙으로 비용을 낮춘다.

  4. 4 · Verify

    · Verify 최악 장면과 품질 전환 구간에서 다시 측정한다.

  5. Mobile

    열·전력·대역폭 오버드로우와 동시 파티클부터 줄인다.

  6. Console

    고정 프레임 예산 장면 전체에서 FX 몫을 안정적으로 지킨다.

  7. PC

    넓은 사양 범위 품질 단계별 규칙과 저사양 하한을 검증한다.

  8. XR

    일관된 지연 시간 시야를 채우는 투명 효과와 급격한 전환을 줄인다.

  9. 시뮬레이션 작업량

    Spawn Rate·Lifetime·업데이트 모듈·Collision을 낮춘다.

  10. 픽셀·렌더 비용

    겹침 면적, 머티리얼 복잡도, Light·Shadow 사용을 줄인다.

  11. 스케일러빌리티

    거리·가시성·시스템/Effect Type 인스턴스 수로 컬링한다.


플랫폼 예산과 스케일러빌리티 기준선

프로젝트 운영 단계에서는 플랫폼별 기본 예산을 먼저 고정하고, 개별 이펙트를 그 범위 안에서 설계해야 합니다.

플랫폼권장 프레임 목표나이아가라 GPU 예산(프레임당)기본 Spawn Rate Scale
모바일30~60 FPS1.0~1.5ms0.4~0.6
콘솔60 FPS2.0~2.5ms0.8~1.0
PC60~120 FPS2.5~3.0ms1.0 (옵션 메뉴로 상/하향)
VR90 FPS 이상0.8~1.2ms0.5~0.7

예산을 초과하면 보통 Spawn Rate -> Lifetime -> 머티리얼 복잡도 순서로 줄이는 것이 체감 품질 손실 대비 성능 회복 폭이 큽니다.

플랫폼별 품질 예산

같은 이펙트라도 모바일, 콘솔, PC, VR은 허용 GPU 시간과 오버드로우 한계가 다릅니다. 목표 프레임을 먼저 정하고 이펙트 비용을 줄입니다.

  1. 30~60 FPS, 1.0~1.5ms

    Mobile 30~60 FPS, 1.0~1.5ms Translucent 오버드로우와 충돌 모듈을 가장 먼저 의심합니다.

  2. 60 FPS, 2.0~2.5ms

    Console 60 FPS, 2.0~2.5ms 균일한 사양이지만 메모리와 GPU 예산은 고정되어 있습니다.

  3. 60~120 FPS, 2.5~3.0ms

    PC 60~120 FPS, 2.5~3.0ms 옵션 메뉴와 Scalability 레벨로 폭넓은 사양을 흡수합니다.

  4. 90 FPS 이상, 0.8~1.2ms

    VR 90 FPS 이상, 0.8~1.2ms 프레임 하락과 눈앞 파티클은 멀미와 직결되므로 가장 보수적으로 잡습니다.

플랫폼별로 동일한 이펙트를 유지하려면 기능을 켜고 끄는 기준도 미리 정해두어야 합니다.

플랫폼 품질 단계표

같은 시스템이라도 모바일, 콘솔, PC, VR에서 허용되는 파티클 수와 렌더 비용은 다릅니다. 먼저 유지할 핵심 인상과 줄일 기능을 나누면 시각 품질과 프레임 목표를 함께 지킬 수 있습니다.

  1. Mobile
    오버드로우와 발열부터 제한

    Mobile 오버드로우와 발열부터 제한 Translucent 면적, 고해상도 텍스처, Light Renderer를 줄이고 짧은 Lifetime으로 누적을 낮춥니다.

  2. Console
    고정 예산 안에서 밀도 조절

    Console 고정 예산 안에서 밀도 조절 목표 FPS에 맞춘 GPU ms 예산을 정하고 거리 기반 LOD와 Max Particles로 피크를 막습니다.

  3. PC
    옵션 품질별 스케일 제공

    PC 옵션 품질별 스케일 제공 High와 Low에서 Spawn Rate, 머티리얼 복잡도, 후처리 의존도를 다르게 테스트합니다.

  4. VR
    시야 안정성과 90FPS 우선

    VR 시야 안정성과 90FPS 우선 눈 가까운 팝업, 큰 알파 면적, 과한 Motion Blur를 피하고 깊이감과 위치 변화를 부드럽게 둡니다.

  5. 5
    Spawn

    기능 단계표 기능 낮은 품질 높은 품질 Spawn Scale 0.4~0.6, Burst 축소 표준 개수와 보조 이미터 유지 Material Unlit, Additive, 단순 텍스처 SubUV, 세밀한 알파, 컬러 변화 허용 Simulation Collision과 Curl Noise 최소화 필요 구간만 GPU/CPU 시뮬레이션 사용 Render Light, Shadow, DOF 영향 끄기 근거리 강조용 보조 렌더러 제한 허용

  6. 6
    실기기 확인 순서 대표 맵

    이펙트가 겹치는 최악 장면을 먼저 고릅니다. `stat GPU`, Niagara Debugger, 플랫폼 전용 도구를 같은 캡처에 묶습니다. 초과 시 Spawn Rate, Lifetime, 머티리얼, 렌더러 순서로 낮춥니다. 품질 단계마다 꺼지는 기능을 문서에 남겨 재현 가능하게 합니다.


플랫폼별 기능 차이는 문서로만 남기지 말고, 시스템 제작 단계에서 바로 확인할 수 있는 기준표로 관리하는 것이 좋습니다.

플랫폼별 기능 허용 기준

같은 이펙트라도 플랫폼마다 켤 수 있는 기능이 다르므로, 제작 단계에서 허용 범위를 먼저 정해 둡니다.

  1. 가장 보수적

    Mobile Light Renderer, 복잡한 Collision, 고해상도 반투명 텍스처는 기본적으로 끕니다.

  2. 예산 기반 허용

    Console 품질은 유지하되 스폰율, 수명, 머티리얼 비용을 프레임 예산 안에서 조정합니다.

  3. 옵션으로 분기

    PC High와 Low 프리셋을 나누고 Scalability로 이펙트 밀도를 조절합니다.

  4. 프레임 우선

    VR 고정 프레임과 시야 안정성을 위해 오버드로우와 눈앞 팝인을 강하게 제한합니다.

크로스 플랫폼 호환성은 단순히 이펙트가 작동하는 것을 넘어, 모든 플레이어가 일관된 고품질 경험을 할 수 있도록 보장하는 것을 의미합니다.

각 플랫폼의 제약을 이해하고, 그에 맞는 최적화 전략을 사전에 계획하며, 꾸준히 테스트하고 프로파일링하는 것이 성공적인 크로스 플랫폼 나이아가라 이펙트 제작의 핵심입니다.

플랫폼 호환성은 같은 실루엣을 서로 다른 예산으로 지킨다

플랫폼 이름만 나열하지 말고 반드시 보존할 화면 정보, 먼저 줄일 비용, 실패 판정 조건을 같은 축에서 비교해야 품질 단계가 일관된다.

  1. 최저 사양 재생

    대표 장면을 가장 낮은 목표 기기에서 먼저 연다.

  2. 예산 측정

    particle·draw·GPU time을 플랫폼 상한과 대조한다.

  3. 보조 표현 축소

    핵심 실루엣을 남기고 보조 입자부터 줄인다.

  4. 대체 표현 기록

    꺼지는 기능과 각 품질 단계의 대체값을 남긴다.

플랫폼반드시 유지먼저 축소실패 신호
모바일핵심 실루엣·발동 타이밍입자 수·투명 겹침·샘플 수발열·프레임 급락
콘솔고정 프레임·카메라 거리GPU 시뮬레이션·해상도 스케일프레임 페이싱 이탈
PC품질 단계 간 동일한 효과 의미Spawn Scale·Renderer 기능Low 옵션의 표현 누락
VR양안 실루엣·안정 프레임화면 면적·라이트·반투명한쪽 눈 잘림·멀미 유발

크로스 플랫폼 호환성은 플랫폼별 렌더 차이, 예산, 재현 기준, 검증 환경으로 점검합니다.