작성
·
116
0
수업 자료 중에 Half Height가 캡슐의 반구 부분을 제외한 몸통 부분의 절반 높이라고 표현되어있고, 수업 코드상 수치도 그렇게 계산 된 것으로 보입니다.
하지만 아무리 테스트해 봐도 판정 범위와 다른것 같아 테스트 결과와 함께 질문드립니다.
위 사진은 수업 코드와 그 실행 결과입니다.
NonPlayer의 캡슐와 닿지 않아도 충돌 처리 된 모습입니다.
아래 사진은 Half Height에 캡슐의 반구 크기를 포함 시킨 수치를 적용한 코드와 그 실행 결과입니다. 그려진 캡슐과 정확히 겹칠 때 충돌 처리된 모습입니다.
그래서 아래의 자료에서 초록색으로 표기한 길이가 Half Height인지, 혹은 수업 자료의 Half Height는 맞지만 DrawDebugCapsule함수의 인자만 초록색 표기된 부분으로 사용하는 것인지 질문드립니다!!
답변 2
0
일반적인 캡슐 도형에서의 Half Height는 보통 반구(Hemisphere)가 시작되는 직전까지의 거리를 의미하는데, 언리얼 엔진은 이와 다르게 Half Height를 반구를 포함한 개념으로 정의해 사용하고 있습니다.
이 부분은 강의 노트에 반영해두겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. dhqks6님,
질문해주신 내용은 언리얼 엔진에서 캡슐의 Half Height와 충돌 범위에 관한 것입니다. 이 개념은 개발자들에게 혼동을 줄 수 있는데, 기본적으로 언리얼 엔진에서 “Capsule Half Height”는 캡슐의 전체 높이에서 반구 부분을 제외한 몸통 부분의 절반 높이를 의미합니다. 하지만 디버그 캡슐을 그릴 때 사용하는 DrawDebugCapsule
함수에서는 계산이 약간 달라질 수 있습니다.
언리얼 엔진의 캡슐은 기본적으로 두 개의 반구와 하나의 원통으로 구성됩니다:
- Radius: 캡슐의 반구 부분의 반지름입니다.
- Half Height: 이 값은 원통의 중심에서 양쪽 반구의 중심까지의 거리로 정의됩니다. 캡슐의 반구를 포함하지 않는 원통 부분의 절반 높이를 의미하지만 실제 계산에서는 반구의 반지름 값이 포함되기도 합니다.
DrawDebugCapsule
함수의 사용디버그 용도로 캡슐을 그릴 때 사용하는 DrawDebugCapsule
함수는 이 Half Height 계산을 다르게 해석할 수 있습니다. 정확한 충돌 범위를 시각적으로 확인하기 위해서는 반구의 반지름을 반영한 계산이 적절할 수 있습니다.
결론적으로, 두 번째 시도에서 반구의 반지름을 포함한 Capsule Half Height 설정이 더 정확한 결과를 제공합니다. 이는 게임에서의 충돌 판정을 보다 정확하게 반영하는 데 유리합니다.
[기존 질문과 답변에서의 유사한 내용]이 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넵 감사드립니다!