프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 목표점캐릭터의 비헤이비어트리 와 스쿼드 매니저의 비헤이비어트리의 동작사항을 재정리 한다.캐릭터의 공격모션과 공격행동을 실행 할 수 있게 한다. 문제 발생문제1. 비헤이비어의 Move To 와 BTT의 Ai Move To가 다른 동작사항을 보임비헤이비어 트리의 Move To 와 BTT의 AI Move To 의 동작사항의 방식이 달라서, AI Move To 의 동작 시 객체의 현 Overlap을 판별해버려서, Overlap이 되는순간 Move To 가 동작하지 않는 오류가 발생한다. 2. 애니메이션에 Rifle 공격모션, 행동모션이 존재하지 않아서 새로 가져와야함.현 사용하는 스켈레톤이 언리얼 4 기준으로 작성되어서 새로운 애니메이션을 가져와서 사용하려면 캐릭터 자체를 바꾸어야 하는 상황이 발생함. 3. 비..

  • 목표점각 Actor가 우선하는 목표를 탐색하고 우선순위에 의거하여 공격엑터를 판별하고 공격하게 함.여러 Collision을 검사할 필요 없이, 각 부대간 Collision처리를 이용하여, 타겟팅된 부대끼리만 전투처리를 진행전투처리 이후에는 다른목표를 찾아 공격 실패실패사유우선하는 목표를 탐색하기 위해서는, 각 엑터의 우선순위권을 EQS에서 탐색하고 목표를 정해야 하는데 EQS에서는 탐색목표에 있는 우선순위 데이터를 가져올 수 없었다. 각 부대간 Collision처리를 진행하려고 하였다. 그러나 충돌된 Actor의 상대 Actor인지 아군Actor인지 판별해야 하는데 , 마찬가지로 우선순위 데이터를 가져올 수 없던것처럼 팀 데이터를 가져올 수 없기 때문에 실패 근본적인 해결책C++을 통하여, Collisi..

  • 문제!캐릭터들이 진형으로 움직일 때 서로 겹쳐서 정상적으로 진형을 향해 가지못하는 상황이 발생함. 해결책.1. 객체가 진형으로 이동할 때는 Collision을 꺼버린다.2. 객체가 진형으로 향하다 막히면, 우측 또는 좌측으로 이동하려고 시도한 뒤 다시 해당 방향으로 움직이게 바꾼다. 1번을 선택.만약, 중심점이 비어있을 경우 그곳으로 유닛이 이동하려고 계속 시도할것 이기 때문.위와 같은 경우 이동을 못해서 계속 빙빙 돌거나 왔다갔다 할꺼기 때문에, 그냥 진형을 갖출때는 Collision을 꺼버리기로 했다. 만약, 겹쳤을 때 겹쳐진 유닛이 비켜준다면. 그것또한 연산의 낭비가 될 수 있기 때문에 중심점 기준 진형으로 향할때는, Pawn객체와의 Collision을 무시하기로 했다. 진행중인 작업9. AI 9...

  • 분대 시스템을 적용, 객체간 밀집진형, 원형진형 등을 현재 객체들을 참고하여 분대AI가 판단, 지정함. 캐릭터들은 가능한 진형을 유지하려한다. 컨커러스 블레이드 라는 게임을 해봤으면 쉽게 생각할 수 있다. 또는, 삼국지나 전쟁영화를 보면 병사들이 항상 진형을 갖추고 이동하는걸 볼 수 있는데 그런걸 구현한것. 진행중인 작업9. AI 9.2 최적의 공격 판별 알고리즘 제작(감지된 공격가능 적 에 따라 가장 효율적인 공격방식을 택함) 9.3 최적의 공격대상 판별 알고리즘 제작 (감지된 공격가능 적들 중 가장 효율적인 적을 공격함) 9.4 삼국지의 병사분대간 진형싸움처럼, 각각 효율적인 진형을 사용할 수 있게 판단알고리즘 제작 진행 예정 작업0. 디테일화 ( 베이스를 기반으로 스킬, 카드, 캐릭터, 적, 맵 추..

  • AI매니저 -> CharcterOrder -> Set Target & UseSkill -> Active 배열에 현재 Order가 떨어지지 않은, 또는 임의의 상황에 따른 Order의 재지정이 필요한 Character를 넣어놓고, 배열에 객체가 존재하면, 적을 탐색해서 새 Order를 지정. 기존 AI의 동작방식, 각 캐릭터의 판단에 따른 근거로 행동을 결정.고안한 AI의 동작방식, 모든 캐릭터는 행동만 하고 중앙집중 AI 한개가 컴퓨터 와 유저의 캐릭터를 컨트롤하여, 그럴듯하게 대규모 전투를 보이게 만듬 쉽게 이야기하면, 체스나 장기를 둘 때, 장기나 채스의 말이 독자적인 판단에 근거하여 이동하거나 공격하는일이 없고 플레이어나 AI의 명령에만 행동하게 되는것. 이로써, 각 객체가 틱마다 모든 객체를 참조..

  • 인공지능 로직을 작성중, 현재 게임의 인공지능객체가 약3200개가량 나타날 수 있고, 임의의 객체가 생성되는걸 고려하면 여기서 2배가량 더 생길 수 있음으로, 가장 효율적인 인공지능을 고려해야함. 가장 적게 연산하면서 가장 그럴듯해 보여야한다. 진행중인 작업9. AI 9.1 스킬 사용 판별여부를 위해, 공격가능한 스킬 데이터를 재정리중 9.2 최적의 공격 판별 알고리즘 제작(감지된 공격가능 적 에 따라 가장 효율적인 공격방식을 택함) 9.3 최적의 공격대상 판별 알고리즘 제작 (감지된 공격가능 적들 중 가장 효율적인 적을 공격함) 진행 예정 작업0. 디테일화 ( 베이스를 기반으로 스킬, 카드, 캐릭터, 적, 맵 추가작업 ) 완료된 작업1. 캐릭터 베이스 구현 2. 베이스 구현 2.1 무기 베이스 구현 2..

작성일
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
작성일
2024. 5. 28. 01:44
작성자
WDmil
728x90

 

 

목표점

  1. 각 Actor가 우선하는 목표를 탐색하고 우선순위에 의거하여 공격엑터를 판별하고 공격하게 함.
  2. 여러 Collision을 검사할 필요 없이, 각 부대간 Collision처리를 이용하여, 타겟팅된 부대끼리만 전투처리를 진행
  3. 전투처리 이후에는 다른목표를 찾아 공격

 

실패

실패사유

우선하는 목표를 탐색하기 위해서는, 각 엑터의 우선순위권을 EQS에서 탐색하고 목표를 정해야 하는데 EQS에서는 탐색목표에 있는 우선순위 데이터를 가져올 수 없었다.

 

각 부대간 Collision처리를 진행하려고 하였다. 그러나 충돌된 Actor의 상대 Actor인지 아군Actor인지 판별해야 하는데 , 마찬가지로 우선순위 데이터를 가져올 수 없던것처럼 팀 데이터를 가져올 수 없기 때문에 실패

 

근본적인 해결책

C++을 통하여, Collision을 처리하기 위한 Enum데이터를 재정의하고,

Pawn이외에 Collsion범위목록을 제어할 수 있게된다면 가능하다.

블루프린트로는 Collision을 지정하려면 허가범위를 넘어가기 때문에 안된다.

 

 

대체된 현 해결방안

AI의 공격방식을 좀 더 단순화 시켰다.

행동순서를 다음과 같이 정의하였다.

전체 개요
중간 개요 Position Manager는 진형의 형태를 담당한다.
세부 Order


AI Master

 

 



AI Master는 Suqad Manager들을 스폰하는 역할을 맡는다.

멀티를 고려하여 다중플레이어가 같은 전장에서 스폰되는 경우를 상정하였다.


Squad Manager

Squad Manager는 스폰 시 해당 팀(컴퓨터 또는 플레이어들)이 가진 모든 Pawn을 스폰 한 후

같은 종류끼리 Squad로 묶고 관리하는 역할을 한다.

 

Squad는 같은 종류의 Actor끼리 통제된 동작을 효율적으로 지시한다.

 

Position Manager에서 지정된 Position으로 진형을 갖추게 된다.

대강 만든 Order 리스트들

 


Pawn

Pawn은, 아주 단순한 명령만 이행한다.

 

  1. Vector3로 이동
  2. 적 객체가 사거리에 도달하면 공격
  3. Position을 재구축 하라는 Order시 재구축 Order수행

 

이 3가지만 수행한다.

 

복잡한 Vector위치연산과 타겟지정은 Squad Manager가 담당한다.

 

 

진행중인 작업

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 240524_21  (0) 2024.05.28
Table_War 240521_20  (0) 2024.05.28
Table_War 240510_18  (0) 2024.05.28
Table_War 240507_17  (0) 2024.05.28
Table_War 240503_16  (0) 2024.05.28
작성일
2024. 5. 28. 01:43
작성자
WDmil
728x90

 

 

문제!

캐릭터들이 진형으로 움직일 때 서로 겹쳐서 정상적으로 진형을 향해 가지못하는 상황이 발생함.

 

해결책.

1. 객체가 진형으로 이동할 때는 Collision을 꺼버린다.

2. 객체가 진형으로 향하다 막히면, 우측 또는 좌측으로 이동하려고 시도한 뒤 다시 해당 방향으로 움직이게 바꾼다.

 

1번을 선택.

만약, 중심점이 비어있을 경우 그곳으로 유닛이 이동하려고 계속 시도할것 이기 때문.

위와 같은 경우 이동을 못해서 계속 빙빙 돌거나 왔다갔다 할꺼기 때문에, 그냥 진형을 갖출때는 Collision을 꺼버리기로 했다.

 

만약, 겹쳤을 때 겹쳐진 유닛이 비켜준다면. 그것또한 연산의 낭비가 될 수 있기 때문에 중심점 기준 진형으로 향할때는, Pawn객체와의 Collision을 무시하기로 했다.

 

진행중인 작업

9. AI

9.0 공통EQS사용 처리

 

 

진행 예정 작업

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.1 스킬 사용 판별여부를 위해, 공격가능한 스킬 데이터를 재정리중

 

728x90

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

Table_War 240521_20  (0) 2024.05.28
Table_War 240517_19  (0) 2024.05.28
Table_War 240507_17  (0) 2024.05.28
Table_War 240503_16  (0) 2024.05.28
Table_War 240501_15  (0) 2024.05.28
작성일
2024. 5. 28. 01:42
작성자
WDmil
728x90

 

분대 시스템을 적용, 객체간 밀집진형, 원형진형 등을 현재 객체들을 참고하여 분대AI가 판단, 지정함. 캐릭터들은 가능한 진형을 유지하려한다.

 

컨커러스 블레이드 라는 게임을 해봤으면 쉽게 생각할 수 있다. 또는, 삼국지나 전쟁영화를 보면 병사들이 항상 진형을 갖추고 이동하는걸 볼 수 있는데 그런걸 구현한것.

 

진행중인 작업

9. AI

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

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

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

 

진행 예정 작업

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

 

완료된 작업

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.1 스킬 사용 판별여부를 위해, 공격가능한 스킬 데이터를 재정리중

 

728x90

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

Table_War 240517_19  (0) 2024.05.28
Table_War 240510_18  (0) 2024.05.28
Table_War 240503_16  (0) 2024.05.28
Table_War 240501_15  (0) 2024.05.28
Table_War 240429_14  (0) 2024.05.28
작성일
2024. 5. 28. 01:41
작성자
WDmil
728x90

 

AI매니저 -> CharcterOrder -> Set Target & UseSkill -> Active

 

배열에 현재 Order가 떨어지지 않은, 또는 임의의 상황에 따른 Order의 재지정이 필요한 Character를 넣어놓고, 배열에 객체가 존재하면, 적을 탐색해서 새 Order를 지정.

 

기존 AI의 동작방식, 각 캐릭터의 판단에 따른 근거로 행동을 결정.

고안한 AI의 동작방식, 모든 캐릭터는 행동만 하고 중앙집중 AI 한개가

컴퓨터 와 유저의 캐릭터를 컨트롤하여, 그럴듯하게 대규모 전투를 보이게 만듬

 

쉽게 이야기하면, 체스나 장기를 둘 때, 장기나 채스의 말이 독자적인 판단에 근거하여 이동하거나 공격하는일이 없고 플레이어나 AI의 명령에만 행동하게 되는것.

 

이로써, 각 객체가 틱마다 모든 객체를 참조하는것이 아닌, 할당명령이 없을때만 명령을 할당받게된다.

 

최대 1600 Vs 1600의 AI객체가 전투하기 위해서는 연산을 최소화 해야함.

 

스타크래프트를 해봤다면, 저그의 오버마인드가 저글링들을 어떤식으로 관리하는지 생각해보면 된다.

 

진행중인 작업

9. AI

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

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

 

진행 예정 작업

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

 

완료된 작업

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.1 스킬 사용 판별여부를 위해, 공격가능한 스킬 데이터를 재정리중

 

728x90

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

Table_War 240510_18  (0) 2024.05.28
Table_War 240507_17  (0) 2024.05.28
Table_War 240501_15  (0) 2024.05.28
Table_War 240429_14  (0) 2024.05.28
Table_War 240425_13  (0) 2024.05.28
작성일
2024. 5. 28. 01:40
작성자
WDmil
728x90

 

 
인공지능 로직을 작성중, 현재 게임의 인공지능객체가 약3200개가량 나타날 수 있고, 임의의 객체가 생성되는걸 고려하면 

여기서 2배가량 더 생길 수 있음으로, 가장 효율적인 인공지능을 고려해야함.

 

가장 적게 연산하면서 가장 그럴듯해 보여야한다.

 

진행중인 작업

9. AI

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

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

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

 

진행 예정 작업

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

 

완료된 작업

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. 세이브데이터 세이브데이터로드 연동, 데이터 연동시 필요사항 추가 기입.

 

728x90

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

Table_War 240507_17  (0) 2024.05.28
Table_War 240503_16  (0) 2024.05.28
Table_War 240429_14  (0) 2024.05.28
Table_War 240425_13  (0) 2024.05.28
Table_War 240424_12  (0) 2024.05.28