충돌체
- WorldStatic : 움직이지 않는 정적인 배경 액터에 사용하는 콜리전 채널. 주로 스태틱메시 액터에 있는 스태틱메시 컴포넌트에 사용.
- WorldDynamic : 움직이는 액터에 사용하는 콜리전 채널. 블루프린트에 속한 스태틱메시 컴포넌트에 사용.
- Pawn : 플레이어가 조종하는 물체에 사용. 캐릭터의 충돌을 담당하는 캡슐 컴포넌트에 사용.
- Visibility : 배경 물체가 시각적으로 보이는지 탐지하는데 사용. 탐지에서 폰은 제외하고 마우스로 물체를 선택하는
피킹 기능을 구현할 때 사용.
- Camera : 카메라 설정을 위해 카메라와 목표물 간에 장애물이 있는지 탐지하는데 사용.
- PhysicsBody : 물리 시뮬레이션으로 움직이는 컴포넌트에 설정한다.
콜리전 프리셋의 물리기능 설정
- Query : 두 물체의 충돌 영역이 서로 겹치는지 테스트하는 설정.
- 충돌 영역의 겹침을 감지하는 것은 오버랩, 충돌 영역이 겹치면 관련 컴포넌트에 BeginOverlap 이벤트가 발생.
지정한 영역에 물체가 충돌하는지 탐지하는 레이캐스트, 스윕기능도 여기에 속한다.
- Physics : 물리적인 시뮬레이션을 사용할 때 설정한다.
- Query and Physics : 위의 두 기능을 모두 사용하는 설정. 두 기능을 모두 수행하느라 물리엔진이 수행할 계산량이 많다.
- Query 기능을 사용하는 경우 관련 이벤트가 발생하도록 Generates Overlap Events 옵션이 체크돼 있다.
- 해당 컴포넌트에 설정된 콜리전 채널이 상대방 컴포넌트의 콜리전 채널과 어떻게 반응할지 지정하는 작업이 필요하다.
- lgnore : 콜리전이 있어도 아무 충돌이 일어나지 않는다.
- overlap : lgnore와 동일하게 물체가 뚫고 지나갈 수 있지만 이벤트를 발생시킨다.
- block : 물체가 뚫고 지나가지 못하도록 막는다.
- 각 반응은 block < overlap < lgnore 순으로 반응한다. 충돌 컴포넌트중 하나가 lgnore일 경우 무시하고 겹침과 블록 반응은 발생하지 않는다.
콜리전 채널의 종류
- 오브젝트 채널 : 콜리전 영역에 지정하는 콜리전 채널
- 트레이스 채널 : 어떤 행동에 설정하는 콜리전 채널
언리얼 오브젝트의 기본값 변경
- 언리얼 오브젝트의 기본값을 변경하면 언리얼 에디터에서 이전 코드의 값을 그대로 유지하는데 가급적이면 에디터를 종료하고 다시 시작하는 것이 좋다.
트레이스 채널을 사용한 충돌 판정
- 물리는 월드의 기능이므로 GetWorld() 함수를 사용해 월드에게 명령을 내려야 한다.
- SweepSingleByChannel : 트레이스 채널을 사용해 물리적 충돌 여부를 가리는 함수
- HitResult : 물리적 충돌이 탐지된 경우 관련된 정보를 담을 구조체
- CollisionShape : 탐색에 사용할 기본 도형 정보
- Params : 탐색방법에 대한 설정 값을 모아둔 구조체
- ResponseParams : 탐색 반응을 설정하기 위한 구조체
'Game Programming > Unreal' 카테고리의 다른 글
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 8 (0) | 2022.03.16 |
---|---|
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 7 (0) | 2022.03.15 |
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 5 (0) | 2022.03.11 |
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 4 (0) | 2022.02.28 |
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 3 (0) | 2022.02.25 |