24
4 장 장장장 장장장장장 - 장장장장 장장장

4장 스포츠 시뮬레이션 - 단순 축구

  • Upload
    sh-park

  • View
    1.441

  • Download
    12

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 4장 스포츠 시뮬레이션 - 단순 축구

4 장 스포츠 시뮬레이션 - 단순축구

박상혁

Page 2: 4장 스포츠 시뮬레이션 - 단순 축구
Page 3: 4장 스포츠 시뮬레이션 - 단순 축구

게임환경• 경기장 1 : SoccerPitch• 골대 2 : Goal• 축구공 1 : SoccerBall• 팀 2 : SoccerTeam• 필드선수 8 : FieldPlayer• 골키퍼 2 : GoalKeeper

Page 4: 4장 스포츠 시뮬레이션 - 단순 축구
Page 5: 4장 스포츠 시뮬레이션 - 단순 축구

축구장

Page 6: 4장 스포츠 시뮬레이션 - 단순 축구

Page 7: 4장 스포츠 시뮬레이션 - 단순 축구

축구공

Page 8: 4장 스포츠 시뮬레이션 - 단순 축구

SoccerTeam

Page 9: 4장 스포츠 시뮬레이션 - 단순 축구

최상 지원 지점 계산• 팀이 공을 제어하고 있을 때 , " 좋은 위치 " 로다른 선수를 보내거나 패스를 하려고 할 때

" 좋은 위치 " 를 결정하는 방법• 상대편 경기장 쪽의 샘플링된 위치 지정

Page 10: 4장 스포츠 시뮬레이션 - 단순 축구

최상 지원 지점 계산

Page 11: 4장 스포츠 시뮬레이션 - 단순 축구

SoccerTeam State

PrepareForKick-Off

AttackingDefending

양 팀 선수가 모두제 위치에 있을 때

팀이 공을 제어할 때

팀이 공을 제어하지 않을 때

골이 들어갈 때

Page 12: 4장 스포츠 시뮬레이션 - 단순 축구

FieldPlayer• 공격수 or 수비수

– 실제로는 최상지원지점 계산에서만 쓰인다– 공격수만 최상지원지점 이용가능함

• ' 도착하기 ', ' 찾기 ', ' 추적하기 ' 등의 조종행동을 하며경기장을 돌아다닌다

Page 13: 4장 스포츠 시뮬레이션 - 단순 축구

FieldPlayer StateGlobalPlayer-

State

Wait

SupportAttacker

ReturnToHomeRe-gion

ChaseBall

Dribble

KickBall

ReceiveBall

Msg_SupportAttackerMsg_GoHomeMsg_ReceiveBallMsg_PassToMeMsg_Wait

공이 찰 수 있는 범위에 있을 때 공에 가장 가까이 있지 않을 때

공에 가장 가까이 &&받는 선수가 지정되지 않고 &&골키퍼가 공을 가지고 있지 않음공에 충분히 가까이 감 ||팀이 공을 제어하지 않음

킥을 시도할 수 없을 때

슛 , 패스를 하고난 뒤

슛 , 패스를 할 수 없을 때 공을 찬 뒤 팀이 제어를 잃음

Page 14: 4장 스포츠 시뮬레이션 - 단순 축구

ChaseBall

ReturnToHomeRe-gion

Chase-Ball

KickBall

공이 찰 수 있는 범위에 있을 때

공에 가장 가까이 있지 않을 때

Page 15: 4장 스포츠 시뮬레이션 - 단순 축구

Wait

Wait

Chase-Ball

공에 가장 가까이 &&받는 선수가 지정되지 않고 &&골키퍼가 공을 가지고 있지 않음

Page 16: 4장 스포츠 시뮬레이션 - 단순 축구

KickBall

ChaseBall

KickBall킥을 시도할 수없을 때

Page 17: 4장 스포츠 시뮬레이션 - 단순 축구

KickBall

슛 , 패스를 하고난 뒤

Wait Dribble

KickBall 슛 , 패스를 할 수 없을 때

Page 18: 4장 스포츠 시뮬레이션 - 단순 축구

GoalKeeper• 골키퍼는 필드선수와는 다른 종류의 기술 사용

– 필드 선수와는 다른 별도의 클래스– 움직임 패턴도 다르다– 필드 선수와 상태 집합이 다름

Page 19: 4장 스포츠 시뮬레이션 - 단순 축구

GoalKeeper StateGlobalKeeper-

State

InterceptBall

PutBallBackIn-Play

ReturnHome

TendGoal

Msg_GoHomeMsg_ReceiveBall

공이 한도 내로 들어오면정해진 거리 내로 들어오면

골에서 멀고위협이 없을 때 홈에 가깝거나상대편이 공을 가지면

패스를 한 뒤골에서 멀고공에서 가장 가깝지 않을때

공을 가로챈 뒤

Page 20: 4장 스포츠 시뮬레이션 - 단순 축구

TendGoal

InterceptBall

PutBallBackIn-Play

Return-Home

Tend-Goal

공이 한도 내로 들어오면

정해진 거리 내로 들어오면 골에서 멀고위협이 없을 때

Page 21: 4장 스포츠 시뮬레이션 - 단순 축구

주요 메소드• SoccerTeam::isPassSafeFromAllOpponent

– 위치 A 에서 B 까지의 패스가 공의 궤적 어딘가에서상대편 선수에게 가로채기 당할 수 있는가 .

Page 22: 4장 스포츠 시뮬레이션 - 단순 축구

주요 메소드• SoccerTeam::CanShoot

Page 23: 4장 스포츠 시뮬레이션 - 단순 축구

추정 및 가정하기• 1. 완벽하게 만든 후 바보스럽게 행동하기

– ex) CanShoot 에서 무작위 목표 설정

• 2. 가정과 추정을 통해 오류가 생길 수 있게 하기– 가로채기 영역을 원으로 설정

• 불확실성을 만들기– 알고리즘이 쉽고 CPU 를 많이 소모하지 않으면 1 번 .– 그렇지 않으면 2 번을 통해 복잡도를 줄인다 .

Page 24: 4장 스포츠 시뮬레이션 - 단순 축구