AIController와 BT 설계
·
UE_FPS 슈터 게임 팀프로젝트/일반 AI
🔎AIController란?언리얼에서 AI캐릭터를 제어하는 역할을 하는 클래스이다.AController를 기반으로 확장된 클래스이며, 플레이어 캐릭터를 조작하는 APlayerCharacter와 유사하지만, AI 전용 기능들이 추가되어 있다.AIController는 AI가 움직이고, 행동하고, 의사 결정을 내리도록 도와주는 핵심적인 요소이다.  📌AIController 구현✅ ABaseEnemyAIController.h#pragma once#include "CoreMinimal.h"#include "AIController.h"#include "BaseEnemyAIController.generated.h"UCLASS()class GUNFIREPARAGON_API ABaseEnemyAIController ..
일반 AI_공격 구현
·
UE_FPS 슈터 게임 팀프로젝트/일반 AI
AI의 공격을 구현할 때, 현재 공격하는 중인지 아닌지를 AI 객체와 Animation과 Behavior Tree가 모두 타이밍에 맞게 연동되게 하는 것이 어려웠었다.처음에 공격 애니메이션을 Animation Blueprint에서 State로 전환해서 Animation Sequence를 재생하게 하였는데 애니메이션이 끝나는 타이밍을 AI 객체와 BT에 정확하게 전달하기 위해 공격 애니메이션을 몽타주로 변환하여 C++ 클래스 내부에서 몽타주를 재생하는 것으로 해결하였다.  📌 Animation BlueprintABP에서는 기본 Idle State와 이동시 Walk/Run State만 전환되도록 설정해놓았고, 이후 공격 애니메이션은 C++클래스 내부에서 몽타주를 재생하는 방식으로 구현.  📌 BT_Com..
일반 AI 공격 Test/ UWorld::SweepSingleByChannel
·
UE_FPS 슈터 게임 팀프로젝트/일반 AI
더보기기존에 캐릭터에게 AI가 공격했을 때 데미지를 주는 방식을 UWorld::LineTraceSingleByChannel을 사용해서 테스트하며 행동트리를 구현했었는데, 실질적으로 정확하게 공격 판정 로직을 구현하기 위해 UWorld::SweepSingleByChannel로 변경하였다.  ✅ 근접 공격 로직void ANormalMeleeEnemy::PerformMeleeAttack(){ if (!GetMesh()) return; if (!GetMesh() || !bIsAttacking) return; FVector Start = GetMesh()->GetSocketLocation("FX_Trail_02_R"); FVector End = GetMesh()->GetSocketLocat..
AIController, Behavior Tree 초기 Test
·
UE_FPS 슈터 게임 팀프로젝트/일반 AI
오늘 플레이어를 향해 AI가 쫓아와 공격을 하는 것 까지 구현하였다.AIController에 "UAIPerceptionComponent"를 부착해 캐릭터를 시각적으로 인지할 수 있게 하였고, NavMesh를 월드에 배치해 장애물까지 인식하여 플레이어를 향해 움직일 수 있는 경로를 찾아 쫓아오도록 하였다.공격하는 로직은 아직 구현이 안되어서 일단은 애니메이션 재생하는 것으로 채워놓은 상태이다.📌 구현 코드✅ AIController.h#pragma once#include "CoreMinimal.h"#include "AIController.h"#include "BaseEnemyAIController.generated.h"/** * ABaseEnemyAIController: 적 AI를 제어하는 AI 컨트롤러 ..