분류 전체보기62 언리얼에서 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. 25.03.19 Prediction and Reconciliation Client-Side Prediction (클라이언트 측 예측)Client-Side Prediction은 멀티플레이어 게임에서 네트워크 지연(렉)을 최소화하고, 플레이어의 조작감을 부드럽게 만드는 핵심 기술입니다. 이 기술은 클라이언트가 서버의 응답을 기다리지 않고, 먼저 자신의 캐릭터를 움직인 후 나중에 서버의 결과를 받아 수정하는 방식으로 동작합니다.Client-Side Prediction의 동작 원리클라이언트 입력 & 로컬 이동:플레이어가 이동 키를 누르면, 클라이언트는 즉시 캐릭터를 움직입니다. (예측 동작)동시에 서버에게 "이 방향으로 이 시간에 움직였다"는 정보를 전송합니다.서버 시뮬레이션:서버는 클라이언트의 이동 요청을 받아 검증합니다. (예: 캐릭터가 움직일 수 있는 상태인지 확인)서버는 .. 2025. 3. 19. 25.03.17 대용량 데이터 Replication 최적화하기 1️⃣ 대용량 데이터를 효율적으로 Replication하는 방법언리얼 엔진의 Replication 시스템은 작은 데이터(예: 캐릭터 상태)에 최적화되어 있습니다.대용량 데이터(예: 배열, 구조체)를 Replication할 때는 문제가 발생할 수 있습니다:네트워크 패킷 크기 제한 초과: 한 번에 너무 많은 데이터를 보내면 네트워크가 버티지 못합니다.대역폭 과다 사용: 패킷 손실이나 지연이 발생할 수 있습니다.연결 끊김: 최악의 경우 서버와 클라이언트 간 연결이 끊길 수 있습니다.2️⃣ FastArraySerializer대용량 배열을 효율적으로 Replication하기 위한 도구입니다.변경된 부분만 전송하여 네트워크 부하를 줄입니다.예: 인벤토리 시스템에서 아이템이 추가/삭제/수정될 때마다 변경 사항만 전송.. 2025. 3. 17. 이전 1 2 3 4 5 ··· 11 다음