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

Single Line Trace by Channel 블루프린트 노드를 사용하여 비저빌리티 채널에 반응하여 처음 걸린 액터를 반환하고, 그 이름을 출력하는 법을 알아봅니다.

Windows
MacOS
Linux
On this page

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 만 반환되도록 할 수도 있습니다. 트레이스에 특정 오브젝트 세트만 포함되도록 하는 것이 가능합니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback