주녘공부일지

[더 챌린저스] 캐릭터 애니메이터 스테이트 관리 고찰 본문

GameEngine/Unity - Project

[더 챌린저스] 캐릭터 애니메이터 스테이트 관리 고찰

주녘 2023. 8. 15. 17:10
728x90

캐릭터 애니메이터 스테이트 관리 고찰

복잡한 구조도를 가능한 편하게 확인하고 수정할 수 있도록 특정 모션들은 서브 머신으로 묶어서 관리

- 특히 Any State로 사용할 필요가 있는 Dash, Die, Skill(Attack) 등의 모션은 특히 신경써서 처리

 -> 해당 트랜지션의 조건 파라미터만 충족하면 어느 상태든 넘어가버리기 때문에 불 변수와 트리거 변수를 이용해 더블체크

1) 파라미터 분류 규칙

- IsXX 변수 (Bool) : 해당 상태로 전환할 수 있다는 의미

 -> 서브 스테이트 모션으로 전환, 탈출 조건 등에 사용

 

- XXState 변수 (Bool) : 해당 상태라는 의미

 -> 중복으로 같은 스테이트에 들어가지 않게 하기 위한 조건 등에 사용

 

- XXTrigger 변수 (Trigger) : 해당 상태로 전환하라는 의미

 -> 보통 bool변수와 함께 사용되며, AnyState로 연결된 트랜지션 조건에는 무조건 사용

 

- 기타 (int) : 방향 값이나 고유한 번호를 받기 위해 사용

 -> SkillType : 스킬 고유 번호 // DirX : X축 방향 값 ( -1, 0, 1 )

 

BaseLayer & Parameters

2) Sub State Machine - Jump

점프 상태의 돌입과 끝을 관리하는 서브 스테이트

- 초기에는 JumpAttack은 다른 서브스테이트머신(Attack)에 두고 점프 모션도 BaseLayer에 있었지만,

- 점프상태에서만 할 수 있다는 점과 착지모션 추가, 점프업다운상태 분리 등의 분할된 모션이 증가된 이유로 서브 스테이트로 묶어서 관리함

 

SubState - Jump

3) Sub State Machine - Attack

기본공격 3타와 스킬을 관리하는 서브 스테이트

 

- 기본 공격은 반드시 3타를 하지 않아도 1타, 2타 직후에 공격 키가 입력상태가 아니라면 Idle, Move 상태로 전환할 수 있음 ( 단, 살짝의 딜레이 존재 )

 flow) 공격 키 입력 상태 판단 -> 공격 사용가능 여부 판단 -> 공격 불 타입 True -> 공격 1회 트리거 On

 

- Skill은 캐릭터별로 지정된 스킬번호를 가지고 있음

 flow) 스킬 사용가능 여부 판단 -> 스킬 번호 세팅 -> 스킬 트리거 On

 

SubState - Attack

4) Sub State Machine - Hit

히트 상태에서의 보정, 히트 상태에서의 착지, 일어나는 모션 등을 관리하는 서브 스테이트

- 다단 히트가 가능한 게임으로써 히트 모션이 여러개 필요해 Hit 모션에서 Hit가 들어오면 다른 모션이 재생되게 하였고 트리거를 히트 1회로 처리했음

- 히트를 당해 공중에 떠있는 상태와 캐릭터가 스스로 공중에 떠있는 상태(점프키 입력)에 대한 파라미터 변수는 공용으로 사용

 

SubState - Hit

728x90