전체 글

개발 일지, 아이디어 등 Lede의 기록을 수집하고 기록하는 공간
Unreal Engine/팁

[Unreal Engine C++] FVector 정규화 부동소수점 문제 완화 방법

🚀 Sloution FVector의 Normalize() 메소드 대신 GetSafeNormal() 메소드를 사용하자. 보다 정밀하게 값을 계산하기 때문에 부동소수점 문제를 완화할 수 있으며, 메소드를 호출한 벡터 인스턴스 자체를 정규화 하는 대신 정규화된 새로운 벡터를 생성하여 반환하기 때문에 비교적 디버깅에도 유리하다. 📚 Detail 부동소수점이 무엇이고 어떤 구조를 가지며 어떤 한계점이 있는지는 정리가 잘 된 글을 공유하는것으로 대체한다. 여기를 클릭하여 해당 게시글로 이동할 수 있다. FVector의 메소드와 관련해서는 언리얼 엔진 문서에 정리되어 있으며 다음과 같이 설명한다. 1. Normalize() 주어진 허용 오차보다 크면 메소드를 호출한 인스턴스를 정규화 하고, 그렇지 않으면 변경되지 않..

Unreal Engine/팁

[Unreal Engine] 프로젝트에서 게임 서버 & 클라이언트 실행하기

🚀 Solution 윈도우 10 or 11 및 언리얼 엔진 5.3 기준으로 커맨드 창에 다음과 같이 입력하여 실행 가능하다. 💾 서버 실행 "UnrealEditor.exe 경로" "프로젝트.uproject 경로" "시작 월드.umap 경로" -server -log 필자의 환경에서는 다음과 같다. "D:\Epic Games\UE_5.3\Engine\Binaries\Win64\UnrealEditor.exe" "D:\Projects\Unreal\MultiplayerSample1\MultiplayerSample1.uproject" /Game/ThirdPerson/Maps/ThirdPersonMap.umap -server -log 🖥️ 클라이언트 실행 "UnrealEditor.exe 경로" "프로젝트.uproje..

Unreal Engine/팁

[Unreal Engine C++] 코드가 실행 중인 위치가 서버인지 판단하는 방법

🚀 Sloution 언리얼 엔진에서 지원하는 HasAuthority() 함수를 사용하자. 현재 위치가 서버라면 true를 그렇지 않다면 false를 반환 할 것이다. 📚 Detail 언리얼 엔진 문서에서는 해당 액터에게 네트워크 어소리티(권한, Authority)가 있는지의 여부를 반환한다고 말한다. 서버 - 클라이언트 모델에서 서버와 클라이언트 간의 통신에서는 보안과 신뢰성을 유지하기 위해 어소리티가 필요하다. 그렇기에 서버에 어소리티가 존재하며, 어소리티의 존재 여부를 확인하는것 만으로 서버인지 판단할 수 있는 기준이 된다. 즉, 서버와 클라이언트에서 어떤 값이 다르다면 그 값은 어소리티를 가진 서버의 값을 따라가게 된다.

튜토리얼/마인크래프트 플러그인

[Minecraft Plugin Tutorial] 2. 간단한 슈팅 게임 제작

시작하기에 앞서 아직 개발 환경을 설정하지 못했다면 이전 포스트를 참고해 주세요. 이번 시간에는 다음 항목을 학습하는 것을 목표로 합니다. 전체 메세지와 플레이어 메시지를 전송하는 방법 커맨드를 제작하고 등록하는 방법 이벤트 리스너를 제작하고 등록하는 방법 프로젝트 목표 플레이어가 화살을 쏘아 상대 플레이어를 맞추거나 처치했을 때 스코어가 오르는 게임을 제작합니다. 해당 게임을 구현하기 위해 다음과 같은 항목을 필요로 합니다. 게임 시작/종료 기능 플레이어의 스코어 정보를 저장하는 기능 조건 만족 시 플레이어의 스코어를 변경하는 기능 결과물은 다음과 같습니다. 전체 코드는 깃허브에서 볼 수 있습니다. 1. 게임 관리자 제작 먼저, 게임의 진행을 관리할 수 있는 관리자 클래스를 제작합니다. 관리자 클래스에..

Lede_
Lede's Archive