프로젝트 명 : AION2
- 개발 기간 : 2026.06.10 ~ 2026.07.14 (약 한달)
- 참여 인원 : 6명 (팀)
- 게임 장르 : MMORPG
- 플랫폼 : PC Windows
- 게임 설명:
- 각기 다른 4개의 클래스로 협동하여 아르카니스 레이드 클리어하기.
State Tree를 사용하여 보스 패턴 제작.
– 결과 보고서의 순서는 다음과 같이 진행하도록 하겠습니다.
- 적용한 기능 및 기술
- 문제 해결 사항.
- 부족했던 점.
- 새롭게 시도해보고 싶은 점.
- 게임 풀 영상(Youtube링크)
[ 1. 적용한 기능 및 기술 ]
- State Tree 구성(보스 패턴 제작)
- 가중치별 패턴 실행 구현.
1. State Tree
상태 트리 구성부터 여러가지 패턴들을 제작한 후, 이를 균일하게 사용하도록 처리하는 방법까지.
- 우선, Lutalis보스의 State Tree 구성입니다.

- 간단하게 구성을 말씀드리자면, 크게 4개의 페이즈로 구성되어 있으며 전투 전 페이즈(OutOfCombat), 그로기 페이즈(Groggy), 전투 페이즈(Combat), 죽음 페이즈(Dead)로 되어 있습니다.
– 전투 전 페이즈 : OutOfCombat
- 현재 크게 진행되는 것은 없지만, 추후에 플레이어 첫 조우 시 포효하는 단계를 넣어주기 위해 추가해주었습니다.
– 그로기 페이즈 : Groggy
- 무력 게이지가 다 닳았을 경우에 그로기 상태에 빠지게 하기 위해 추가해주었습니다.
– 전투 페이즈 : Combat
- 핵심 파트 입니다. 여러가지 패턴들이 존재하며, 이 패턴들을 어떻게 해야 적절하게 재생할 수 있을지 여러가지 고민을 하게 되었습니다.
- 일단, 패턴은 총 5가지가 존재하며 전기 장판 공격, 점프 공격, 일반 공격 2종, 낫 패턴 공격, 번개 패턴 공격 이렇게 다섯개가 존재합니다.
우선 첫 번째로 ‘전기 장판’ 공격입니다.

-
맵의 1/4에 해당하는 크기를 부채꼴 형태로 전기 장판을 생성시킵니다. 이 전기 장판은 Tick데미지가 들어오며, 체력이 1/3 닳때마다 다른 곳에 또 다른 전기장판을 생성시킵니다. 이는 총 3개의 전기장판이 생성됩니다.

-
(이러한 재질 효과를 내기 위해 직접 Material을 제작하였습니다.)
두 번째로 ‘점프’ 공격입니다.

-
점프 공격의 경우 기본적으로 RootMotion 이 설정되어 있으며, 일정 거리 이상 떨어져 있는 적을 랜덤하게 선별한 후 대상에게 점프 공격을 시도합니다. RootMotion을 설정했을 때 발생했던 문제점이 있었는데 이는 애니메이션 자체에 이동하는 거리까지 포함되어 있다보니 반드시 애니메이션 자체 거리만큼 떨어져 있어야 어색하지 않게 애니메이션을 재생시킬 수 있었다는 점입니다.
-
이러한 문제점을 해결하기 위해 여러가지 알아본 결과, Root Motion을 사용하지 않고 직접 코드로 움직이는 방식도 시도해볼 수 있었지만 다른 방식을 알아보니 Motion Warping이라는 것을 알게 되었습니다. 이는 Root Motion 데이터를 런타임에 재가공하는 기능인데, 이는 Root Motion이 월드 공간으로 변환되기 전에 처리하는 ProcessRootMotionPreConvertToWorld라는 단계가 존재하며, 이 단계에서 root Motion Transform 자체를 수정하도록 되어 있어서 Root Motion을 활성화 했음에도 이동 거리를 변경할 수 있게 됩니다.
세 번째로 ‘낫’ 공격입니다.

-
이 공격의 경우 캐릭터들의 위치 좌표를 먼저 찾은 후, 공격이 되는 일정 범위를 보여준 다음 해당 범위에 따라서 두 번 낫 공격을 시행합니다.
-
특이 사항은 없습니다.
네 번째로 ‘번개’ 공격입니다.

-
이 공격 또한 낫 공격과 마찬가지로 캐릭터들의 위치 좌표를 먼저 찾습니다. 그 후로 일정 범위를 보여준 다음 해당 범위에 따라서 총 세번 번개 공격을 진행시킵니다.
-
특이사항은 없습니다.
마지막으로 ‘기본 공격 2종’ 입니다.
- 앞에 있는 대상에게 낫을 휘두르거나, 뒤에 있는 대상에게 꼬리를 휘두르는 두 가지의 기본 공격이 존재합니다.
[ 2. 문제 해결 사항 ]
1. 전기장판 경계면 문제
- 전기장판의 경우 경계면에 대한 문제점이 있었는데, 경계면에 캐릭터가 서있는 경우 두 장판이 동시에 틱 데미지를 주는 방식의 문제가 있었고, 이를 해결하기 위해 장판이 개별적으로 틱 데미지를 주는 방식 -> 장판들을 관리하는 부모에 해당하는 액터가 장판에 overlap된 캐릭터들을 알아내고 부모가 직접 틱 데미지를 주는 방식으로 문제를 해결하였습니다.

2. 가중치별 패턴 발동
- 먼저 여러가지 패턴을 만든 상태에서 어떻게 하면 적절하게 패턴들을 발동 시킬 것인가에 대해서 고민해보게 되었습니다. 예를 들어서, 아예 무작위로 패턴을 발동 시킬 수도 있을 것이며, 또 다른 방법으로는 쿨다운이라는 개념을 적용하여 특정 패턴이 나왔으면 다음 쿨타임까지 재생이 되지 않도록 하고 다음 패턴이 재생되도록 한다던가 등.. 여러 방식이 있었을테지만, 제가 원했던 것은 한 번 나왔던 패턴이라도 다시 한 번 등장할 수 있었으면 좋겠다는 생각을 하게 되었습니다.

-
이를 위해서 가중치별 패턴 발동이라는 개념을 생각해보게 되었습니다. 패턴이 랜덤하게 발동이 되지만 가중치의 크기에 따라 어떤 패턴은 더 자주 나오고, 어떤 패턴은 덜 나오고 등.. 을 처리할 수 있었습니다.
-
하지만, 가중치를 부여했다고 해서 어색한 부분이 여전히 존재했었는데, 가중치가 30이라해도 하나의 패턴만 연속으로 5~6번 나오는 경우도 존재했었습니다. 이렇게까지 자주 등장하는 것은 또 원하지 않았으므로 어떻게 하면 이렇게 연속으로 나오는 것을 줄일 수 있을지를 생각하다보니 가중치 또한 한 번 발동이 되었다면 해당 가중치를 줄일 수 있는 방안이 필요했습니다.
-
이를 위해 Last Selected Tag Weight Scale이라는 변수를 만들게 되었고, 이 변수를 통해 패턴이 한 번 발동하면 그 가중치를 줄여주도록 처리가 되며, 이를 통해 동일한 패턴이 2~3번은 나올 수 있지만 4번 이상 연속으로 나오는 것은 거의 불가능 하게끔 처리해주어 보스가 다양하게 패턴을 시행하는 것을 경험해볼 수 있었습니다.
[ 3. 부족했던 점 혹은 아쉬웠던 점 ]
- 멀티에서 경험해볼 수 있는 조금 더 다양한 협동 기믹들을 넣어보고 싶었지만, 넣지 못한 점이 개인적으로 많이 아쉬웠습니다.
- 초반에 바람길 관련한 기믹을 넣어보려고 했는데, Spline으로 처리하는 방식까지는 어느정도 각이 보이긴 했지만 Spline을 따라 나이아가라 효과를 만드는 과정에 있어서 많은 부족함이 있어 제작하지 못한점이 아쉬웠습니다.
[ 4. 새롭게 시도해보고 싶은 점 ]
- 바람길 기믹을 꼭 한 번 개인적으로라도 구현해보고 싶습니다.
- 협동 기믹 관련한 패턴들, 그에 따른 여러 연출들을 새롭게 시도해보고 싶습니다.
[ 5. 게임 플레이 풀 영상 ]
- 직접 제작한 수호성 직업과 두 번째 루탈리스 보스를 아래 영상을 통해 확인해보세요~
- 참고로 두 번째 루탈리스 보스는 3:15에 시작됩니다.
No Comment! Be the first one.