액션 선택 목표를 선택 , 어떤 계획을 따라야 하는지를 결정할 의무가 있는 행동의 부분 ' 여기로 가라 ' 및 'A, B 그리고 C 를 하라 ' 라고 지시해주는 부분 조종 액션 선택층에 의해 설정된 계획을 만족시킬 수 있는 바람직한 궤적을 계산 에이전트가 어디로 가야만 하고 그곳에 도달하기 위해 얼마나 빠르게 움직여야 하는지를 기술하는 조종힘을 만들어 낸다 이동력 A 에서 B 까지 지나가는 방법 (HOW) 이다 . 만약 낙타 , 탱크 및 금붕어의 움직임 구조를 구현해서 북쪽으로 가라는 명령이 주어진다면 이동의 의도는 동일하지만 , 움직임 생성을 위해 서로 다른 기계적 과정을 사용 조종층에서 분리함으로써 완전히 다른 형식의 이동력에 대해서 별도의 수정 없이 동일한 조종 행동을 활용할 수 있게 한다 .
Heading / Side vector 움직이는 엔티티를 위한 지역 좌표계를 정의 매 프레임 마다 갱신
조종힘 계산 . Calculate() 은 모든 운반기의 활성화된 조종 행동들을 합계하여 총 조종힘을 반화 조종힘을 가속도로 변환 가속도로 속도를 갱신 운반기의 위치를 새로운 속도로 갱신 방향은 속도에 따라 정렬되어야 하므로 , 정규화된 속도 벡터와 동등함을 유지하면서 갱신 운반기의 속도가 아주 작은 임계값 이상이어야만 계산
원하는 속도를 계산 에이전트가 목표 위치에 도달하는 데 필요한 속도 반환값인 조종힘 = 원하는 속도 – 에이전트의 현재 속도
MAGENTA: 운반기의 속도 BLUE: 조종힘
목표에서 멀리 떨어져 있는 경우 도착하기 행동이 어떻게 찾기와 동일하게 동작하는지 목표에서 가까이 다가갔을 때 감속이 어떻게 발효하는지를 주목한다
MAGENTA: 운반기의 속도 BLUE: 조종힘
추격하기 에이전트가 움직이는 목표를 가로채는 것이 요구될 때 유용 목표가 앞으로 어디로 갈 것인지를 예측하고 , 그 위치와 현재 위치를 상쇄하는 방향으로 , 간격을 좁혀감에 따라 조정도 해가면서 달릴 것이다 . Quarry: 사냥감
MAGENTA: 운반기의 속도 BLUE: 조종힘 얼마나 먼 미래 시점까지 예측해야만 하는가를 결정 예측하는 정도는 추격자와 도피자의 ‘ 거리에 비례 ’ & ‘ 속도에 반비례 ’ 이 시간이 결정되면 , 추격자가 찾기를 해야 할 미래 위치를 예상할 수 있다 .
자신이 처한 환경을 무작위로 걸어가는 인상을 주는 조종힘 빨선 : 조종힘 흰원 : 목표물 보라원 : 배회하기 반경 에이전트 ~ 보라원중점 : 배회하기 거리
MAGENTA: 운반기의 속도 BLUE: 조종힘 CYAN: 조종 방향 배회 방향 ( 빨간점 ) 수정된 배회 방향은 검은원 (r:2) 에 놓여 있도록 제한된다 . strength : 0~1 범위의 힘은 흰선을 따라 밖으로 나가려는 빨간점의 움직임으로 고려될 수 있다 . rate : 배회 방향이 얼마나 빨리 바뀌는지를 제어하는 0~1 범위의 비율은 , 흰원 (r:0.6) 의 반지름으로 표현된다 .
MAGENTA: 운반기의 속도 BLUE: 조종힘 흰상자의 길이 : 운반기의 현재 속도 * 상수 시간 상자와 충돌하는 장에물 : 잠재적인 충돌 위협 최근접 위협이 회피하기 위해 선택되며 , 초록 경계로 표현된다 . 장애물을 피하기 위해 , 측면의 조종힘이 장애물의 중심과 반대 방향으로 적용된다 .
MAGENTA: 운반기의 속도 BLUE: 조종힘 움직일 때 벽과 주어진 거리를 유지하는 것이 목적 현재 속도에 기반한 ‘ 미래의 위치 ( 껌점 ) ’ 를 예측 미래의 위치는 ‘ 벽의 최근접점 ( 빨점 ) ’ 으로 투영 ‘ 벽의 노말 ( 빨선 ) ’ 을 따라서 ‘ 벽의 최근접점 ( 빨점 ) ’ 을 원하는 OFFSET 만큼 이동시키면 ‘ 타겟점 ( 빨원 ) ’ 을 구할 수 있다 . 최종적으로 타겟점으로 SEEK 행동을 사용한다 .
운반기를 어느 위치에 둠으로써 , 자신이 피하려고 하는 에이전트와 자신 사이에 항상 장애물이 있도록 하는 것 사격에서 엄폐물 찾기 NPC 가 숨거나 , 게임 실행자에게 슬며시 접근 [ 행동 실행 순서 ] 각 장애물들에 대해 ‘ 은신 지점 ( 빨점 ) ’ 을 결정 각 빨점과의 거리가 계산되고 , 운반기는 최근접점을 향하여 ‘ SEEK ’ 행동을 수행 . 적절한 장애물을 발견할 수 없으면 ‘ EVADE ’ 수행
운반기가 경로를 형성하고 있는 일련의 중간 지점들을 따라서 이동하도록 조종하는 힘을 제공 . 순찰 , 험난한 지역 갈 수 있게 , 경주 트랙
운반기를 목표 운반기로부터 명시된 오프셋 만큼 떨어진 위치를 유지하기 위해 요구되는 조종힘을 계산 대형 / 진영을 생성하는 데 특히 유용 오프셋은 항상 ‘ 리더 ’ 공간에서 정의되기 때문에 조종힘 계산전에 우선적으로 해야하는 일은 , 우선적으로 세계 공간에서 오프셋들의 위치를 결정하는 것이다 . 이후부터는 , 함수는 추격하기와 유사하게 진행된다 .
MAGENTA: 운반기의 속도 BLUE: 조종힘 The leader following behavior combines separation (a desire to avoid crowding) and arrival (a desire to move towards a point, slowing as it draws near). 도착하기 ‘ 찾기 ’ 보다 훨씬 유연한 움직임을 제공 . 운반기의 최대 속도와 최대힘의 설정에는 그다지 의존하지 않기 때문에 보다 더 사용됨 . ‘ 찾기 ’ 는 오히려 follow 들이 leader 를 공격하는 것 처럼 보일 수도 … 예 반대편 마크 우주선에 도킹 비행기 뒤 쫓아가기 전투 대형들을 구현하기