How to Create Autonomously Moving Game Agents 아꿈사 :  http://cafe.naver.com/architect1 김태우 :  [email_address]
INDEX <ul><li>Autonomous Agent </li></ul><ul><li>Vehicle Model </li></ul><ul><li>Steering Behavior </li></ul>
Autonomous Agent
자동적 에이전트 <ul><ul><li>자신만의 예정된 일을 추구하면서  자신의 환경을 감지하고 ,  시간에 따라 그러한 환경에 작용하며 , 그래서 미래에 감지할 것에 영향을 미치는 , 그러한 환경 안에 또는 그 일부분으...
자동 에이전트의 움직임
Vehicle Model
운반기 모델 <ul><ul><li>점질량을가지는 기본적인 운반기를 기술하는  데이터를 캡슐화하고 있다 . </li></ul></ul><ul><ul><ul><li>한 편으로는 ,  매우 간편하고 계산적으로 적은  물리 -...
운반기의 물리적 현상 갱신하기  <ul><ul><li>조종힘 계산 . Calculate() 은 모든 운반기의  활성화된 조종 행동들을 합계하여 총 조종힘을 반환   </li></ul></ul><ul><ul><li>조종힘...
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 <ul><li>Steering Behaviors For Autonomous Characters </li></ul><ul><ul><li>http://www.red3d.com/cwr/steer </li>...
 
Lisence
Upcoming SlideShare
Loading in …5
×

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

1,247 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,247
On SlideShare
0
From Embeds
0
Number of Embeds
60
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 뭘 원하나 ? 계층 로직에는 뭐가 있나 ? 장점은 ? 단점은 ? 그래서 어떻게 해결 ?
  • 액션 선택 목표를 선택 , 어떤 계획을 따라야 하는지를 결정할 의무가 있는 행동의 부분 &apos; 여기로   가라 &apos; 및 &apos;A, B 그리고 C 를 하라 &apos; 라고 지시해주는 부분 조종 액션 선택층에 의해 설정된 계획을 만족시킬   수 있는 바람직한 궤적을 계산 에이전트가 어디로 가야만 하고 그곳에 도달하기 위해 얼마나 빠르게 움직여야 하는지를 기술하는   조종힘을 만들어 낸다 이동력 A 에서 B 까지 지나가는 방법 (HOW) 이다 . 만약 낙타 , 탱크 및 금붕어의 움직임 구조를 구현해서 북쪽으로 가라는 명령이 주어진다면 이동의 의도는 동일하지만 ,   움직임 생성을 위해 서로 다른 기계적 과정을 사용 조종층에서 분리함으로써 완전히 다른 형식의 이동력에 대해서 별도의 수정 없이 동일한 조종 행동을 활용할 수   있게 한다 .
  • Heading / Side vector 움직이는 엔티티를 위한 지역 좌표계를 정의 매 프레임 마다 갱신
  • 조종힘 계산 . Calculate() 은 모든 운반기의 활성화된 조종 행동들을 합계하여 총 조종힘을 반화 조종힘을 가속도로 변환 가속도로 속도를 갱신 운반기의 위치를 새로운 속도로 갱신 방향은 속도에 따라 정렬되어야 하므로 , 정규화된 속도 벡터와 동등함을 유지하면서 갱신 운반기의 속도가 아주 작은 임계값 이상이어야만 계산
  • 원하는 속도를 계산 에이전트가 목표 위치에 도달하는 데 필요한 속도 반환값인 조종힘 = 원하는 속도 – 에이전트의 현재 속도
  • MAGENTA: 운반기의 속도 BLUE: 조종힘
  • 목표에서 멀리 떨어져 있는 경우 도착하기 행동이 어떻게 찾기와 동일하게 동작하는지 목표에서 가까이 다가갔을 때 감속이 어떻게 발효하는지를 주목한다
  • MAGENTA: 운반기의 속도 BLUE: 조종힘
  • 추격하기 에이전트가 움직이는 목표를 가로채는 것이 요구될 때 유용 목표가 앞으로 어디로 갈 것인지를 예측하고 , 그 위치와 현재 위치를 상쇄하는 방향으로 , 간격을 좁혀감에 따라 조정도 해가면서 달릴 것이다 . Quarry: 사냥감
  • MAGENTA: 운반기의 속도 BLUE: 조종힘 얼마나 먼 미래 시점까지 예측해야만 하는가를 결정 예측하는 정도는 추격자와 도피자의 ‘ 거리에 비례 ’ &amp; ‘ 속도에 반비례 ’ 이 시간이 결정되면 , 추격자가 찾기를 해야 할 미래 위치를 예상할 수 있다 .
  • 자신이 처한 환경을 무작위로 걸어가는 인상을 주는 조종힘 빨선 : 조종힘 흰원 : 목표물 보라원 : 배회하기 반경 에이전트 ~ 보라원중점 : 배회하기 거리
  • 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 를 공격하는 것 처럼 보일 수도 … 예 반대편 마크 우주선에 도킹 비행기 뒤 쫓아가기 전투 대형들을 구현하기
  • 3장 자동적으로 움직이는 게임 에이전트 생성법

    1. 1. How to Create Autonomously Moving Game Agents 아꿈사 : http://cafe.naver.com/architect1 김태우 : [email_address]
    2. 2. INDEX <ul><li>Autonomous Agent </li></ul><ul><li>Vehicle Model </li></ul><ul><li>Steering Behavior </li></ul>
    3. 3. Autonomous Agent
    4. 4. 자동적 에이전트 <ul><ul><li>자신만의 예정된 일을 추구하면서 자신의 환경을 감지하고 , 시간에 따라 그러한 환경에 작용하며 , 그래서 미래에 감지할 것에 영향을 미치는 , 그러한 환경 안에 또는 그 일부분으로서 위치하고 있는 시스템이다 . </li></ul></ul><ul><ul><li> 목적지향적이며 , 시간에 따라 환경과 상호작용하는 시스템이다 . </li></ul></ul><ul><ul><li>작동하기 시작하면 , 프로그래머의 간섭 없이 단지 자신을 돌볼 뿐이다 . </li></ul></ul>
    5. 5. 자동 에이전트의 움직임
    6. 6. Vehicle Model
    7. 7. 운반기 모델 <ul><ul><li>점질량을가지는 기본적인 운반기를 기술하는 데이터를 캡슐화하고 있다 . </li></ul></ul><ul><ul><ul><li>한 편으로는 , 매우 간편하고 계산적으로 적은 물리 - 기반 모델 </li></ul></ul></ul><ul><ul><ul><ul><li>점질량은 속도 ( 선형 가속도 ) 를 가지지만 , 관성 모멘트 ( 회전 가속도 ) 는 없다 . </li></ul></ul></ul></ul><ul><ul><ul><li>다른 편으로는 , 점질량은 실세계에 존재하지 않으므로 , 강력한 물리 모델이 될 수 없다 . </li></ul></ul></ul><ul><ul><li>질량을 가지는 어떤 물리 모델이든 반지름을 가져야 하므로 관성 모멘트를 가진다 . </li></ul></ul><ul><ul><li>이 지나치게 간소화된 비 - 물리 운반기 모델은 꽤 편하고 , 일반성의 손실 없이 여겨 진다 . </li></ul></ul><ul><ul><ul><li>언제나  더 타당하고 , 더 현실적인 물리 기반 운반기 모델을 대신할 수 있다 . </li></ul></ul></ul>
    8. 8. 운반기의 물리적 현상 갱신하기 <ul><ul><li>조종힘 계산 . Calculate() 은 모든 운반기의 활성화된 조종 행동들을 합계하여 총 조종힘을 반환 </li></ul></ul><ul><ul><li>조종힘을 가속도로 변환 </li></ul></ul><ul><ul><li>가속도로 속도를 갱신 </li></ul></ul><ul><ul><li>운반기의 위치를 새로운 속도로 갱신 </li></ul></ul><ul><ul><li>방향은 속도에 따라 정렬되어야 하므로 , 정규화된 속도 벡터와 동등함을 유지하면서 갱신 </li></ul></ul><ul><ul><li>운반기의 속도가 임계값 이상이어야만 계산 </li></ul></ul>
    9. 9. BaseGameEntity MovingEntity SteeringBehaviors GameWorld Vehicle 1 *
    10. 15. Steering Behavior
    11. 16. Seek and Flee
    12. 17. SEEK FLEE
    13. 18. Arrive
    14. 20. Persue and Evade
    15. 21. PERSUE EVADE
    16. 22. Wander
    17. 23. rate Wander Direction 교재 P.110 참조 : 그림 3.5
    18. 24. Obstacle Avoidance
    19. 25. 교재 P.112 참조 : 그림 3.7 / 3.8 Collision Threat Collision Box
    20. 26. Wall Following
    21. 28. Hide
    22. 29. Path Following
    23. 31. Offset Persuit
    24. 32. Follow One Another Follow Leader
    25. 33. References <ul><li>Steering Behaviors For Autonomous Characters </li></ul><ul><ul><li>http://www.red3d.com/cwr/steer </li></ul></ul><ul><li>OpenSteer </li></ul><ul><ul><li>http://opensteer.sourceforge.net/doc.html </li></ul></ul>
    26. 35. Lisence

    ×