Debug Helper 만들기
·
내배캠/Unreal Engine
📌 Debug Helper.hDebug Helper라는 클래스에 뷰포트와 로그 출력을 동시에 처리하는 함수를 만들어, 코드 중복을 줄이고 쉽게 디버깅을 할 수 있는 환경을 만드는 취지이다. ✅ 클래스 생성Public 폴더에 DebugHelper.h를 생성해준다. ✅ Debug 코드 작성#pragma oncenamespace Debug{ static void Print(const FString& Msg, const FColor& Color = FColor::MakeRandomColor(), int32 InKey = -1) { if (GEngine) { GEngine->AddOnScreenDebugMessage(InKey, 7.f, Color, Msg); UE_LOG(LogTemp, Warnin..
AI_NavLink
·
내배캠/Unreal Engine
📌 자동 네비게이션 링크 생성월드에 NavMesh를 배치했을 때의 모습이다.플레이어는 점프에서 여러 고지대를 올라갈 수 있지만 AI들은 NavMesh가 끊겨있고 점프로만 올라갈 수 있는 지형의 경우 앞에서 멈춰버리게 된다.이를 해결하기 위해 기존에는 Nav Link Proxy라는 오브젝트를 레벨 내에 하나씩 배치하여 NavMesh가 끊긴 부분마다 디자인 해줬어야 했는데, Unreal 5.5 버전 부터는 RecastNavMesh-Default 내에 Generation 기능을 활용하면 자동으로 생성된다. ✅ Nav Links 활성화기본적으로 NavMesh를 월드에 배치하고 나면, Details 창 이미지처럼 RecastNavMesh-Default 항목이 보이게 된다.클릭 후, 아래에 Generate를 검..
AI_Perception(플레이어 감지)
·
내배캠/Unreal Engine
📌 AI Perception Component언리얼 엔진에서 AI가 감지할 수 있게 해주는 센서 시스템이다.시각, 청각, 데미지 등 다양한 자극(Stimulus)을 감지하고, 그 정보를 AIController에 전달해서 AI의 의사결정에 활용된다.간단하게 AI에게 시각을 부여해서 특정 거리안에 있으면 AI가 시각적으로 플레이어를 인식하고, 범위를 벗어나면 시각적으로 인지하지 못해 더 이상 추격이 불가능한 상태를 구현해보려한다. ✅ AIController 구현*AIController.h더보기#pragma once#include "CoreMinimal.h"#include "AIController.h"#include "Perception/AIPerceptionComponent.h"#include "Perce..
AI_RVO(회피 이동)
·
내배캠/Unreal Engine
📌 RVO란?RVO(Reciprocal Velocity Obstacles)는 움직이는 객체들이 서로의 속도와 방향을 고려하여 충돌을 피하는 기능이며, 서로를 장애물로 인식하고 충돌을 피하는 알고리즘이다.이전에 Pathfinding 경로 찾기 기능은 움직이지 않는 오브젝트를 우회하도록 디자인하는 것이었다.이와 달리 RVO는 "움직이는" 액터를 회피할 수 있고, 특히 경로 재계산 없이 속도와 방향만을 조절하여 실시간 회피가 가능하므로 다수의 액터가 있을 때 더욱 효율적이고 자연스러운 움직임을 제공하는게 장점이다. ✅ AI 캐릭터에 RVO 적용#pragma once#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "RVO_Charact..
AI_NavMesh
·
내배캠/Unreal Engine
📌 NavMesh의 동적 변화NavMesh는 런타임에 동적으로 생성은 불가능하다.하지만 레벨이 런타임중에 변화되었을 때 동적으로 NavMesh의 계산을 동적으로 변경할 수 있다.그 세팅은 위와같이 Project Settings에서 Engine-> Navigation Mesh 카테고리에서 Runtime 섹션을 살펴보면 Runtime Generation 항목이 있는데 그것을 기본 Static 값에서 Dynamic 값으로 변경해주면된다.참고로 이 기능은 리소스를 많이 소모하게 된다는 점은 알고 있자. 🔹 좌(Dynamic 설정) / 우(Dynamic Modifiers Only 설정)Dynamic Modifers 경우엔 Static과 Dynamic 옵션을 섞은 것과 동일하지만, NavMesh 영역에서 "빼기..
미로 게임 구현(Dedicated Server)
·
내배캠/Unreal Engine
📌 클래스 다이어그램이 게임은 자동으로 미로를 생성하고, 플레이어가 탈출지점에 도착하면 승자가 발표되며 게임이 종료되는 구조이다.언리얼의 GameMode, PlayerController, PlayerState, GameState, Character, Actor 등의 개념을 활용해서 서버-클라이언트 구조로 설계했다.  📌 미로 생성 시스템 / FMazeCell과 AMazeGenerator게임을 시작했을 때 맵이 고정되어있다면 플레이어는 금방 구조를 외우게 된다.그래서 매번 새로운 미로를 자동으로 만들어내는 시스템이 필요했고, 이를 C++코드로 직접 구현했다.벽을 그리드 형태로 배치한 뒤, 2D배열과 재귀 알고리즘을 사용해서 벽을 랜덤하게 제거해나가는 방식이다.✅ FMazeCell (미로 셀에 대한 구조..