전체 글 70

스플래툰 모작 - 몬스터 구현 트러블 슈팅 정리

언리얼 엔진을 활용한 스플래툰 모작 게임 개발 과정에서 몬스터를 구현하며 겪었던 문제 상황과 그 해결 과정을 총정리한 글입니다. AI 행동 구현, 팀 구분, 데미지 처리를 구현하며 직면했던 트러블의 해결 과정을 중심으로 설명하며, 각 문제에 대한 원인 분석과 해결 방법을 작성했습니다. 몬스터 AI 구현 몬스터의 행동 구현과 인식에서 생긴 문제 해결 과정을 정리한 글입니다. 플레이어를 추적하고 공격하는 AI 적이번에 구현할 것은 적이 플레이어를 쫒아오고플레이어에게 접근하면 공격하는 모션을 취하는 적을 만드는 것이 목표입니다. BluePrintBP_EnemyBase공격 애니메이션으로 몽타주를 생성해서 공격하vetenir.tistory.com AI Perception 사용 시 같은 AI 공격 문제 해결 ..

아이템 랜덤 스포너

언리얼 엔진 기반의 Platform Fighter Starter Kit를 활용해 멀티플레이 게임을 제작하던 중, 전투의 재미를 더욱 극대화하기 위해 아이템 시스템을 직접 구현하게 되었습니다. 단순히 지정된 아이템을 생성하는 방식은 게임 예측 플레이 예측과 반복성으로 인해 플레이 경험을 단조롭게 만들 수 있다는 피드백을 받았고, 이에 따라 아이템이 무작위로 등장하는 '랜덤 스포너'를 제작하게 되었습니다.코드 요약아이템 베이스를 만들어 이후 추가되는 아이템들에게 상속할 수 있게 만들고 해당 아이템들을 배열로 등록하여 랜덤 생성할 수 있는 코드를 작성. ItemBase.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "..

언리얼 Delegate

델리게이트는 ‘이벤트를 발생시키는 쪽’과 ‘처리하는 쪽’을 분리시켜 주는 도구로, 복잡한 시스템에서도 깔끔한 구조를 유지하게 해줍니다. 게임 내 수많은 이벤트(입력, 충돌, UI, AI, 네트워크 등)에 효과적으로 대응할 수 있는 핵심 설계 요소입니다.✅ 델리게이트의 특징특징설명🧩 낮은 결합도(Loosely Coupled)클래스 간에 직접 참조 없이도 함수 호출이 가능. 코드 간 의존성 최소화.🔄 이벤트 기반 구조어떤 이벤트 발생 시 다양한 반응(리스너)들을 유연하게 처리 가능.🧪 확장성/유지보수성 우수다른 클래스 수정 없이 새 기능(리스너)을 추가 가능.🧠 함수 호출 추상화델리게이트를 통해 함수를 저장/호출함으로써 동적 로직 구성 가능.🎮 멀티캐스트 지원여러 개의 리스너를 동시에 바인딩해서 한..

set, unordered_set

✅ set vs unordered_set항목 set unordered_set정의이진 탐색 트리 (Red-Black Tree) 기반해시 테이블 (Hash Table) 기반원소 정렬자동 오름차순 정렬정렬되지 않음 (순서 보장 X)검색/삽입/삭제 시간O(log N)평균 O(1), 최악 O(N)중복 허용❌ (중복 제거)❌ (중복 제거)헤더파일순회 순서오름차순삽입 순서와 무관set 예시#include #include using namespace std;int main() { set s; s.insert(5); s.insert(2); s.insert(8); s.insert(2); // 중복 무시 for (int val : s) { cout unordered_set 예..

C++ 2025.06.13

Unreal MCP

🌟 개요Unreal Engine 5.5 + Python + Cursor AI를 연결하여 코드 작성 및 편집에 AI 보조를 도입하는 방법을 소개.카테고리가능한 작업액터 관리• 액터 생성 및 삭제 (큐브, 구체, 조명, 카메라 등)• 액터의 변환 설정 (위치, 회전, 크기)• 액터 속성 조회 및 이름으로 검색• 현재 레벨에 존재하는 모든 액터 나열블루프린트 개발• 커스텀 컴포넌트를 포함한 새로운 블루프린트 클래스 생성• 컴포넌트 추가 및 설정 (메시, 카메라, 조명 등)• 컴포넌트 속성 및 물리 설정 구성• 블루프린트 컴파일 및 인스턴스 생성• 플레이어 입력 매핑 생성블루프린트 노드 그래프• 이벤트 노드 추가 (BeginPlay, Tick 등)• 함수 호출 노드 생성 및 연결• 커스텀 타입과 기본값을 가진..

Unreal AI 구조

🧠 언리얼 AI 구조 1. AI Character (Pawn 또는 Character)실제 게임 월드에서 활동하는 캐릭터입니다.사람 대신 인공지능이 조작하는 주체입니다.자신이 스폰되면 자동 또는 수동으로 AI Controller에 의해 **Possess(소유)**됩니다.2. AI ControllerAI의 중추신경 역할을 합니다.AI Character를 소유하고 제어합니다.BeginPlay()나 Possess() 시점에 다음을 수행합니다:Blackboard를 초기화Behavior Tree를 실행또한 Tick을 통해 AI 판단 및 동작을 계속 처리합니다.3. BlackboardAI가 기억하는 **정보 저장소 (Key-Value 기반)**입니다.예시:TargetActor = PlayerbCanSeeTarget..

_Implementation, _Validate, Execute_

1. 함수이름_ImplementationUFUNCTION(Server, Reliable, WithValidation) 또는 UFUNCTION(BlueprintNativeEvent) 등에서 사용됨.함수 본체는 _Implementation에 작성함.✅ 예시:UFUNCTION(Server, Reliable, WithValidation)void ServerDoSomething();void AMyActor::ServerDoSomething_Implementation() { // 실제 서버에서 실행될 로직}2. 함수이름_ValidateWithValidation이 붙은 UFUNCTION에서 반드시 구현해야 함.클라이언트가 서버 RPC 호출 시 서버에서 유효성 검사를 수행함.보안상 중요한 함수일 경우 체크 필수...

이벤트 디스패처(Event Dispatcher)와 블루프린트 인터페이스(Blueprint Interface)

언리얼 엔진에서 이벤트 디스패처(Event Dispatcher)와 블루프린트 인터페이스(Blueprint Interface)는 모두 블루프린트 간 통신을 위한 도구지만, 동작 방식과 사용 목적이 다릅니다.📣 1. 이벤트 디스패처 (Event Dispatcher)✅ 특징Delegate(위임자) 기반의 콜백 메커니즘.한 오브젝트가 이벤트를 발생시키고(방송) 다른 오브젝트들이 이를 구독(바인딩) 해서 반응함.이벤트 발행자와 수신자 간의 직접 참조가 필요함 (바인딩 시점에 대상 오브젝트를 알고 있어야 함).✅ 사용 예시캐릭터가 죽었을 때, UI에서 "게임 오버"를 띄우고 싶을 때.문(Actor)이 열릴 때, 사운드나 이펙트를 별도의 컴포넌트에서 실행하고 싶을 때.✅ 흐름A Actor에 이벤트 디스패처를 선언B..

피보나치 수열 문제

서론피보나치 수열 문제를 해결하기 위해 생각의 흐름과 과정을 정리한 글 입니다. 문제 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 첫번째 코드#include #include using namespace std;int solution(int n) { if (n >= 2) { return solution(n-1) + solution(n-2); } else if (n == 1) { return 1; } else { return 0; }} 첫번째 코드 결과재귀를 이용하여 간단하게 풀 수 있을 줄 알았습니다.하지만 시간 초과로 인..

코딩테스트 2025.05.02