프로그래밍 공부
작성일
2024. 5. 28. 01:45
작성자
WDmil
728x90

 

 

 

목표점

  1. 캐릭터의 비헤이비어트리 와 스쿼드 매니저의 비헤이비어트리의 동작사항을 재정리 한다.
  2. 캐릭터의 공격모션과 공격행동을 실행 할 수 있게 한다.

 

문제 발생

문제

1. 비헤이비어의 Move To 와 BTT의 Ai Move To가 다른 동작사항을 보임

  • 비헤이비어 트리의 Move To 와 BTT의 AI Move To 의 동작사항의 방식이 달라서, AI Move To 의 동작 시 객체의 현 Overlap을 판별해버려서, Overlap이 되는순간 Move To 가 동작하지 않는 오류가 발생한다.

 

2. 애니메이션에 Rifle 공격모션, 행동모션이 존재하지 않아서 새로 가져와야함.

  • 현 사용하는 스켈레톤이 언리얼 4 기준으로 작성되어서 새로운 애니메이션을 가져와서 사용하려면 캐릭터 자체를 바꾸어야 하는 상황이 발생함.

 

3. 비헤이비어 트리가 원하는대로 동작하지 않음, 1번의 문제로 인해 길을 찾을 수 없이 계속 회전하는 문제가 발생함.

  • AI Move To 를 사용하여 현재 움직임이 막혔을 경우, 행동하게 하는 로직이 정상적으로 동작하지 않음.
3번 문제, 1번문제의 동영상.

 

 

해결

1. 비헤이비어의 Move To를 사용함.

  • 비헤이비어의 Move To 를 사용하고, Character의 행동과정에 따른 종료확인을 블랙보드 의 BoolType으로 받아와서 처리하게 하였다.

AI 행동 로직을 간단하게 작성하였다. Attack이 동작할 경우는 Character의 RangeSphere의 Overlap으로 처리한다. Overlap시 BlackBord의 IsAttack을 True로 바꾼다. 목표 객체가 Nullptr이 되었을 경우, 다시 False로 바꾼다.

 

 

2. 캐릭터의 메시데이터와 스캘레톤을 새로 작성, ABP를 다시 만들었다.

  • 도저히 방법이 없었다...


3. Character의 객체에서 동작하는 비헤이비어 트리 와 SquadManager의 비헤이비어 트리를 재구성 하였다.

  • 동작순환구조를 다음과 같이 정리하였다.
    1. AI Master에 커스텀 이벤트로 스스로 가장 가까운 SquadManager를 반환받는 이벤트를 생성
    2. SquadManager는 TargetSquad가 nullptr인지 아닌지 틱마다 확인, Nullptr일 경우 AI Master에 가장 가까운 Squad Manager를 반환받음.
    3. SquadManager는, TargetSquad가 Nullptr이 아닐경우, 비헤이비어 트리에서 TargetVector를, Character들에게 전달.
    4. Character들은, 현재 위치에서 TargetSquad 방향으로 직선거리로 이동하게 된다.

Grid를 간단하게 생성하여, Overlap된 Grid를 제외, 가장 가까운 포인트를 반환한다.
실행 예시, 파란색으로 Overlap처리가 되어 제외된것 을 확인할 수 있다.

 

움직임의 동작사항은 다음과 같다. 위치로 이동 -> 성공시 성공반환, 실패시 EQS로 가까운 겹치지 않는곳으로 이동함.

 

진행중인 작업

9. AI

9.2 AI공격행동 처리

 

 

진행 예정 작업

0. 디테일화 ( 베이스를 기반으로 스킬, 카드, 캐릭터, 적, 맵 추가작업 )

9. AI

9.2 최적의 공격 판별 알고리즘 제작(감지된 공격가능 적 에 따라 가장 효율적인 공격방식을 택함)

9.3 최적의 공격대상 판별 알고리즘 제작 (감지된 공격가능 적들 중 가장 효율적인 적을 공격함)

9.4 삼국지의 병사분대간 진형싸움처럼, 각각 효율적인 진형을 사용할 수 있게 판단알고리즘 제작

 

완료된 작업

1. 캐릭터 베이스 구현

 

2. 베이스 구현

2.1 무기 베이스 구현

2.2 카드 베이스 구현

2.2.1 카드의 이동 에 따른 캐릭터 이동 구현

2.2.2 카드 내부의 객체 UI 세부출력

2.3 스킬 베이스 구현

2.3.1 카드 업그레이드 스킬 구현

 

3. 플레이어 상호작용 구현

 

4. 스테이지 이동 구현

4.1 스테이지 간 저장데이터 Save&Load구현

4.2 플레이어 데이터 세이브 구현

 

5. 스테이지 셀렉트 구현

5.1 스테이지 이벤트 베이스 구현( 이벤트는 보스를 제외하면 무작위 여야한다.

[Battle Event, Boss Event, Bonefit Event] )

5.2 스테이지 무작위 배치 구현 ( 규칙성 무작위, 다음 노드는 전 노드배열과 사이즈가 같거나 더 커야한다. )

5.3 스테이지 무작위 간선연결 구현 (규칙성 무작위, Self 노드는 항상 연결된 노드가 존재해야 한다. [고립성 배제])

5.4 플레이어의 노드이동 & 이벤트 처리 구현

5.5 플레이어의 시작시 스테이지 페이드인 페이드아웃 구현

 

6 상점 구현

 

7. 전투 준비단계 구현

7.1 플레이어와 자원, 카드메니저의 연동구현작업

7.2 상점레벨 업그레이드, 손쉬운 카드정보추가

7.3 카드잠금, 카드 구매&판매연동

 

8.9 세이브 안정화

EXTRA. 세이브데이터 세이브데이터로드 연동, 데이터 연동시 필요사항 추가 기입.

 

9. AI

9.0 공통EQS사용 처리

9.1 스킬 사용 판별여부를 위해, 공격가능한 스킬 데이터를 재정리중

 

 

728x90

'작업사항 정리 > Unreal' 카테고리의 다른 글

Table_War 240527_22  (0) 2024.05.28
Table_War 240524_21  (0) 2024.05.28
Table_War 240517_19  (0) 2024.05.28
Table_War 240510_18  (0) 2024.05.28
Table_War 240507_17  (0) 2024.05.28