- 역삼각함수 : 삼각함수의 역함수를 의미합니다.
- 역삼각함수는 삼각함수의 결과값을 이용하여 각을 구할 때 사용됩니다.
- 기존에 공부한 삼각함수를 통해 값을 구할 수 있었습니다.
- 역삼각함수를 사용하면 위에서 구한 값을 통해 각도를 구할 수 있습니다.
- 하지만 삼각함수의 그래프를 생각해본다면 값이 중복되는 부분들이 존재합니다.
cos(0) = 1, cos(2π), cos(4π) = 1 ...
arccos(1) = 0, 2π, 4π...- 즉, 범위를 지정해 입력값과 출력값의 비율을 맞춰줘야 합니다.
- 간단한 Enemy를 추가합니다.
- Enemy가 바라보는 방향과 Enemy와 Player를 이어주는 방향의 각도를 구해보는 실습을 진행해보도록 하겠습니다.
(응용 시 몬스터의 후방 공격 판정 등.. 에 사용 가능)
- 몬스터 역할을 해줄 Blueprint class를 생성합니다.
- 바라보는 방향을 판별하기 위해 표시해주도록 합니다.
- 몬스터의 전방 벡터와 몬스터에서 플레이어를 향하는 벡터를 구해줍니다.
- 두 벡터의 각도를 구해 확인합니다.
몬스터의 전방 벡터(바라보는 방향)과 플레이어를 레벨에서 찾아줍니다.
몬스터의 위치는 변경되지 않을 것이므로, 시작과 동시에 저장합니다.
몬스터에서 플레이어로 향하는 방향 벡터를 구한 후 1에서 구한 전방 벡터와 내적을 수행해 스칼라 값을 얻어줍니다.
해당 값을 역삼각함수에 넣어 각도를 구해 출력합니다.
결과 확인
몬스터의 기준에서 플레이어가 위치한 방향의 각도를 구할 수 있습니다.
- arccos은 0 ~ 180 사이의 각도만을 결과로 출력합니다.
- 이전에 배운 외적을 통해 관계를 파악해 360도 기준으로 변경해줍니다.
기존과 동일하게 내적한 결과를 Degree라는 변수에 저장합니다.
몬스터의 전방 벡터와 몬스터에서 플레이어로 향하는 벡터를 외적한 결과값에 따라 분기합니다.
결과 확인
몬스터의 기준에서 플레이어가 위치한 방향의 각도를 성공적으로 확인할 수 있습니다.