Metaverse/UE5 9

Build Tool

다양한 빌드 구성에 걸쳐 소스 코드를 빌드하는 프로세스를 관리하는 커스텀 도구 동작 방식 언리얼 기본 C++ 프로젝트 생성 시, 3개의 C# 파일이 프로젝트에 같이 생성된다. (프로젝트명).build.cs (프로젝트명).target.cs (프로젝트명Editor).target.cs build.cs는 빌드 옵션을 관리하고, target.cs는 빌드 타입을 정의한다. .uproject를 실행하거나, .sln 프로젝트에서 build 명령을 내리면 UBT 프로그램이 실행되면서 언리얼 프로젝트의 build.cs, target.cs 파일들이 C# 컴파일러에 의해 컴파일된다. 이후에 .cs 파일에 작성한 사양대로 빌드 과정이 진행된다. 왜 필요한가? 언리얼은 멀티 플랫폼에서 개발이 가능하고 멀티 플랫폼 빌드를 목표로하..

Metaverse/UE5 2024.02.01

Automation Tool

C# 사용 시 UE 관련 무인 프로세스를 스크립팅할 수 있는 호스트 프로그램 및 유틸리티 라이브러리 세트 작동 방식 자동화 프로젝트: 자동화 툴 실행 시 확장자가 .Automation.csproj인 Visual Studio C# 프로젝트로 저장된 모든 자동화 프로젝트를 찾아 컴파일 다음, 리플렉션을 사용하여 실행할 적절한 명령을 찾는다. 이러한 명령은 Build Command 베이스 클래스에서 파생된 클래스에서 구현되며 클래스 명으로 식별됨 자동화 도구 실행: Windows의 Visual Studio 디버거 또는 Windows, Mac 및 Linux의 검색줄에서 검색할 수 있다. 디버거 Commands 실행 Command line에서 Commands 실행 (Windows) 터미널에서 Commands 실행..

Metaverse/UE5 2024.02.01

RPC

RPC(Remote Procedure Call)는 로컬에서 호출되지만 호출하는 머신과는 다른 머신에서 원격 실행되는 함수를 말한다. RPC 함수는 네트워크 연결을 통해 클라이언트와 서버 사이에 메시지를 전송할 수 있다. 이 기능의 주요 용도는 휘발성인 비신뢰성 게임플레이 이벤트를 위한 것이다. 사운드 재생, 파티클 스폰, 액터의 핵심적인 기능과는 무관한 일시적인 효과와 같은 작업을 하는 이벤트 등을 포함한다. RPC 사용하기 함수를 RPC로 선언하려면 UFUNCTION 선언에 Server, Client, NetMulticast 키워드를 붙여주기만 하면 된다. ex) 함수를 서버에서 호출되지만 클라이언트에서 실행되는 RPC로 선언하려면 UFUNCTION( Client ) void ClientRPCFunct..

Metaverse/UE5 2024.01.29

Network

Network 모드 유형 NM_Standalone 로컬 머신에서 실행되며 원격 머신에서 클라이언트를 받지 않는 서버를 나타낸다. 싱글 플레이어, 또는 멀티 플레이 게임에 적절하다. NM_DedicatedServer 로컬 플레이어가 없어 사운드, 그래픽, 사용자 입력, 기타 플레이어 관련 기능을 제거하여 보다 효율적인 실행이 가능한 전용 서버이다. 이 서버 유형은 신뢰 서버에서 호스팅되는 멀티 플레이어 게임에 사용되며, 경쟁형 MOBA, MMO, 온라인 슈팅 게임 등 퍼포먼스가 중요해서 신뢰성 있는 서버가 필요한 경우에 사용된다. NM_ListenServer 로컬 플레이어가 있는 서버로, 원격 플레이어에게도 접속을 허락한다. 이 유형의 서버는 데디케이티드 서버가 불필요한 경쟁 또는 협력 게임에 좋으며, 사..

Metaverse/UE5 2024.01.29

Animation

Static Mesh와 Skeletal Mesh 먼저 Static Mesh는 메시 데이터가 고정되어 있어 변경이 불가능한 데이터이다. Skeletal Mesh는 메시 데이터와 뼈대 데이터로 나뉘어져 있고, 이를 이용해 애니메이션에 적용될 수 있다. 각 뼈대의 Bone을 이동 및 회전시킴으로써 팔다리를 움직일 수 있게 한다. Bone / Rig / Skeleton Bone: 뼈대의 뼈에 해당 Rig: 각 본들이 어떻게 연결되어 있는지를 나타냄 Skeleton: 뼈대 구조 목록과 각 본이 어떻게 연결되어 있는지에 대한 정보 애니메이션을 가져와서 사용하려면 해당 애니메이션은 스켈레톤 정보가 필요함 애니메이션 데이터(Animation Sequence) 자체가 본의 트랜스폼 정보를 키프레임에 저장한 것 Anima..

Metaverse/UE5 2024.01.25

Reflection

: 프로그램이 실행시간에 자기 자신을 조사하는 기능 에디터의 디테일 패널 Serialization Garbage Collection Network Replication Blueprint / C++ Communication 등 다수의 시스템에 탑재됨 C++은 어떠한 형태의 리플렉션도 지원하지 않아, 언리얼에는 자체적으로 C++ 클래스, 구조체, 함수, 멤버 변수, 열거형 관련 정보를 수집, 질의 조작하는 별도의 시스템이 구축되어 있음 전형적으로 이러한 리플렉션은 Property System이라고 부름 Replication System은 옵션임, Reflection System에 보이도록 했으면 하는 유형이나 property에 주석을 달아주면, Unreal Header Tool (UHT)가 그 프로젝트를 컴..

Metaverse/UE5 2023.12.29

Garbage Collection

사용되지 않는 메모리 리소스를 회수하고 해제하여 프로그램의 메모리 누수를 방지하고 성능을 최적화 관리 대상으로 지정된 객체들은 UObject의 모든 하위 클래스들임 참조 카운팅 객체 간의 참조를 추적하기 위해 참조 카운팅을 사용 객체가 다른 객체에 의해 참조되면 해당 객체의 참조 카운트가 증가하고, 참조가 제거되면 감소함 참조 카운트가 0이 되면 해당 객체는 더 이상 필요하지 않으며 가비지 컬렉션의 대상이 됨 주기적인 가비지 콜렉션 일정한 주기 또는 메모리 입력이 발생할 때마다 가비지 콜렉션을 수행, 이 과정에서 더 이상 참조되지 않는 객체들이 해제됨 루트 객체 가비지 콜렉션은 일반적으로 게임 월드 내에서 시작되며, 게임 월드 내의 루트 객체들을 기반으로 작동 루트 객체는 참조 카운트가 1 이상이어야 하..

Metaverse/UE5 2023.12.28