[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 6

2022. 3. 11. 23:52·Game Programming/Unreal
충돌체

- 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
'Game Programming/Unreal' 카테고리의 다른 글
  • [Unreal] 이득우의 언리얼 C++ 게임개발의 정석 8
  • [Unreal] 이득우의 언리얼 C++ 게임개발의 정석 7
  • [Unreal] 이득우의 언리얼 C++ 게임개발의 정석 5
  • [Unreal] 이득우의 언리얼 C++ 게임개발의 정석 4
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    dp
    오블완
    티스토리챌린지
    JPA
    위클리 챌린지
    dfs
    SpringSecurity
    JWT
    Java
    알고리즘
    c++ 기초 플러스
    spring
    백준
    프로그래머스
  • hELLO· Designed By정상우.v4.10.0
chanheess
[Unreal] 이득우의 언리얼 C++ 게임개발의 정석 6
상단으로

티스토리툴바