UE 5 스터디/Gameplay Ability System(GAS)
24-12. 감전사 스펠 - (6) Target 트레이스 채널
Crat3
2025. 3. 7. 16:57
0. 개요
게임 내에서 비저블리티(Visiblity) 채널은 캐릭터의 클릭으로 이동을 체크하기 위한 용도로 사용되고 있다.
숨겨지는 액터들의 경우, 해당 채널이 무시로 설정되어 있기 때문에, 감전사와 같은 논 타겟팅 스킬이 벽에 닿지 않게되는 현상이 있다.
이를 개선하기 위해 새로운 트레이스 채널을 만들어 사용하도록 한다.
1. Target 트레이스 채널
(1) 채널 추가
(2) Aura.h에서 채널 변수 이름 지정
#pragma once
#include "CoreMinimal.h"
#define CUSTOM_DEPTH_RED 250
#define ECC_Projectile ECollisionChannel::ECC_GameTraceChannel1
#define ECC_Target ECollisionChannel::ECC_GameTraceChannel2
(3) TargetDataUnderMouse 어빌리티 태스크 수정
void UTargetDataUnderMouse::SendMouseCursorData()
{
// 예측
FScopedPredictionWindow ScopedPrediction(AbilitySystemComponent.Get());
APlayerController* PC = Ability->GetCurrentActorInfo()->PlayerController.Get();
// 마우스 커서 데이터
FHitResult CursorHit;
PC->GetHitResultUnderCursor(ECC_Target, false, CursorHit);
마우스 커서 아래의 대상에 대한 정보를 가져오는 함수에서, 트레이스 채널을 비저블리티가 아닌 ECC_Target으로 지정한다.
2. 트레이스 채널 조정
(1) BP_AuraCharacter의 박스 컴포넌트
가려지는 액터와의 충돌을 감지하는 박스 컴포넌트와 충돌이 발생하지 않도록 Target 채널을 무시로 체크한다.
(2) BP_FadeActor 가려지는 액터
가려진 이후에는 타게팅이 작동하지 않도록 Target 채널에 대한 반응을 바꾸어 로직을 개선한다.
- 가려지는 액터가 잠깐 사라졌다가 다시 나타나는 경우
해당 액터의 메쉬의 콜리전 복잡도를 Project Default로 설정하고 단순 박스 콜리전을 추가한다.