UE5 54

언리얼 모듈과 언리얼 게임플레이 모듈

언리얼 모듈 (Modules)모듈이란 무엇이냐?모듈은 빌딩 블록이다.   그런 모듈을 왜 쓰냐?모듈은 언리얼 엔진 소프트웨어 아키텍처의 구성 요소로,코드를 모듈로 청리하여 더 효율적이고 유지보수하기 좋은 프로젝트를 만들 수 있다.UE에서 모듈은 특정 에티터 툴, 런타임 기능, 라이브러리 등의 기능을 독립된 코드로 캡슐화 한다. 모든 프로젝트와 플로그인에는 기본적으로 자체 프라이머리 모듈이 있지만,모듈을 따로 정의하여 코드를 정리할 수 있다. 해당 게시글에서는 모듈의 구와 언리얼 엔진 프로젝트에 사용했을 때의 이점에 대한 개요를 다룬다.  그럼 게임 플레이 모듈은 무엇이냐?(1)엔진 자체가 여러 모듈로 이루어져 있는 것과 마찬가지로,각 게임은 하나 이상의 게임플레이 모듈로 이루어져 있다.이들은 관련 클래스..

UE5 2024.05.09

Unreal Engine - 멀티플레이어 게임에서의 이동

언리얼 내에서의 Travelling은 크게 두 가지가 있다.1. Seamless 2. non-seamless travel 둘의 가장 큰 차이점은 Seamless는 non-blocking(비차단) 작업,non-seamless는 blocking call(차단 호출)이라는 차이가 있다. 이는 즉 클라이언트가 non-seamless travel를 실행할 때,클라이언트는 서버로부터의 연결을 잠시 끊은 뒤 동일 서버에 재연결한다.해당 작업이 완료된다면 클라이언트는 새로운 맵을 로드할 준비를 갖추는 것이다. 언리얼에서 추전하는 것은UE4 멀티플레이어 게임은 가능하다면 seamless travel을 권장하고 있다.이러한 방식이 일반적으로 재연결 과정에서 발생할 수 있는 문제를 방지하며 좀 더 원할하게 진행 될 것이라는..

UE5 2024.05.04

0309 작업 현황

한 것 - 메시 스폰 - 마우스에 메시 따라 가기 - 메시 빨강 파랑 로직 구현 오류 잡은 것 & 이유 - 메시 초록불 체크 로직 다시 확인하고 fix함 -> 이유 땅에 닿는지 확인하는 레이 트레이싱 길이가 짧아서였음 길이 조절 후 fix됨 그 외 함수 구현이 조금 오류난 것들 fix완 해야 할 것 농사 시스템 - location 시키기 - 식물 소켓 부착하기 - 식물 상태 구현 하고 싶은 거 - UI - 빌딩시스템 - 동물 AI

UE5 2024.03.09

작업 현황 0307

함수 로직 검사하기 로직 검사하기 Hide = PreviewCollisionChecks(bIsEnable); if(bIsEnable) { EnablePlacement(); return; } 개선 방안 로직안에 호출하는 인터페이스 함수 구현이 덜 된듯 한 것 - 메시 스폰 - 마우스에 메시 따라하기 - 메시 빨강 파랑 로직 구현 오류 잡기 - 메시 초록불 체크 로직 다시 확인하고 fix하기 해야 할 것 농사 시스템 - 빨강 파랑 로직 구현 - location시키기 - 식물 소켓 부착하기 하고 싶은 거 - UI - 빌딩시스템 - 동물 AI 일단 팀프로젝트 농사 시스템 기초 틀 잡고 개인 프로젝트도 병행하자 개인 프로젝트보단 팀플에 집중하기

UE5 2024.03.07

작업 - 0303

시작해야 할 곳 에디터 플레이 시퀀스 다이어그램 함수 뭐가 더 많긴 한데 일단 이런식으로 정리했다. 디버깅 찍어가면서 굵직한 함수들 시퀀스 다이어 그램에 추가해주기. c++ 프로젝트 경험이 많지 않아서 많이 헤맸지만 숙련된 팀원이 c++ 함수 추적하기 도와주셨다. 또 주변에서 뭘 공부하면 좋을지 중복된 것들을 추려서 짬짬히 읽으면서 코드를 짰었다. 나중에 농사시스템 속도 좀 빼면 TSubclassOf CDO Reflection 이 세개는 빨리 정리하자 처음에는 bp어떻게 c++로 업데이트하나 막막했는데 주변에서 도움도 받고 계속 검색하면서 하니까 대충 이렇지 않을까 하는 감이 조금 생겼다. 이 덕분에 코드에 속도가 좀 붙었다. 항상 내가 이거 왜 하고 있는가? 왜 배워야 하는가? 생각하기

UE5 2024.03.04

가비지 컬렉션

가비지 컬렉션이란? 가비지 컬렉션은 메모리 관리 기법 중 하나로 프로그래밍을 하다 보면 동적으로 할당해준 메모리에 대한 지속된 관리가 필요합니다. 컴퓨터는 일정한 메모리 용량을 가지고 있고, 정해진 메모리를 초과하게 되면 동작하는 프로그램이 정상적으로 작동하지 않을 수 있습니다. 때문에 가비지 컬렉터를 통해서 프로그램이 동적으로 할당했던 메모리 영역 중에서 더 이상 쓰이지 않고 필요 없는 영역을 해제하는 것을 말합니다. C++에서는 수동 메모리 관리를 가정하고 설계하였으나, 언리얼에서는 가비지 컬렉션을 통해서 프로그래머가 관리해야 할 메모리 영역이 줄어듭니다. 가비지 컬렉션의 장단점 장점의 첫 번째로는 유효하지 않은 포인터의 접근을 막을 수 있습니다. 유효하지 않은 포인터의 접근을 막지 않으면 만약 이 ..

UE5 2024.01.26

레이캐스트와 트레이스

레이캐스트와 트레이스는 같은 작업을 뜻한다. 게임에서 플레이어 캐릭터가 무언가를 바라보고 있는지 확인하여 그런 경우 게임을 어떤 상태로 변경하고자 (예를 들어 플레이어가 무언가를 바라보면 강조시키고자)하는 경우가 있다. 또는 적이 플레이어 캐릭터를 볼 수 있는지 확인하여 그런 경우 어떤 식으로든 발사 또는 교전을 시작시켰으면 하는 경우가 있다. 이러한 두 가지 모두 레이캐스트 또는 트레이스를 통해 보이지 않는 광선을 "발사"하여 두 점 사이에 걸리는 지오메트리가 있는지 확인하고, 걸리는 지오메트리가 있으면 어떤 작업을 할 수 있도록 반환한다. 트레이스 실행 시 사용할 수 있는 옵션은 여러가지가 있다. 트레이스를 실행하여 오브젝트와 콜리전 검사를 한 뒤 히트한 오브젝트를 반환하거나, Trace Channe..

UE5 2024.01.11