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

채널로 싱글 라인 트레이스 사용법

언리얼 엔진

LineTraceByChannel 은 직선상에 콜리전 트레이스를 수행하여 트레이스에 히트한 첫 번째 오브젝트를 반환합니다. SingleLineTraceByChannel 구성 방법은 다음과 같습니다.

단계

  1. 블루프린트 일인칭 템플릿에 시작용 콘텐츠를 포함 시켜 프로젝트를 새로 만들고 엽니다.

  2. FirstPersonBP/Blueprints 폴더에서 FirstPersonCharacter 블루프린트를 엽니다.

  3. 그래프에 우클릭 하고 Event Tick 노드를 검색하여 추가합니다.

    GHT2B_1.png

    그러면 트레이스가 매 프레임 실행됩니다.

  4. 실행 핀을 끌어 놓은 뒤 LineTraceByChannel 노드를 검색합니다.

    GHT2B_2.png

  5. Ctrl 키를 누르고 FirstPersonCamera 컴포넌트를 끌어 놓습니다.

    GHT2B_3.png

    바로 이 카메라에서부터 트레이스가 시작됩니다.

  6. FirstPersonCamera 노드를 끌어 놓고, Get World Location 노드를 추가한 뒤, 트레이스 Start 에 연결합니다.

  7. FirstPersonCamera 노드를 다시 끌어 놓고, Get World Rotation 노드를 추가합니다.

    GHT2B_4.png

    FirstPersonCamera위치에서 트레이스를 시작한 뒤, FirstPersonCamera 회전 값을 구하고 있습니다.

  8. Get World Rotation 을 끌어 놓고 Get Forward Vector 를 추가한 뒤, 거기서 다시 끌어 놓고 Vector * Float 노드를 추가한 뒤 1500 라 설정합니다.

    GHT2B_5.png

    회전 값과 포워드 벡터를 구한 뒤 1500 (트레이스 길이)만큼 바깥쪽으로 확장시키고 있습니다.

  9. Get World Location 을 끌어 놓고 Vector + Vector 노드를 추가한 뒤, 트레이스 노드의 End 에 아래와 같이 연결합니다.

    GHT2B_6.png

    FirstPersonCamera 위치를 받아 거기서부터 회전 값과 포워드 벡터에 따라 1500 유닛 확장시킵니다.

  10. Trace 노드에서, Draw Debug TypeFor One Frame 으로 설정합니다.

    GHT2B_7.png

    그러면 게임내 플레이 도중 라인 트레이스를 디버그 라인으로 확인할 수 있습니다.

  11. 트레이스의 실행 핀을 끌어 놓고 Print String 노드를 추가합니다.

    GHT2B_8.png

  12. Out Hit 핀을 끌어 놓고 Break Hit 를 검색한 뒤 Break Hit Result 노드를 추가합니다.

    GHT2B_9.png

  13. Break Hit ResultHit Actor 핀을 끌어 놓고 To String (Object) 노드를 추가한 뒤 Print String 노드에 연결합니다.

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

    그러면 트레이스에 걸린 오브젝트를 화면에 디버그 출력해 줍니다.

  14. 컴파일 버튼을 클릭한 뒤, 에디터에서 플레이하고 레벨의 큐브를 바라봅니다.

    GHT2B_11.png

    일인칭 시점에서 탈출하여 트레이스 시야 각도를 확인할 수 있습니다.

    트레이스가 큐브에 닿으면, 큐브가 화면에 출력됩니다.

최종 결과

위 예제는 제공된 트레이스 채널에 반응하도록 설정된 오브젝트를 전부 반환합니다만, 특정 오브젝트만 반환되도록 하고픈 경우가 있을 수 있습니다. 위 예제에서는 Actors to Ignore 핀을 사용하여 액터 배열을 받으면 트레이스에서 무시되도록 할 수 있는데, 이 경우 무시할 액터를 개별적으로 지정해 줘야 합니다.

LineTraceByObject 를 통해 지정된 ObjectType 만 반환되도록 할 수도 있습니다. 트레이스에 특정 오브젝트 세트만 포함되도록 하는 것이 가능합니다.