Recast graph with tags
태그와 페널티를 사용하는 Recast 그래프 예제 장면
이 예제 장면은 태그를 사용하여 서로 다른 에이전트가 그래프의 서로 다른 영역을 통과할 수 있게 하는 방법을 시연합니다. 또한 일부 에이전트가 그래프의 특정 영역을 피하도록 하는 방법도 보여줍니다.
Contents
Graph setup
이 장면에서는 RecastGraph 나 GridGraph 모두 잘 작동할 수 있습니다. 그러나 이 예제에서는 Recast 그래프가 임의로 선택되었습니다.
지면이 거의 평평하기 때문에 Recast 그래프는 기본 설정에서 많은 수정을 필요로 하지 않습니다. 가장 눈에 띄는 변경 사항은 다음과 같습니다:
- 그래프의 셀 크기가 약간 줄어들어 세계를 더 정확하게 표현합니다.
- 캐릭터 반경도 장면에서 사용될 에이전트의 크기를 반영하도록 변경되었습니다.
- 그래프의 경계 상자가 세계에 맞도록 변경되었습니다.
- 레이어 마스크는 기본 레이어만 포함하도록 변경되었습니다. 이는 이 장면의 모든 장애물이 기본 레이어에 있기 때문입니다.
Tags that influence traversability
장면에는 빨간 복도와 파란 복도가 하나씩 있습니다. 또한 빨간 에이전트와 파란 에이전트 두 개가 있습니다. 빨간 에이전트는 빨간 복도만 통과할 수 있고, 파란 에이전트는 파란 복도만 통과할 수 있습니다.
이는 태그를 사용하여 구현되었습니다. 빨간 복도의 지면에는 "Red" 태그가 할당되었고, 파란 복도에는 "Blue" 태그가 할당되었습니다. 마찬가지로 에이전트는 기본 지면 태그와 자신의 색상에 해당하는 태그만 통과할 수 있도록 구성되었습니다.
복도의 지면 타일에는 RecastMeshObj 컴포넌트가 추가되었습니다. 이를 통해 Recast 그래프가 이 메시를 스캔하는 방식을 변경할 수 있습니다. 이 경우, 표면 유형이 "태그가 있는 보행 가능 표면"으로 변경되었고, 태그는 각각 "Red" 또는 "Blue"로 변경되었습니다.
에이전트의 경우, FollowerEntity 컴포넌트가 태그를 고려하도록 약간 조정되었습니다. 특히 "Tags" 항목 아래에서 각 봇이 통과할 수 없는 태그가 비활성화되었습니다.
예를 들어, 빨간 봇이 경로를 계산할 때는 모든 파란 태그 노드를 통행 불가로 간주합니다.
Working with tags 참고 |
Tags with penalties
이전 섹션에서 설명한 태그를 기반으로, 장면에는 또한 검은색 영역이 있습니다. 이 영역은 두 에이전트 모두 통과할 수 있지만, 파란 에이전트는 큰 우회를 하지 않는 한 이 영역을 피하려고 합니다.
첫 번째 비디오에서는 우회가 상대적으로 짧아서 파란 에이전트가 검은색 영역을 피합니다. 하지만 두 번째 비디오에서는 우회가 더 길어져서 파란 에이전트가 대신 검은색 영역을 통과하기로 결정합니다.
이 설정 방식은 FollowerEntity 컴포넌트의 "Tags" 항목 아래에서 "BlackHighPenalty" 태그가 파란 에이전트에게 높은 페널티로 설정된 것입니다. 지면은 이전 섹션에서 설명한 것처럼 RecastMeshObj 컴포넌트를 사용하여 "BlackHighPenalty" 태그로 태깅되었습니다.
Working with tags 참고 |