본문 바로가기
프로그래밍

👨‍💻 [Unreal] 언리얼 엔진 에서 커스텀 트레이스 (Custom Trace) 란 무엇이고, 어떻게 활용할 수 있나요?

by 밝음의기둥 2024. 12. 16.
반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

언리얼 엔진 에서 커스텀 트레이스 (Custom Trace) 란 무엇이고, 어떻게 활용할 수 있는지 간략히 알아보았습니다.


질문 >

언리얼 엔진 에서 커스텀 트레이스 (Custom Trace) 란 무엇이고, 어떻게 활용할 수 있나요?

답변 >

**커스텀 트레이스(Custom Trace)**는 언리얼 엔진에서 사용자 정의 트레이스 채널을 활용하여 특정 요구 사항에 맞는 충돌 및 트레이스 동작을 구현하는 방법입니다. 기본 제공되는 트레이스 채널(예: ECC_Visibility, ECC_PhysicsBody) 외에, 프로젝트의 특수한 충돌 또는 상호작용 요구사항을 충족하기 위해 새로운 트레이스 채널을 정의하여 사용할 수 있습니다.


커스텀 트레이스의 특징

  1. 사용자 정의 채널:
    • 프로젝트 설정에서 새 트레이스 채널을 생성하여 기존 채널과 독립적으로 동작.
    • 특정 오브젝트와의 충돌을 보다 세밀하게 관리 가능.
  2. 필터링 기능:
    • 특정 오브젝트 또는 그룹을 대상으로 트레이스 실행.
    • 필요하지 않은 충돌 검사 무시(최적화).
  3. 유연성:
    • 다양한 상호작용 요구사항에 맞는 충돌/트레이스 동작 설계 가능.

커스텀 트레이스 설정 및 활용

1. 커스텀 트레이스 채널 생성

  1. 프로젝트 설정에서 생성:
    • Edit > Project Settings > Collision으로 이동.
    • Trace Channels 섹션에서 New Trace Channel 클릭.
    • 새 채널 이름을 지정(예: CustomInteraction).
    • 기본 충돌 반응(Block, Overlap, Ignore) 설정.
  2. 채널 생성 후 적용:
    • 생성된 채널은 코드 및 블루프린트에서 ECC_GameTraceChannel1, ECC_GameTraceChannel2 등으로 매핑되어 사용 가능.

2. 오브젝트에 커스텀 채널 적용

  1. 오브젝트의 충돌 프리셋 수정:
    • 콘텐츠 브라우저에서 오브젝트를 선택하고 Details 패널 > Collision > Collision Presets를 확인.
    • Custom을 선택한 후 새로 생성한 채널에 대해 적절한 반응(Block, Overlap, Ignore)을 설정.
  2. 코드로 적용:
UPrimitiveComponent* Component = MyActor->FindComponentByClass<UPrimitiveComponent>();
if (Component)
{
    Component->SetCollisionResponseToChannel(ECC_GameTraceChannel1, ECollisionResponse::ECR_Block);
}


3. 커스텀 트레이스 채널 사용

커스텀 트레이스를 사용하여 특정 오브젝트 그룹과의 상호작용 구현.

C++ 예제:

void AMyCharacter::PerformCustomTrace()
{
    FVector Start = GetActorLocation();
    FVector End = Start + (GetActorForwardVector() * 1000.0f);

    FHitResult HitResult;
    FCollisionQueryParams QueryParams;

    // 커스텀 트레이스 채널 사용
    bool bHit = GetWorld()->LineTraceSingleByChannel(
        HitResult,
        Start,
        End,
        ECC_GameTraceChannel1 // 새로 생성한 채널
    );

    if (bHit)
    {
        UE_LOG(LogTemp, Warning, TEXT("Hit Actor: %s"), *HitResult.Actor->GetName());
    }
}

블루프린트 예제:

  1. Line Trace by Channel 노드 추가.
  2. Trace Channel 드롭다운에서 커스텀 채널 선택(예: CustomInteraction).
  3. StartEnd 설정 후 출력 핀에서 충돌 처리.

커스텀 트레이스 활용 예시

1. 상호작용 가능한 오브젝트 필터링

  • 커스텀 트레이스 채널을 사용해 상호작용 가능한 오브젝트만 감지.
  • 플레이어가 가까운 상호작용 대상과만 상호작용.

2. AI 시야 제한

  • AI 캐릭터가 ECC_GameTraceChannel1 채널을 사용해 특정 대상만 감지.
  • AI의 시야 감지 메커니즘에 장애물을 고려.

3. 특정 환경 요소와의 상호작용

  • 예: 특정 레이어에 있는 파괴 가능한 오브젝트만 감지.

4. 게임플레이 최적화

  • 불필요한 충돌 검사 제거로 성능 최적화.
  • 예: 배경 장식은 충돌 무시.

장점과 단점

장점

  1. 높은 유연성:
    • 기본 트레이스 채널 외에 커스텀 채널을 통해 세밀한 충돌 설정 가능.
  2. 최적화 가능:
    • 충돌 검사를 특정 오브젝트 그룹으로 제한하여 성능 향상.
  3. 확장성:
    • 복잡한 게임플레이 요구사항에도 유연하게 대응 가능.

단점

  1. 관리 복잡성:
    • 채널이 많아질수록 관리가 어려워질 수 있음.
  2. 오용 시 문제 발생:
    • 잘못 설정된 채널로 인해 예상치 못한 충돌 문제가 발생할 수 있음.

결론

커스텀 트레이스는 언리얼 엔진에서 충돌 및 트레이스를 보다 세밀하게 제어하기 위한 강력한 도구입니다. 이를 통해 특정 오브젝트 그룹과의 상호작용을 필터링하거나, 게임플레이 최적화를 위한 충돌 로직을 설계할 수 있습니다. 적절한 계획과 설정을 통해 프로젝트의 요구 사항에 맞는 커스텀 트레이스를 효과적으로 활용하세요.


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기계발을 목적으로 하는 채널 입니다. 📢 오늘도 즐겁게~ 자신을 위한 계발을 함께 해보아요~ d^_^b 📌 1인 게

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형