[UE5] 프로젝트 일지 - 설계 고민
by pmj6541설계
https://drive.google.com/file/d/1oTVz7qTvhGNU1BvaXZUoRyehZ-0SDfOo/view?usp=sharing
백엔드에서도 오랜 시간동안 고민한 설계를 언리얼 엔진 개발에서 해보도록 하겠습니다. 세부 내용은 아래 그림에서 보이지 않지만, 제가 지금까지 배운 내용을 토대로, 생성이 필요하다 싶은 블루프린트 클래스들을 모두 구성해보았습니다.
이제 중요한 부분부터 차근차근 파악해 봅시다.
캐릭터
가장 중요하다고 생각되는건 역시 캐릭터 부분이죠. 캐릭터에 대한 설계는 Interface Class인 BPI_Character를 만들어 필요한 함수들을 구성해나가고, 모든 캐릭터들이 공통으로 갖는 "공격", "회피", "피격" 등의 이벤트를 처리해주는 BP_Character 추상 클래스를 만들었습니다. 이 추상 클래스를 기반으로 Playable의 경우 BP_Player를 만들어 주어 조작 가능한 캐릭터를 설계하였고, AI의 경우 BP_Character_AI 추상 클래스를 새로 만들어 각 경우에 따라 알맞은 BehaviorTree와 Target을 갖도록 해주었습니다. 그리고 이를 상속하는 캐릭터는 현재 소형 몬스터로 만든 Skeleton 정도가 되겠네요. 물론 Rampage 또한 추가 예정입니다!
스킬 & 무기
각자 설계도는 다음과 같고, 구조는 간단하게 모든 스킬, 무기들은 각각 BP_Skill 과 BP_Weapon 이라는 공통 부모 추상 클래스를 가집니다. 해당 클래스는 Activate와 Deactivate 로 이벤트 시점을 분기하여 각 스킬 별로 해당 이벤트를 구현하여 메테오, 회복 장판, 소환 등의 기능을 구현할 수 있도록 구성하였습니다.
고민 한 내용
기획 내용에 다르면 "무기에 따라 스킬이 정해진다" 입니다. 게임 내용에 따르면 당연히 무기와 스킬의 연관관계가 깊다고 생각을 해야겠죠. 하지만 설계 단계에서 굳이 관계를 깊게 해야할까? 라는 의문을 가졌습니다. 캐릭터 - 무기 - 스킬 관계에서 이 셋을 완전히 분리된 상태에서 관리하게 된다면 한 캐릭터가 모든 스킬을 가질 수 있고, 모든 무기를 착용할 수 있는 구조가 가능하게 됩니다. 이러한 유연성을 가져가기 위해선 캐릭터 - 무기 - 스킬 관계에서 무기의 중계성 성격을 없애야 했고, 결과적으로 구조를 캐릭터 - 무기 / 캐릭터 - 스킬 로 설계하였습니다.
해당 구조가 더 유연하다 라는 주장의 이해를 돕기 위한 레퍼런스를 가져오자면, 롤에서 비에고 라는 챔피언 출시 당시 모든 챔피언 및 스킬 구조를 개선하였다는 기사를 본 적 있습니다. 그 결과로 궁극기 주문서 라는 특별 모드가 나오기도 하고, 리그 오브 레전드의 스킬 및 게임이 다채로워 졌다는 생각이 듭니다.
'UnrealEngine' 카테고리의 다른 글
[UE5] 프로젝트 일지 - 완성 데모 영상 (1) | 2025.03.11 |
---|---|
[UE5] 프로젝트 일지 - 기술 명세서 (0) | 2025.03.11 |
[UE5] 프로젝트 일지 - 기획 및 에셋 정리 (1) | 2025.03.09 |
[UE5] 7주차 5번. 본격적인 Enemy AI - 4 (1) | 2025.02.03 |
[UE5] 7주차 4번. 본격적인 Enemy AI - 3 (2) | 2025.01.31 |
블로그의 정보
만두네민박
pmj6541