#gdc13 #review Managing the Movement: Getting Your Animation Behaviors to Behave Better
자세한 애니메이션 아키텍처 설명, 명확한 용어 사용이 인상적이다.
previous architecture
- behavior에 따라 애니메이션 구성한다. Move, Act와 같은 high level 애니메이션과 전역 애니메이션 상태(aim 타깃, look-at constraint, ..)도 포함.
- 그 후 애니메이션 프로그램을 만들고 실행. animgraph wrapper로 생각할 수 있는 NPC network controller를 통해 애니메이션 그래프를 만든다.
문제점
- 모든 프로그램은 full-body 포즈에만 적용 가능
- NPC controller는 전체 animgraph에 매핑.
- 사소한 변경도 NPC 애니메이션 시스템 전체에 영향을 준다.
- NO data-driven
- blend, transition weight 값을 전역 상수로 사용
- 책임(responsibilities)이 명확하지 않다.
- 애니메이션 프로그램 사이에 겹치는 부분이 많음. (moving, aiming, stand)
- 애니메이션 실행이 조용히 실패하는 구조
- 중복된 유효성 검사 코드 양산
new architecture
animation graph controllers
animgraph 아주 작은 부분에만 매핑.
animation programs
- 컨트롤러 존재만 안다. pathfinding과 같이 애니메이션에 필요한 작업 수행을 책임진다.
- 애니메이션 프로그램과 컨트롤러는 1:1 매핑
- 타입을 나눔
- base program : full-body. 프로그램 하나만 실행
- post-processing program : 여러 프로그램이 동시에 실행 가능
- Start, Execute, Terminate 간단한 스테이트 머신으로 구현
- decision system에서 사용할 수 있는 order status handle 구현
- 성공했는지, 실패했는지, 왜 실패했는지, 이동 목표 위치까지 얼마나 남았는지 …
actuator
애니메이션 프로그램 scheduler, manager
the decision system
high level 동작을 명령하기보단 요청. 성공, 실패를 기다린다. order status handle을 사용.
LOD (Level of Detail)
컨트롤러를 동적으로 바꾼다.
발표
- 발표자: Bobby Anguelov (IO Interactive)
- 발표자료: GDC Vault - Managing the Movement: Getting Your Animation Behaviors to Behave…