[Unreal_블루프린트]#32_AI Patrolling Path using Spline
Unreal 블루프린트 개발 중 "AI" 구현을 진행합니다.
"블루 프린트" 활용에 대한 내용입니다.
Summary
- Spline 컴포넌트 : 임의의 Actor에 추가하고 World에 AI가 Patrolling을 수행할 Path를 그려줍니다.
- Patrol Component : 해당 Actor를 멤버로 갖는 컴포넌트들 별도로 생성하고 세부 사항을 구현합니다.
- BTTask_Patrol : AI의 Patrolling을 BT에서 실행합니다.
BP_PatrollingPath
1. BP_Patrolling Path
2. Spline
- Wolrd에 배치된 흰색 선이 Spline입니다.
- Spline 특성에 "Closed Loop"을 통해 Spline을 닫힌 구조로 생성할 수 있습니다.
Patrol Component
1. Patrol Component
- Patrol Path 변수 : 앞서 생성한 BP_PatrolPath를 참조하는 변수
- Index 변수
- Reverse : 추후에 AI가 Patrolling할 방향입니다.
- Acceptance Radius
2. Patrol Component::Is Valid Path()
3. Patrol Component::Get Index Location()
- Spline은 여러 포인트를 잇는 선으로 만들어지며, 각각의 포인들은 내장 배열에 저장되어있습니다.
- 현재 Index 변수가 가리키는 Spline 포인트의 위치를 반환합니다.
4. Patrol Component::Update Next Index()
- Spline Point 배열의 현재 Index를 반환하는 함수입니다.
- 배열을 순회하는 순서를 정 방향으로 할 것인지, 역 방향으로 할 것인지 여부 결정
- 단순 알고리즘이기 때문에 자세한 설명은 생략합니다.
4. Patrol Component::Get Spline Count()
- Spline이 갖는 총 포인트 개수를 반환합니다.
5. BP_AI
- BP_AI가 소유할 Component로서, 앞서 구현한 Patrol Component를 추가해줍니다.
BTTask_Patrol
1. Received Execution AI
- BP_AI의 Patrol Component를 가져옵니다.
- AI Move To : Patrol Component::Get Index Location()을 통해 가져온 위치로 AI를 이동시킵니다.
결과 화면
1. Behavior Tree
2. 결과 화면
'게임개발 > Unreal 블루프린트' 카테고리의 다른 글
[Unreal_블루프린트]#31-3_Environmental Querying System(EQS), Strafe Left and Right (1) | 2022.10.11 |
---|---|
[Unreal_블루프린트]#31-2_Environmental Querying System(EQS), EnvQueryContext (0) | 2022.10.10 |
[Unreal_블루프린트]#31-1_Environmental Querying System(EQS), Grid (0) | 2022.10.05 |
[Unreal_블루프린트]#30_Behavior Tree, Tracing (1) | 2022.10.05 |
[Unreal_블루프린트]#29_Multiple Damage Problem (0) | 2022.09.29 |