안녕하세요. 현재 강의 90프로정도 수강하고 저만의 게임을 만들고있습니다.
좋은 강의 감사합니다.
걷기 뛰기 점프같은 캐릭터의 상태, 환경에 따라 변화하는 애니메이션은 애니메이션 블루프린트 에서 스테이트머신으로 처리하고
공격 죽음 스킬공격등 즉각적인 단발성 애니메이션을 애니메이션 몽타주를 사용하면 될까요?
또 강의에선 하나의 몽타주에 대해서 클래스의 멤버변수로 가지고 있는데 만약 여러개의 몽타주가 있을땐 TMap을 사용해서 관리해도 될까요? 더 좋은 방법이 있을까요?
아직초보라 이게 맞는건지 방향이 안서서 여쭤 봅니다..
네 좋은 질문이네요.
먼저 애니메이션 관련해서 답변을 드리면,
일반적인 애니메이션 시스템은 상태 머신을 기반으로 구현하는게 정석이지만, 모든 상황을 상태머신으로 정리하면 그래프가 너무 복잡해지기 때문에, 엔진마다 복잡함을 개선하는 특수한 기능을 제공하고 있습니다. 애니메이션 몽타주는 이런 관점에서 언리얼 엔진이 자체적으로 고안해 제공하는 기능입니다. 몽타주 외에도 다양한 부가 기능이 계속 개발되 신규 버전에서 선보이고 있으니 참고해주시면 될 것 같아요.
그렇다고 새롭거나 편리한 기능을 강제로 써야한다는 것은 아닙니다.
정리하면, 구현 방법은 사실 케바케이며 절대적인 정답은 없습니다.
복잡한 방법은 관리가 어렵고, 너무 새로운 기능은 원인 모를 버그가 발생할 가능성이 높이 때문이지요.
어떤 기능을 쓰던간에, 내 프로젝트에서 감당 가능할 수 있다고 판단할 수 있다면 그것으로 충분합니다.
자료 구조도 비슷한 답변을 드릴 수 있을 것 같은데, 게임 로직은 왠만해서는 TArray아니면 TMap에서 처리 가능합니다. TArray대신 TMap을 쓰는게 좋은지 이유를 스스로 댈 수 있으면 됩니다. 결국 키를 기반으로 검색하기 쉬운 형태로 관리하는게 효과적인지, 배열을 사용해 공간과 Index 기반 탐색을 최적화하는 것이 효과적인지 생각하시면 될 것 같습니다.
어떤 것을 사용해도 큰 차이는 없을 것 같아요. UPROPERTY 꼭 챙겨주시고요.
답글
k ch
2023.08.07감사합니다 교수님..!
사용에 있어 최선의 방법인지 스스로 생각해보겠습니다!