본문 바로가기
Unreal

UE5 niagara Collision

by 도승이 2022. 3. 24.

개인적인 공부)

UE Version - UE5 Preview2

 

테스트 목적 : 나이아가라 파티클을 투사체로 맞췄을때(충돌) 이벤트or 이펙트를 발생시킨다.

 

시뮬레이션방법에서: CPU와 GPU가 충돌 처리방법이나 용도가 달랐다.

 

CPU : Collision Event를 통해서 Niagara - Niagara 간 연동이 가능하다.

        Collision 연산이 종종 부정확하다.

 

GPU : Collision 연산이 정확하지만 이벤트처리가 구조적으로 안된다.

        블루프린트와의 연동을 통해 사용하자.

        사용자 노출값, Export Particle Data to Blueprint 기능을 이용한다

 

 

CPU방법 테스트

CPU 에서 테스트 해본 방법

만약 A 파티클의 Collision 이 발생할때 B 파티클을 생성한다고 할때

A파티클에 Generate Collision Event 를 만들어주고

B파티클에서는 프로퍼티 +스테이지에서 이벤트핸들러 프로퍼티를 만들어주고

해당소스에 A파티클의 Collision Event를 체크해준다.

+를 눌러서 Receive Collision Event도 생성해준다.

 

결과: A파티클이 뭔가에 닿아서 collision 이벤트가 호출되고 해당 위치에 B파티클이 생성된다.

Collision Event Handler

 

 

 

Niagara GPU Collision Test

GPU 에서 테스트해본 방법

1. 파티클업데이트에 +를 눌러서 Export Particle Data to Blueprint를 만들어준다

 

2. 왼쪽에 사용자 노출값에 Object 타입 아무거나 만들어준다.

 

3. Condition To Export Data에 CollisionValid 체크

  익스포트에 콜백 핸들러 파라미터에 아까의 Object타입을 넣어준다

 

4. Actor Blueprint를 대충 하나 만들어주자

 

5. 컴포넌트 추가에 Niagara particle system component 추가 (아까만든 Niagara System 할당)

6. 상단 바 클래스세팅에서 인터페이스 - Niagara Particle Callback Handler 추가

 왼쪽밑에서 Receive Particle Data 우클릭 - 이벤트실행핀 추가

 

7. BeginPlay 이벤트에 Set Actor Parameter추가

       타깃 - niagara

       Parameter Name - (2)에서만든 변수이름

       Param - Self

 

8. (6)에서 만든 실행핀에 Foreach - position - Print String으로 Niagara Particle이

    Collision된 위치값이 블루프린트를 통해 출력되어지는지 확인해본다.

 

9. 레벨에서 Blueprint 넣고 테스트

 

Niagara - Blueprint 통신 테스트 결과

댓글