SlideShare uma empresa Scribd logo
1 de 35
How to Create Autonomously Moving Game Agents 아꿈사 :  http://cafe.naver.com/architect1 김태우 :  [email_address]
INDEX ,[object Object],[object Object],[object Object]
Autonomous Agent
자동적 에이전트 ,[object Object],[object Object],[object Object]
자동 에이전트의 움직임
Vehicle Model
운반기 모델 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
운반기의 물리적 현상 갱신하기  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BaseGameEntity MovingEntity SteeringBehaviors GameWorld Vehicle 1 *
 
 
 
 
 
Steering Behavior
Seek and Flee
SEEK FLEE
Arrive
 
Persue and Evade
PERSUE EVADE
Wander
rate Wander Direction 교재  P.110  참조 :  그림  3.5
Obstacle Avoidance
교재  P.112  참조 :  그림  3.7  /  3.8 Collision Threat Collision Box
Wall Following
 
Hide
Path Following
 
Offset Persuit
Follow One Another Follow Leader
References ,[object Object],[object Object],[object Object],[object Object]
 
Lisence

Mais conteúdo relacionado

Mais de codevania

Gstar gossip
Gstar gossipGstar gossip
Gstar gossipcodevania
 
Deferred rendering transparency
Deferred rendering transparencyDeferred rendering transparency
Deferred rendering transparencycodevania
 
테스트 자동화의 원칙
테스트 자동화의 원칙테스트 자동화의 원칙
테스트 자동화의 원칙codevania
 
Spin locks 추가 자료
Spin locks 추가 자료Spin locks 추가 자료
Spin locks 추가 자료codevania
 
Texture bombing
Texture bombingTexture bombing
Texture bombingcodevania
 
Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stackcodevania
 
Mathematical Structures for CS [Chapter3]456
Mathematical Structures for CS [Chapter3]456Mathematical Structures for CS [Chapter3]456
Mathematical Structures for CS [Chapter3]456codevania
 
Optimizing The Content Pipeline
Optimizing The Content PipelineOptimizing The Content Pipeline
Optimizing The Content Pipelinecodevania
 
시간 있으면 설계나 합시다
시간 있으면 설계나 합시다시간 있으면 설계나 합시다
시간 있으면 설계나 합시다codevania
 
Memory Corruption Heap
Memory Corruption HeapMemory Corruption Heap
Memory Corruption Heapcodevania
 
Generic Refraction Simulation
Generic Refraction SimulationGeneric Refraction Simulation
Generic Refraction Simulationcodevania
 
Interactive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space TechniquesInteractive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space Techniquescodevania
 

Mais de codevania (14)

Taocp 2_3_1
Taocp  2_3_1Taocp  2_3_1
Taocp 2_3_1
 
Taocp 1 2-2
Taocp 1 2-2Taocp 1 2-2
Taocp 1 2-2
 
Gstar gossip
Gstar gossipGstar gossip
Gstar gossip
 
Deferred rendering transparency
Deferred rendering transparencyDeferred rendering transparency
Deferred rendering transparency
 
테스트 자동화의 원칙
테스트 자동화의 원칙테스트 자동화의 원칙
테스트 자동화의 원칙
 
Spin locks 추가 자료
Spin locks 추가 자료Spin locks 추가 자료
Spin locks 추가 자료
 
Texture bombing
Texture bombingTexture bombing
Texture bombing
 
Memory corruption stack
Memory corruption stackMemory corruption stack
Memory corruption stack
 
Mathematical Structures for CS [Chapter3]456
Mathematical Structures for CS [Chapter3]456Mathematical Structures for CS [Chapter3]456
Mathematical Structures for CS [Chapter3]456
 
Optimizing The Content Pipeline
Optimizing The Content PipelineOptimizing The Content Pipeline
Optimizing The Content Pipeline
 
시간 있으면 설계나 합시다
시간 있으면 설계나 합시다시간 있으면 설계나 합시다
시간 있으면 설계나 합시다
 
Memory Corruption Heap
Memory Corruption HeapMemory Corruption Heap
Memory Corruption Heap
 
Generic Refraction Simulation
Generic Refraction SimulationGeneric Refraction Simulation
Generic Refraction Simulation
 
Interactive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space TechniquesInteractive Refractions And Caustics Using Image Space Techniques
Interactive Refractions And Caustics Using Image Space Techniques
 

3장 자동적으로 움직이는 게임 에이전트 생성법

Notas do Editor

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