icon
8장 : 블루프린트 연동

블루프린트에서 제어하기


나이아가라 파티클 시스템은 언리얼 엔진의 강력한 비주얼 스크립팅 시스템인 블루프린트(Blueprint) 와 완벽하게 연동됩니다. 이 연동을 통해 게임 로직, 플레이어 입력, 환경 변화 등에 따라 파티클 효과를 동적으로 제어할 수 있게 됩니다. 단순히 파티클을 스폰하는 것을 넘어, 파티클의 속성을 변경하고, 이벤트를 트리거하며, 심지어 특정 상황에 따라 시스템을 활성화하거나 비활성화하는 등 훨씬 더 풍부하고 상호작용적인 비주얼 이펙트를 구현할 수 있습니다.

이 절에서는 나이아가라 시스템을 블루프린트에서 생성하고, 기본적인 속성을 제어하며, 이벤트를 활용하는 방법에 대해 알아보겠습니다.


나이아가라 시스템 컴포넌트 추가

블루프린트에서 나이아가라 시스템을 제어하는 가장 기본적인 방법은 나이아가라 시스템을 블루프린트 액터에 컴포넌트(Component) 로 추가하는 것입니다.

  1. 블루프린트 생성 또는 열기
    • 새로운 Actor 블루프린트를 생성합니다. (예: BP_NiagaraController)
    • 또는 기존 캐릭터, 무기 등의 블루프린트를 엽니다.
  2. Niagara Particle System 컴포넌트 추가
    • 블루프린트 에디터의 Components 패널에서 Add 버튼을 클릭합니다.
    • 검색창에 Niagara를 입력하고 Niagara Particle System 컴포넌트를 선택하여 추가합니다.
  3. 나이아가라 시스템 할당
    • 새로 추가된 Niagara Particle System 컴포넌트를 선택합니다.
    • Details 패널에서 Niagara 섹션의 Niagara System 속성을 찾습니다.
    • 사용할 나이아가라 시스템 에셋(예: NS_BasicSpawn 또는 이전에 만든 다른 시스템)을 드롭다운 메뉴에서 선택하거나, 콘텐츠 브라우저에서 드래그하여 할당합니다.
  4. 위치 및 부착 설정 (선택 사항)
    • Niagara Particle System 컴포넌트를 드래그하여 다른 컴포넌트(예: Static Mesh Component 또는 Skeletal Mesh Component)의 자식으로 만들면 해당 컴포넌트에 부착됩니다.
    • Details 패널에서 Transform 섹션의 Location, Rotation, Scale을 조절하여 파티클 시스템의 상대적인 위치를 조정할 수 있습니다.
    • 스켈레탈 메시에 부착할 경우, Parent Socket 속성을 통해 특정 본이나 소켓에 부착할 수 있습니다.

나이아가라 시스템 제어

가장 흔하게 사용되는 제어 방식은 파티클 시스템을 켜고 끄는 것입니다.

  • Activate 노드: 파티클 시스템을 활성화합니다. 시스템이 재생을 시작합니다.
  • Deactivate 노드: 파티클 시스템을 비활성화하고, 현재 활성화된 모든 파티클을 소멸시킵니다.
  • Set Auto Activate 노드: 블루프린트가 스폰될 때 시스템이 자동으로 활성화될지 여부를 설정합니다.
  • Is Active 노드: 현재 시스템이 활성화 상태인지 Bool 값을 반환합니다.

직접 해보기: 버튼을 눌러 파티클 켜고 끄기

새로운 Actor 블루프린트 (BP_ToggleNiagara)를 만들고 나이아가라 시스템 컴포넌트를 추가한 뒤, 키 입력을 받아 시스템을 켜고 끄는 로직을 구현해 보겠습니다.

  1. 새로운 Actor 블루프린트 BP_ToggleNiagara를 생성합니다.
  2. Components 패널에서 Niagara Particle System 컴포넌트를 추가하고, Niagara System 속성에 NS_BasicSpawn 또는 원하는 나이아가라 시스템을 할당합니다.
  3. Event Graph 탭으로 이동합니다.
  4. Event Begin Play 노드에서 Niagara Particle System 컴포넌트의 레퍼런스를 가져와 Deactivate 노드를 연결하여 게임 시작 시 파티클 시스템을 비활성화합니다.
  5. 빈 공간에 우클릭하고 Keyboard Events에서 원하는 키(예: E 키)를 검색하여 E 키 이벤트 노드를 추가합니다.
  6. E 키 이벤트 노드의 Pressed 핀에서 Niagara Particle System 컴포넌트의 레퍼런스를 가져와 Is Active 노드를 연결합니다.
  7. Is Active 노드의 Return Value에서 Branch 노드를 연결합니다.
  8. Branch 노드의 True 핀에서는 Niagara Particle System 컴포넌트 레퍼런스에서 Deactivate 노드를 연결합니다.
  9. Branch 노드의 False 핀에서는 Niagara Particle System 컴포넌트 레퍼런스에서 Activate 노드를 연결합니다.
  10. 블루프린트를 컴파일하고 저장한 후, 레벨에 BP_ToggleNiagara 액터를 배치합니다.
  11. 게임을 플레이하여 E 키를 누르면 파티클 시스템이 켜지고, 다시 누르면 꺼지는 것을 확인할 수 있습니다.

나이아가라 시스템의 사용자 변수 제어

나이아가라 시스템 내부에 사용자 변수(User Variables) 를 노출시켜 블루프린트에서 이를 직접 제어할 수 있습니다. 이는 파티클의 스폰율, 색상, 크기, 힘의 강도 등 거의 모든 속성을 동적으로 변경할 때 사용됩니다.

나이아가라 시스템에서 사용자 변수 노출

  1. 나이아가라 시스템 에디터를 엽니다.
  2. Parameters 패널에서 User 섹션을 찾습니다.
  3. + 버튼을 클릭하고 Add User Parameter에서 원하는 타입(예: Float, Vector, Color)을 선택하여 새 사용자 변수를 만듭니다. (예: User.SpawnRateMultiplier, User.ImpactColor)
  4. 새로 생성된 사용자 변수를 드래그하여 이미터의 해당 속성 입력 핀에 연결합니다.
    • 예시: Spawn Rate 모듈의 Spawn Rate 입력에 User.SpawnRateMultiplier를 연결합니다.
  5. 연결된 사용자 변수의 기본값을 설정합니다.

블루프린트에서 사용자 변수 설정

  1. 블루프린트 에디터의 Event Graph로 돌아갑니다.
  2. Niagara Particle System 컴포넌트의 레퍼런스를 가져옵니다.
  3. Set Niagara Variable 노드를 검색하여 추가합니다. (예: Set Niagara Variable Float, Set Niagara Variable Vector)
  4. Variable Name 입력에 나이아가라 시스템에서 노출시킨 사용자 변수의 정확한 이름을 입력합니다. (예: User.SpawnRateMultiplier)
  5. In Value 입력에 원하는 값을 연결합니다.

직접 해보기: 스폰율을 동적으로 조절하기

위에서 만든 BP_ToggleNiagara 블루프린트에 스폰율 조절 기능을 추가해 보겠습니다.

  1. NS_BasicSpawn 나이아가라 시스템을 엽니다.
  2. Parameters 패널User 섹션에서 + 버튼을 클릭하고 Add User Parameter > Float를 선택하여 User.SpawnRateMultiplier라는 이름의 사용자 변수를 만듭니다. 기본값은 1.0으로 설정합니다.
  3. Emitter Update 섹션의 Spawn Rate 모듈을 선택합니다.
  4. Spawn Rate 입력 옆의 드롭다운을 클릭하고 Float from Niagara Parameter를 선택하여 User.SpawnRateMultiplier를 연결합니다.
  5. 나이아가라 시스템을 저장합니다.
  6. BP_ToggleNiagara 블루프린트 에디터로 돌아갑니다.
  7. E 키 이벤트의 Activate 노드 뒤에 Delay 노드를 연결하고 Duration0.5초 정도로 설정합니다.
  8. Delay 노드 뒤에 Niagara Particle System 컴포넌트 레퍼런스에서 Set Niagara Variable Float 노드를 추가합니다.
  9. Variable NameUser.SpawnRateMultiplier 를 정확히 입력합니다.
  10. In Value500.0과 같은 높은 값을 연결합니다.
  11. Set Niagara Variable Float 노드 뒤에 또 다른 Delay 노드를 연결하고 Duration1.0초 정도로 설정합니다.
  12. Delay 노드 뒤에 다시 Set Niagara Variable Float 노드를 추가하고 Variable Name은 동일하게 User.SpawnRateMultiplier, In Value100.0과 같은 기본 값으로 설정합니다.
  13. 컴파일하고 저장한 뒤 게임을 플레이합니다. E 키를 누르면 파티클이 처음에는 폭발하듯이 많이 나왔다가, 잠시 후 정상적인 스폰율로 돌아오는 것을 확인할 수 있습니다.

나이아가라 이벤트 활용

나이아가라 이벤트는 블루프린트와 나이아가라 시스템 간에 데이터를 주고받는 강력한 메커니즘입니다. 블루프린트에서 특정 이벤트(예: 플레이어 피격)를 발생시키고, 나이아가라 시스템이 이 이벤트를 감지하여 파티클을 스폰하거나 속성을 변경하게 할 수 있습니다.

블루프린트에서 이벤트 발송

블루프린트에서 나이아가라 이벤트를 발생시키려면 Spawn System at Location 또는 Spawn System Attached 노드를 사용하며, 이때 Spawn System 노드의 Parameters 핀에 데이터를 전달할 수 있습니다.

예시

  • Spawn System at Location 노드를 사용하여 파티클 시스템을 스폰합니다.
  • Location 핀에 원하는 월드 위치를 연결합니다.
  • Niagara System 핀에 스폰할 나이아가라 시스템 에셋을 할당합니다.
  • Parameters 핀에서 Make Niagara System Spawn Info 구조체를 만들고, 여기에 특정 이름의 변수(예: MyImpactPower)를 추가하여 값을 전달합니다.

나이아가라 시스템에서 이벤트 수신

나이아가라 시스템은 블루프린트에서 보낸 이벤트를 Event Handler 모듈을 통해 수신합니다.

  1. 나이아가라 시스템 에디터에서 이미터의 Event Handlers 섹션으로 이동합니다.
  2. + 버튼을 클릭하고 Add Event Handler를 선택합니다.
  3. Event Handler 모듈을 선택하고 Details 패널에서 Source 섹션의 Source 속성을 Blueprint로 설정합니다.
  4. Source Event Name에 블루프린트에서 보낸 이벤트 변수의 정확한 이름을 입력합니다. (예: MyImpactPower)
  5. Actions 섹션에서 Add Action을 클릭하고 Spawn Particles를 선택합니다. (이벤트가 발생할 때 파티클을 스폰)
  6. Spawn Particles 액션의 Spawn Count나 다른 속성을 Event Handler의 출력 핀(예: Payload.Float.MyImpactPower)과 연동하여 블루프린트에서 전달된 값에 따라 파티클을 다르게 스폰하게 할 수 있습니다.

블루프린트 연동은 나이아가라 파티클 시스템을 단순한 비주얼 이펙트에서 벗어나, 게임 플레이와 유기적으로 상호작용하는 핵심 요소로 만들어줍니다. 시스템 활성화/비활성화, 사용자 변수 제어, 그리고 이벤트 기반의 통신을 통해 여러분은 플레이어의 행동이나 게임 환경 변화에 반응하는 훨씬 더 동적이고 몰입감 있는 시각 효과를 구현할 수 있을 것입니다.