강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

eom5005님의 프로필 이미지
eom5005

작성한 질문수

실전! 언리얼 소울라이크 개발: A to Z

타겟팅 시스템

FindClosestTarget CheckValue 절댓값 처리

해결된 질문

작성

·

30

0

카메라와 대상 사이의 '가장 가까운 방향에 놓인 대상'을 찾는 게 목적이라면 FindClosestTarget 함수에서 CheckValue를 구할 때 절댓값 처리를 해야 되는 게 맞지 않나요?

답변 2

0

Spector님의 프로필 이미지
Spector
지식공유자

안녕하세요!
해당 코드는 단순 거리 계산이 아닌  플레이어의 시선방향과 가시성을 고려해서

카메라 전방 벡터와 타겟 방향 벡터의 유사도 측정을 통해서 시야 중심에서 가장 가까운 타겟을 우선 선택하는 것 입니다.

eom5005님의 프로필 이미지
eom5005
질문자

말씀하신 '거리' 계산으로 착각한 것은 아닙니다. 내적의 결괏값이 1일 때 두 벡터의 유사도가 가장 크고. -1일 때 반대라는 걸 헷갈렸습니다. 답변 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. eom5005님.

FindClosestTarget 함수에서 CheckValue를 구할 때 절댓값 처리가 필요하다는 질문에 대해 설명드리겠습니다. 해당 함수의 목적이 ‘카메라와 가장 가까운 방향에 놓인 대상을 찾는 것’이라면, CheckValue를 계산하는 과정에서 방향성을 고려하여 처리해야 합니다.

CheckValue 절댓값 처리:

  1. 의도와 목적: 만약 두 점간의 거리를 계산하여 가장 ‘가까운’ 대상을 찾고자 한다면, 절대값을 사용하는 것이 일반적입니다. 이는 거리가 항상 양수여야 하기 때문입니다.

  2. 반사 벡터 기반 판단: 방향이나 다른 조건에 따라 가장 가깝다는 것을 선형적인 거리 기준이 아닌 특정 각도나 방향성을 기준으로 판단한다면, 절대값이 아닌 다른 절차를 사용할 수 있습니다. 이럴 경우 벡터의 내적 값을 사용하여 확인하거나 특정 방향 기준으로 판단해야 합니다.

  3. 실제 의도 구현: 카메라의 시야를 기준으로 특정 방향이나 시선 범위 내에서 가장 가깝게 인식되도록 하려 한다면, 벡터 간 옵티컬 방향 차이에 기반한 연산을 더 진행해야 할 수 있습니다.

이러한 선택은 구현하고자 하는 시스템의 디자인과 의도에 따라 달라질 수 있습니다. 절대값은 일반적으로 거리를 계산할 때 유용하지만, 방향성의 맥락에서는 상황에 따라 판단할 필요가 있습니다.

참고로 유사한 기능 및 구현 관련 답변이 있는 게시물을 참고하시면 좋습니다:
- 라인 트레이싱과 노멀 벡터의 작동 원리

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

eom5005님의 프로필 이미지
eom5005

작성한 질문수

질문하기