본문 바로가기

전체 글58

플레이어를 추적하는 AI만들기 플레이어가 주변에 오면 플레이어를 추적하는 시스템을 만들고싶습니다.그럼 먼저 플레이어컨트롤러cpp를 만들어줍니다.#pragma once#include "CoreMinimal.h"#include "AIController.h"#include "Perception/AIPerceptionComponent.h"#include "Perception/AISenseConfig_Sight.h"#include "Chaser_AIController.generated.h"// AI 상태 열거형 정의UENUM(BlueprintType)enum class EAIState : uint8{ Idle, Suspicious, Chasing};/** * 거리 기반 추적 로직이 구현된 AI 컨트롤러 */UCLASS()cla.. 2025. 4. 23.
언리얼엔진에서 AI 이동시키기 BP_AI controller를 하나 생성해준 뒤 캐릭터 소스코드를 들어가줍니다.(없다면 만들어야함.보통 템플릿을 사용한다면 있음) 캐릭터 소스를 다음과 같이 고쳐줍니다.#pragma once#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "Logging/LogMacros.h"#include "NavigationInvokerComponent.h"#include "AIController.h"#include "Engine/TargetPoint.h"#include "SCC_UEAICharacter.generated.h"class USpringArmComponent;class UCameraComponent;class UInputMappi.. 2025. 4. 22.
언리얼에서 AI의 이동범위를 동적으로 지정하는 방법 NavMeshBoundsVolume이란?NavMeshBoundsVolume은 AI가 이동할 수 있는 영역을 정의하는 장치입니다.Unreal Engine에서 AI가 맵 위를 자유롭게 돌아다니기 위해서는, 이동 가능한 경로 정보가 필요합니다. 이때 사용하는 것이 네비게이션 메시(NavMesh) 시스템이며, NavMeshBoundsVolume은 이 네비게이션 메시가 생성될 범위를 지정하는 역할을 합니다. place actors 메뉴에서 volumes을 찾아 nav mesh bounds volume 을 찾아줍니다.드래그앤드롭으로 레벨 내 배치합니다. 처음엔 그저 주황색 상자로 뜨기때문에 보기 어려울 수 있지만 p를 누르면 녹색 지형으로 나타납니다.이렇게 static 즉 동적으로 움직이지 않을 예정이라면 이대로 .. 2025. 4. 21.
프로젝트를 마치며ㅑ 이번 프로젝트로는 격투게임을 구현하였습니다 해당 kpt입니다 Keep (유지할 점)Notion과 GitHub를 연동하여 협업을 효과적으로 관리한 점업무를 순차적으로 진행하고 블루프린트 Lock을 사용하여 충돌을 방지한 점와이어프레임을 작성하고 이를 바탕으로 명확한 역할 분담을 진행한 점매일 스크럼을 진행하며 팀원 간 진행 상황을 투명하게 공유한 점Problem (개선할 점)부분적으로만 완성된 블루프린트 코드가 많아 프로젝트 통합에 어려움이 있었습니다.짧은 프로젝트 기간으로 인해 완성도 높은 작업물을 만드는 데 제약이 있었습니다.블루프린트 중심으로 작업을 진행하면서 블루프린트 Lock으로 인해 역할 분담 및 병행 작업이 원활하지 않았습니다.팀원 전반적으로 C++ 프로그래밍 역량이 부족해 기능 확장이나 고도.. 2025. 4. 18.
25.04.08 채팅시스템 구현 (상) 1ㅂ프로젝트 개요이 가이드에서는 언리얼 엔진 5.5.4 버전을 사용해 간단하지만 완벽하게 동작하는 채팅 시스템을 구현합니다. C++로 핵심 로직을 작성하고 블루프린트로 연결하는 방법을 단계별로 설명드리겠습니다. 그전에서버 모델과 동작 원리를 알아봐야합니다. 서버 유형 비교표서버 유형설명장점단점대표 게임P2P (Peer-to-Peer)모든 클라이언트가 서버 역할 동시 수행서버 유지비용 없음, 빠른 통신보안 취약, 호스트 나가면 게임 종료다크소울, 토렌트Listen Server한 클라이언트가 호스트 역할 수행간편한 설정, 추가 인프라 불필요호스트 성능에 전체 게임 영향마인크래프트, 어몽어스Dedicated Server전용 서버 프로그램 운영안정적 성능, 공정한 게임 환경별도 서버 운영 비용 발생배틀그라운드,.. 2025. 4. 8.
23.03.27 Unreal 엔진 코드 악취 24가지: 심층 분석과 리팩토링 전략 프로그래밍을 하다 보면 유지보수가 어렵고 가독성이 떨어지는 코드를 마주할 때가 있습니다. 이러한 문제를 "코드 악취"라고 부르며, Unreal 엔진 프로젝트에서도 흔히 발견됩니다. 이 글에서는 24가지 코드 악취의 예시와 이를 개선하는 방법을 소개합니다.1. 기이한 이름 (Mysterious Name)문제점: 변수나 함수의 이름이 모호해 의도를 파악하기 어려움.해결책: 역할이 명확한 이름 사용.cppCopy// 나쁜 예float AAA;void DoIt(int x);// 좋은 예float CurrentHealth;void AttackEnemy(int DamageAmount);2. 중복 코드 (Duplicated Code)문제점: 유사한 로직이 반복되어 수정이 어려움.해결책: 상속 또는 컴포넌트로 통합.c.. 2025. 3. 27.