[Unreal_블루프린트]#28_Change Targeting
Unreal 블루프린트 개발 중 "타게팅" 구현에 대해 알아보겠습니다.
"블루 프린트" 활용에 대한 내용입니다.
Camera Focal Point
1. End Lock On 커스텀 이벤트 생성
2. Tick Lock On, Targeting 액션의 실시간 업데이트
1. Lock Distance 변수
- Targeting 입력 액션이 발생할 때마다, 주어진 "최대 범위"를 의미합니다.
2. Set Control Rotation
- Targeting이 성공적으로 이루어졌을 때, Controller, 즉 Camera의 회전을 Enemy 방향으로 설정합니다.
3. Tick 이벤트
- 당연하게도, Tick Lock On 이벤트를 호출하기 위해선 Tick 이벤트에 연결해줘야 합니다!
Targeting Change, 범위 내 Targeting 대상 순회
1. Get Nearest Enemy 함수 생성
2. Target Enemy & Player To Enemy Distance
- Target Enemy 객체(Key) + Player와 해당 Target Enemy 객체 간의 거리(Value)를 Pair로 "map 컨테이너"를 생성합니다. 이때 중요한 점은 "내적(Dot Product)" + "외적(Cross Product)"의 활용입니다!
3. Dot Product + Cross Product
1. 벡터 A의 길이와 벡터 B의 길이가 같다고 가정합니다. A = B
2. 이때 단순히 검정색 구와 빨간색 구 간의 거리를 map 컨테이너에 저장하면, 혼란을 가져옵니다!!
3. Cross Product + Dot Product
- 검은색 구의 전방 벡터와 A 벡터 그리고 B 벡터의 외적을 구합니다.
- 외적의 결과와 검은색 구의 상방 벡터의 내적을 구하면 Scalar 값이 나옵니다!
- 왼쪽에 있는 검정색검은색 구는 - N 값이 나오며, 오른쪽에 있는 검은색 구는 +N 값이 나오게 되죠!
4. Map 컨테이너 순회
1. Map을 순회하며 Value 값들에 접근합니다.
2. Player의 전방 벡터 기준으로 오른쪽은 양수(+) 왼쪽은 음수(-)이므로 "0"을 기준으로 비교를 진행
3. 최소 값을 경신하는 Value 값을 통해 Key 값, 즉 가까운 BP_Enemy 객체를 map 컨테이너에서 찾습니다.
4. 찾아낸 BP_Enemy 객체에 "Set Target Cursor(마킹)"을 호출하고 Lock On Enemy로 설정합니다.
결과 화면
'게임개발 > Unreal 블루프린트' 카테고리의 다른 글
[Unreal_블루프린트]#30_Behavior Tree, Tracing (1) | 2022.10.05 |
---|---|
[Unreal_블루프린트]#29_Multiple Damage Problem (0) | 2022.09.29 |
[Unreal_블루프린트]#27_Targeting (0) | 2022.09.27 |
[Unreal_블루프린트]#26_Rolling + Backstep (0) | 2022.09.27 |
[Unreal_블루프린트]#25_Fist Attack 구현, 맨손 공격 (0) | 2022.09.27 |