언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

채널로 멀티 라인 트레이스 사용법

언리얼 엔진

MultiLineTraceByChannel 는 주어진 직선상에 콜리전 트레이스를 수행, 첫 블로킹 히트를 포함해서 그때까지 있었던 모든 히트를 반환하며, 지정된 트레이스 채널에 반응하는 오브젝트만 반환합니다. 실질적으로 무슨 뜻이냐면, 트레이스 시작과 끝 사이에서 트레이스 채널에 지정된 것과 Overlap (오버랩)하는 콜리전 포함 액터 또는 컴포넌트 가 다수 있는 경우, 전부 받게된다는 뜻입니다. 하지만 지정된 트레이스 채널에 걸린 것이 Block (블록)인 경우, 그 항목 하나만 받게 됩니다. 트레이스 채널 오버랩 또는 블록과 관계 없이 모든 항목을 받고자 하는 경우, MultiLineTraceByObject 노드를 사용해야 합니다. MultiLineTraceByChannel 구성 방법은 아래와 같습니다.

단계

  1. LineTraceByChannel 예제의 방법대로 트레이스를 구성합니다.

  2. LineTraceByChannel 노드를 MultiLineTraceByChannel 노드로 대체합니다.

  3. Out Hits 핀을 끌어 놓고 ForEachLoop 노드를 추가합니다.

    GHT2B_18.png

    걸린 액터가 다수이므로, 그 각각에 대해 어떤 작업을 해주고자 합니다 (이 예제에서는 화면에 그 액터들을 출력합니다).

  4. Array Element 를 끌어놓고 Break Hit Result 를 추가한 뒤, Hit Actor 에서 Get Display Name (Object) 를 추가한 뒤 Print String 에 연결합니다.

    클릭하면 이미지 원본을 확인합니다.

    그러면 배열의 액터 중 걸린 것이 화면에 출력됩니다.

결과

피직스 액터 앞에 유리창이 있습니다.

GHT2B_17.png

유리창은 디스트럭터블 메시 이며, Trace Response (트레이스 반응)의 콜리전 세팅에서 Visibility (비저빌리티) 를 Overlap 으로, 피직스 액터 (큐브)는 VisibilityBlock 으로 설정했습니다. 오브젝트를 쏴서 (부서지도록 하고) 관통하여 플레이어나 적도 맞출 수 있도록 하는 상황에 쓸 수 있습니다.