빔 이펙트

이 페이지에서는 번개를 시뮬레이션하는 빔 이펙트를 생성하는 방법을 보여줍니다.

Choose your operating system:

Windows

macOS

Linux

필요한 사전지식

이 페이지의 콘텐츠를 이해하고 활용하기 위해 다음 주제를 숙지해 주세요.

선행 단계: 이 페이지에서는 나이아가라 플러그인에 포함된 콘텐츠인 DefaultRibbonMaterial을 사용합니다. 하지만 메시 파티클 이펙트 생성 하우투를 완료한 경우 해당 튜토리얼에서 사용했던 M_Balloon 머티리얼을 사용해도 됩니다.

나이아가라에서는 리본이 빔으로 사용되고 있음을 표시하는 특정 모듈과 함께 리본 렌더러가 사용됩니다. 이 가이드에서는 번개를 시뮬레이션하는 빔 이펙트를 생성하는 방법을 배워봅니다.

시스템 및 이미터 생성

나이아가라에서는 시스템과 이미터가 독립적입니다. 현재 권장되는 워크플로는 기존 이미터나 이미터 템플릿에서 시스템을 생성하는 것입니다.

  1. 먼저, 콘텐츠 브라우저(Content Browser)에서 우클릭한 후 FX > 나이아가라 시스템(Niagara System) 을 선택하여 나이아가라 시스템을 생성합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 선택한 이미터에서 새 시스템 생성(New system from selected emitters) 을 선택합니다. 그리고 다음(Next) 을 클릭합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  3. 템플릿(Templates) 에서 스태틱 빔(Static Beam) 을 선택합니다. 더하기 기호 ( + ) 를 클릭하여 이 템플릿을 추가합니다. 그다음, 완료(Finish) 를 클릭합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  4. 새 시스템을 BeamSystem 으로 명명합니다. 더블클릭하여 나이아가라 에디터(Niagara Editor)에서 실행합니다.

    시스템 명명

  5. BeamSystem 을 해당 레벨로 드래그합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

    파티클 이펙트를 만들 때는 항상 시스템을 레벨로 드래그하는 게 좋습니다. 그러면 컨텍스트의 모든 변경 사항과 편집을 확인할 수 있습니다. 시스템에 대한 모든 변경 사항은 해당 레벨의 시스템 인스턴스에 자동으로 전파됩니다.

  6. 새 시스템의 이미터 인스턴스에는 StaticBeam 이라는 디폴트 이름이 지정되어 있지만, 이름을 변경할 수도 있습니다. 시스템 개요에서 이미터 인스턴스의 이름을 클릭하면 해당 필드가 편집가능이 됩니다. 이미터를 FX_Beam 으로 변경합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

렌더러 세팅 변경

렌더(Render) 그룹은 스택의 마지막 부분이지만, 이펙트가 예상대로 표시되도록 하려면 몇 가지를 변경해야 합니다.

  1. 시스템 개요(System Overview)선택(Selection) 패널에서 렌더 를 클릭해 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

    이 시스템의 이미터 템플릿에는 이미 리본 렌더러가 포함되어 있습니다. 이 가이드에서는 추후 특정 모듈을 추가하여 리본이 빔으로 사용되었음을 표시합니다.

  2. 이 렌더러에 사용되는 머티리얼은 DefaultRibbonMaterial 입니다. 다른 머티리얼을 사용하고 싶은 경우에는 드롭다운을 클릭하여 해당하는 머티리얼을 검색해 선택하면 됩니다.

  3. 리본 렌더링(Ribbon Rendering) 섹션에서 스크롤을 내리면 테셀레이션(Tessellation) 이라는 섹션이 있습니다. 이 섹션에서 커브 텐션(Curve Tension).5 로 설정합니다. 이 설정은 번개 이펙트의 뾰족한 정도에 영향을 줍니다. 이 값을 높이거나 낮춰 이펙트를 변형할 수 있습니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이미터 업데이트 그룹 세팅 편집

먼저, 이미터 업데이트(Emitter Update) 그룹에서 모듈을 편집합니다. 이 동작은 이미터에 적용되며 프레임별로 업데이트됩니다.

  1. 시스템 개요선택 패널에서 이미터 업데이트 그룹을 클릭해 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 스태틱 빔 이미터 템플릿의 라이프 사이클 모드(Life Cycle Mode)셀프(Self) 로 디폴트 설정되어 있습니다. 즉, 이미터의 라이프 사이클과 루프 동작은 시스템에 의해 처리되는 게 아니라 직접 설정됩니다. 이 이펙트의 경우 루프 경과시간(Loop Duration) 값에 플로트를 하나 추가하여 약간의 무작위성을 추가할 것입니다. 루프 경과시간 의 드롭다운 화살표를 클릭한 후 동적 입력(Dynamic Inputs) > 랜덤 범위 플로트(Random Ranged Float) 를 선택합니다. 이렇게 하면 루프 경과시간에 최소(Minimum)최대(Maximum) 필드가 추가됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  3. 루프 경과시간의 최소 및 최대를 다음과 같이 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

    세팅

    최소

    .1

    최대

    .2

  4. 빔 이미터 설정(Beam Emitter Setup) 모듈은 이 이펙트가 빔을 사용한다는 것을 처음으로 나타냅니다. 스태틱 빔 템플릿으로 시작했으므로 이 모듈은 이미 포함되어 있습니다. 빔 시작(Beam Start)빔 끝(Beam End) 은 디폴트 위치에 둡니다. 박스를 체크해서 절대 시작(Absolute Start)절대 끝(Absolute End) 을 활성화할 수 있습니다.

    빔의 시작 위치는 씬의 나이아가라 시스템 위치에 의해 정의됩니다. 끝 위치는 빔 끝에 설정된 스태틱 좌표에 의해 정의되며, 직접 값을 편집하여 변경할 수 있습니다. 튜토리얼 끝에서는 빔의 끝점을 액터에게 연결하는 방법을 배우게 됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  5. 이펙트에 원호나 커브를 추가하려면 박스를 체크하여 빔 탄젠트 사용(Use Beam Tangents) 을 활성화합니다. 이렇게 하면 빔 시작 탄젠트(Beam Start Tangent)빔 끝 탄젠트(Beam End Tangent) 세팅이 표시됩니다. 디폴트로 리셋(Reset to Default) (작은 노란색 화살표) 아이콘을 클릭해 빔 시작 탄젠트벡터에 플로트 곱하기(Multiply Vector by Float) 로 변경합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  6. 빔 시작 탄젠트 벡터(Vector)플로트(Float) 를 다음 값으로 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

    세팅

    벡터

    X : 0, Y : 0, Z : 1

    플로트

    .5

  7. 빔 끝 탄젠트 벡터와 플로트를 다음 값으로 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

    세팅

    벡터

    X : 0, Y : 0, Z : 1

    플로트

    1

  8. 즉각적인 스폰 버스트(Spawn Burst Instantaneous) 모듈에서 스폰 수(Spawn Count)35 로 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

파티클 스폰 그룹 세팅 편집

다음으로, 파티클 스폰(Particle Spawn) 그룹에서 모듈을 편집합니다. 이 동작은 파티클이 처음 스폰될 때 파티클에 적용됩니다.

  1. 시스템 개요선택 패널에서 파티클 스폰 그룹을 클릭해 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 파티클 초기화(Initialize Particle) 모듈에서 수명(Lifetime) 파라미터를 찾습니다. 이 파라미터는 파티클이 사라지기 전까지 얼마나 오랫동안 표시될지를 결정합니다. 수명.2 로 설정합니다. 이렇게 수명을 짧게 설정하면 빔이 번쩍이게 되므로 더 실감나는 번개를 만들 수 있습니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  3. 스폰 빔(Spawn Beam) 모듈은 두 번째 빔에 특화된 모듈입니다. 이 모듈에서는 아무것도 설정하지 않고 그대로 두면 됩니다.

  4. 세 번째 빔에 특화된 모듈은 빔 너비(Beam Width) 모듈입니다. 빔 너비는 커브로부터 플로트(Float from Curve) 로 설정되어 있습니다. 경사로 위/아래(Ramp Up Down) 템플릿을 선택해 이 셰이프를 커브에 적용합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  5. 커브 다이어그램 아래에는 추가 세팅이 있습니다. 커브 스케일(Scale Curve)5 로 설정합니다.

파티클 업데이트 그룹 세팅 편집

이제 파티클 업데이트 그룹에서 모듈을 편집합니다. 이 동작은 이미터의 파티클에 적용되며 프레임별로 업데이트됩니다.

  1. 시스템 개요선택 패널에서 파티클 업데이트 그룹을 클릭해 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 컬러(Color) 모듈에서 RGB 값을 다음과 같이 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  3. 커브를 분해해서 빔이 번개처럼 갈라지고 튀도록 만들려면 떨림 위치(Jitter Position) 모듈을 추가해줍니다. 그러려면 플러스 기호 (+ ) 아이콘을 파티클 업데이트 에서 클릭하여 위치(Location) > 떨림 위치 를 선택합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  4. 떨림 위치 모듈을 제대로 작동하게 하려면 빔 업데이트 모듈이 필요합니다. 빔 업데이트 모듈을 추가하려면 파티클 업데이트 에서 플러스 기호 (+ ) 아이콘을 클릭한 다음 빔(Beam) > 빔 업데이트(Update Beam) 를 선택합니다. 시스템 개요 에서 빔 업데이트 모듈을 스택의 떨림 위치 모듈 위로 드래그합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  5. 이제 떨림 위치 모듈로 돌아갑니다. 떨림 양(Jitter Amount) 은 디폴트 세팅이 10 이며, 떨림 딜레이(Jitter Delay) 의 디폴트 세팅은 .25 입니다. 하지만 떨림 지연.1 로 낮추면 빔이 각이 진 삐죽삐죽한 모션으로 굽어지기 시작할 것입니다. 값이 .1 이어도 삐죽삐죽한 빔 아래로 원본의 원호 셰이프가 계속 보일 수 있기 때문에 아직은 이상적인 상태는 아닙니다. 이 문제를 해결하려면 떨림 딜레이를 음수로 설정해야 합니다. 떨림 딜레이-.01 로 설정합니다. 떨림 양15 로 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

빔의 끝 위치 조정하기

이미터 업데이트 그룹에 있는 빔 이미터 설정 모듈에서 빔의 시작 및 끝 위치를 설정할 수 있습니다. 빔의 끝 위치는 스태틱 월드 위치 값으로 디폴트 설정되기 때문에 값을 조정하여 수동으로 편집할 수 있습니다.

하지만, 해당 끝 위치를 씬의 액터로 링크하는 데 유용하게 사용될 수 있습니다. 이렇게 하면 빔의 끝 위치를 편집하고자 하는 경우 해당 액터를 간단히 이동시킬 수 있습니다. 블루프린트를 사용하는 것이 한 가지 방법입니다. 더욱 간단한 또 다른 방법으로는 스크래치 패드를 이용하여 동적 입력을 설정하는 것입니다.

  1. 선택 패널에서 빔 이미터 설정 모듈을 클릭 및 선택합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 빔 끝 옆의 드롭다운 화살표를 클릭한 후 스크래치 를 검색하고 새 동적 스크래치 입력(New Dynamic Scratch Input) 을 선택합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  3. 스크래치 패드가 기본 설정으로 열립니다. 입력, 일부 값을 가져오는 데 사용할 수 있는 맵 가져오기, 그리고 출력으로 구성되어 있습니다. 디폴트 입력에서 우클릭 후 이 디폴트 입력은 필요하지 않으므로 핀 제거(Remove Pin) 를 선택합니다.

  4. 플러스 기호 (+) 를 클릭해 새 핀을 추가합니다. 액터 를 검색하여 새 액터 컴포넌트 인터페이스(New Actor Component Interface) 를 선택합니다. 이를 통해 나이아가라 오브젝트 선택 시 레벨 에디터(Level Editor)디테일 패널(Details Panel) 로 섹션이 추가되기 때문에 링크하고 싶은 오브젝트를 선택할 수 있습니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  5. 새 액터 컴포넌트 인터페이스 에서 핀을 드래그하고 클릭 해제합니다. 트랜스폼 가져오기(Get Transform) 를 선택합니다. 이를 통해 링크된 오브젝트의 트랜스포메이션 정보가 제공됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  6. 위치 값을 출력에 연결합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  7. 시스템이 자동으로 위치(Position) -> Vector3f 노드를 추가합니다. 이를 통해 벡터를 대규모 월드 좌표를 위한 적절한 포맷으로 변환할 수 있습니다. 캔버스를 정리하여 요소들이 겹치지 않게 할 수 있습니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  8. 이제 스크래치가 완료되었으므로 변경 사항을 나이아가라 시스템으로 다시 전파하려면 적용(Apply) 을 눌러야 합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  9. 나이아가라 에디터에서 빔 이미터 설정 모듈을 다시 선택합니다. 이제 빔 끝 과 링크된 새 액터 컴포넌트 인터페이스 가 있는 것을 확인할 수 있습니다. 드롭다운 화살표를 클릭한 후 만들기(Make) > 새 유저 파라미터 읽기(Read from new User parameter) 를 선택합니다. 이렇게 하면 나이아가라 시스템 외부에서 설정할 수 있는 새 유저 파라미터가 생성됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  10. 시스템은 오브젝트 이름과 파라미터 이름을 사용하여 유저 파라미터를 디폴트로 생성하므로 유저 파라미터가 꽤 길어집니다. 이 파라미터 이름을 바꾸고 싶은 경우 파라미터 패널로 이동합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  11. 더블클릭 후 New Actor Component Interface_Beam EndBeam_End 와 같이 짧은 이름으로 바꿉니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  12. 나이아가라 시스템을 저장하고 에디터를 닫아 레벨 에디터 로 돌아갑니다. 이전에 레벨로 드래그했던 빔 시스템이 보일 것입니다. 나이아가라 시스템의 시작 포인트를 이동시켜 빔의 시작 위치를 미리 처리할 수 있습니다. 단, 끝 포인트는 고정됩니다. 다음으로 할 일은 씬의 오브젝트에 어태치하는 것입니다.

  13. 먼저, 기본 구체를 생성하여 끝 포인트에 링크합니다. 생성(Create) 메뉴에서 셰이프(Shapes) > 구체(Sphere) 를 선택합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  14. 아웃라이너(Outliner) 에서 구체를 선택하고 더블클릭하여 해당 이름을 Sphere_BeamEnd 로 바꿉니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  15. 아웃라이너 에서 나이아가라 시스템 BeamSystem 을 선택합니다. 디테일 패널에서 오버라이드 파라미터(Override Parameters) 섹션으로 스크롤을 내립니다. 여기에서 스크래치 모듈을 생성했을 때 설정한 Beam_End 유저 파라미터를 확인할 수 있습니다. 소스 액터(Source Actor) 의 드롭다운 메뉴를 선택한 후 Sphere_BeamEnd 를 선택합니다. 그렇지 않으면 스포이드를 사용하여 해당 레벨의 오브젝트를 선택할 수도 있습니다. 이제 해당 오브젝트를 이동시키면 빔 끝 위치가 함께 이동합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

최종 결과

축하합니다! 번개를 시뮬레이션하는 빔 이펙트를 생성했습니다. 아래 영상에서 번개 빔 이펙트의 예시를 볼 수 있습니다. 이처럼 빔을 사용해 만들 수 있는 비주얼 이펙트는 레이저, 광선 무기, 테슬라 코일 등 다양합니다.

빔 이펙트 최종 결과