2 분 소요

개요

  • 트레이스 채널 생성 for 액션 판정 - ABAction
  • 캐릭터 캡슐용 프로필 : ABAction 트레이스 채널에 반응 타입은 Pawn이다.
  • 스켈레탈 메시용 프로필 - 주로 랙돌 구현
  • 트리거용 프로필 : 폰 캡슐에만 반응, 타입은 WorldStaticd

트레이스 채널 추가

  • Project Setting > Engine > Collision > New Trace Channel
    image

프리셋 추가

  • 아래 쪽 New를 통해 새 프리셋을 제작가능하다.
    image

트레이스 채널 확인법

  • Config -> DefaultEngine.ini 에서 확인할 수 있다.

트레이싱 함수 선택

카테고리 1: 처리방법


카테고리2: 대상

  • Test : 무언가 감지되었는지 테스트
  • Single, AnyTest : 감지된 단일 물체 정보 반환
  • Multi : 감지된 모든 물체 정보 배열로 봔혼

카테고리3: 처리설정

  • ByChannel : 채널 이용한 감지
  • ByObjectType : 물리 타입 감지
  • ByProfile : 프로필 감지

공격 판정 구현

  • 캐릭터 위치서 시선 방향 쪽 물체 감지
  • 작은 구체 제작, 시선 방향 으로 투사
  • 하나의 물체만 감지
  • 트레이스 감지

터렛 애셋 구하기

ArtStation - capital ship Turret | Game Assets


터렛 만들기

  • 플레이어가 일정 거리 안에 오면 플레이어 방향으로 회전하게 한다.
  • 플레이어가 거리안에 오면 일정시간마다 공격을 한다.
  • 터렛의 공격은 LineTrace로 판정하며 벽을 다 무시하고 오직 플레이어만 맞도록 한다.

공격 판정 구현

트레이스 채널 추가

  • 트레이스 : 레이캐스트, 스위프 같이 트레이스를 통한 판정여부를 확인할 때 해당 채널에 대해서만 충돌 검사하도록 지정하는 레이어
  • Project Setting -> Engine -> Collision -> New Trace Channel 에서 채널을 추가한다.
  • 트레이스 이름은 Attack와 디폴트 반응으로 Ignore설정
Default Response
설명
Block 트레이스에 대해 모든 물체가 반응한다.
Overlap 충돌은 일어나지 않지만 트리거 반응을 감지한다.
Ignore 완전히 무시한다.

image


프로필 추가

image

프로필 - 특정 ObjectType이 다른 트레이스, 오브젝트간 충돌판정 여부가 있는 데이터

  • 아래 쪽 Preset New를 통해 새 프로필 제작가능
  • CollisionEnabled : Collision을 처리하는 방법에
    • No Collision

      : 충돌 없음. 움직이는 오브젝트에서 최적의 퍼포먼스를 낸다.

    • Query Only

      : 두 물체의 충돌 영역이 서로 겹치는지 테스트하는 설정. 충돌 영역의 겹침을 감지하는 것을 오버랩(Overlap) 이라고 부르며, 충돌 영역이 겹치면 관련 컴포넌트에 BeginOverlap 이벤트가 발생한다. 지정한 영역에 물체가 충돌하는지 탐지하는 레이캐스트(Raycast) 나 스윕(Sweep) 기능도 Query 에 속한다.

    • Physics Only

      : Simulate (RigidBody, Constraint) 에만 충돌을 처리. 본 단위의 감지가 필요치는 않은 캐릭터의 2차 시뮬레이션에 좋습니다.

    • Collision Enabled

      : Query와 Simulate를 다 사용합니다.

  • ObjectType : 해당 프로필을 사용하는 콜리전 채널 설정
    • WorldStatic

      : 이동하지 않는 액터.

    • WorldDynamic

       : 열리는 문과 같이 애니메이션 또는 Kinematic 같은 코드의 영향을 받아 움직이는 액터 유형.

    • Pawn

      : 플레이어 캐릭터같은 Pawn 유형.

    • PhysicsBody

      : Physics Simulation으로 인해 움직이게 되는 캐릭터.

    • Vehicle

      : Vehicle 유형.

    • Destructible

      : 부술 수 있는 어떠한 오브젝트.


Attack 트레이스 감지용 프리셋 설정

  • Name : UECapsule
  • CollisionEnabled : Query Only
  • ObjectType : Pawn

Pasted image 20240421002830


트레이스 채널 확인법

  • Config -> DefaultEngine.ini 에서 확인
  • 트레이스 채널 이름으로 검색하면 DefaultChannelResponses 부분에 ECC_GameTraceChannel1와 같은 트레이스 채널이 적혀있다.
주의사항

ECC트레이스 채널 이름 중 ECC_Engine과 같이 비슷한 이름들이 많다. ECC_GameTraceChannel 유형의 채널들을 선택해야한다.


캐릭터의 트레이스 프로파일 설정

에디터

image

코드

프로필 이름을 통해 프로필을 설정해준다. 생성자에서 작성한다.
GetCapsuleComponent는 Character를 상속받는 폰에서만 사용 가능하다.
상속받지 않는다면 직접 Collision 컴포넌트를 생성해 설정해주어야 한다.

GetCapsuleComponent()->SetCollisionProfileName(TEXT("UECapsule"));

댓글남기기