Animation in Only Client
- 입력된 키에 따라 알맞은 애니메이션을 클라이언트에 실행
- 서버에서는 애니메이션을 실행하지 않고, 콜리전을 공격 범위에 알맞게 배치
- 배치된 콜리전에서 Hit, Overlap 이벤트가 발생하면 데미지 적용
- 데미지가 적용되면서 HP가 클라이언트 캐릭터에 Replication되고 UI 업데이트 등의 이벤트 호출
- 이 경우엔 콜리전을 AnimNotify를 이용하여 만드는게 불가능
- 따라서 프레임을 계산하며 공격 모션에 따라 알맞은 시점에 콜리전을 적절한 위치에 설치해 주는 과정이 필요
- 이전 템플릿의 구조처럼 동작들을 Class를 통해 구분해두고 해당 Class에서 히트 박스를 어느 시점에 어느 정도로 만들 것인지에 대한 정보를 들고 있어야 할 것으로 예상
- 결과적으로 캐릭터 종류에 따라 알맞은 Ability를 일일이 매핑시켜 주는 형식이 될 것으로 예상
- 애니메이션은 서버에서 실제로는 실행되지 않으므로 서버의 부하를 줄일 수 있을 것으로 추정
Animation in Server And Client
- 입력된 키에 따라 알맞은 애니메이션 서버, 클라이언트 모두 실행
- AnimNotify를 통해 모션의 알맞은 시점에 콜리전을 생성
ㅡ> AnimNotify에 따라 콜리전 생성을 위해 호출되는 함수는 서버에서만 실행, 클라이언트는 그냥 애니메이션만 실행 - 서버측의 캐릭터에서 AnimNotify에 따라 생성된 콜리전에 Hit, Overlap 이벤트가 발생하면 데미지 적용
- 데미지 적용된 HP가 클라이언트 캐릭터에 Replication되고 UI 업데이트 등의 이벤트 호출
- AnimNotify를 이용하는 경우에는 따로 프레임 관리를 할 필요가 없이 그냥 Animation을 실행
- 이후 AnimNotify가 호출되는 시점을 적절히 조절해 콜리전을 생성하는 함수를 서버단에 호출시켜 콜리전 생성
- 이런 경우 히트 박스를 생성하는 시점이 정해져 있으므로 따로 동작에 따른 Class를 만들어 관리할 필요가 없음
- 공통 부분들이 구현된 Base와 이를 상속한 직군별 캐릭터들이 각 캐릭터들에 공격 모션에 알맞은 애니메이션 몽타주를 지닌 형태일 것으로 예상
- 이 경우에는 몽타주에 AnimNotify를 통해 콜리전 생성 시점이 정해져 있으므로 따로 관리할 Class도 필요 X
- 대신 애니메이션을 서버에서도 실행하므로 이를 연산하는 리소스를 할당해줘야 함
참고자료
'프로젝트 > CCFF' 카테고리의 다른 글
[Project] 미친 선인장과 분노의 버섯 - #6 구조체 추가 정의 + DataLoader Update (0) | 2025.04.02 |
---|---|
[Project] 미친 선인장과 분노의 버섯 - #5 DataLoader SubSystem (0) | 2025.04.01 |
[Project] 미친 선인장과 분노의 버섯 - #4 데이터 테이블을 이용한 변수 초기화+트러블 슈팅 (0) | 2025.03.31 |
[Project] 미친 선인장과 분노의 버섯 - #3 구조체를 활용한 변수 관리 및 데이터 테이블을 이용한 변수 초기화 (0) | 2025.03.28 |
[Project] 미친 선인장과 분노의 버섯 - #1 격투게임 템플릿 구조 분석 (0) | 2025.03.25 |