본문 바로가기

Study/Unreal Engine

[Unreal] AssetBundle AssetBundle은 FNAME으로 되어 있는 metadata다.가령 MyMesh라는 UStaticMesh가 있을 때, 이를 Bundle1 그룹에 묶어서 관리하고 싶다면 다음과 같이 구성할 수 있다. UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AssetBundles = "Bundle1")) UStaticMesh* MyMesh;  UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AssetBundles = "Bundle1", "Bundle2")) UStaticMesh* MyMesh;  또한 여러개 지정 가능하다. 이러한 AssetBundle은 주로, 에셋을 로드하거나 처리할 때 많이 사용되며.. 더보기
[Unreal] Gameplay Tag https://waterglass0105.tistory.com/110 [Unity] TagUnity에서 Tag는 게임 오브젝트를 식별하고 분류하기 위한 문자열 라벨이다. Tag를 사용하면 특정 오브젝트 그룹에 쉽게 접근하거나 필터링할 수 있다.예를 들어, 적 오브젝트는 "Enemy" 태그를, 플레waterglass0105.tistory.com유니티와 마찬가지로, 언리얼의 태그도 게임 내에서 개체(Actor, Component 등)에 태그를 부여하여 특정 속성이나 상태를 나타내고, 이를 기반으로 게임 로직을 처리할 수 있게 하는 시스템이다. 이 시스템은 특히 게임플레이의 복잡성을 줄이고 코드의 가독성을 높이며, 재사용 가능한 로직을 작성하는 데 유용하다.GamePlay Tag는 크게 3가지로 볼 수 있다... 더보기
[Unreal] Socket Attach/Detach UE은 소켓을 붙일 때, component 단위로 붙인다.이는 Unreal Engine의 Actor는 좌표를 가지지 않기 때문이다. 그럼 우선, Component에 대해 알아야한다. Hierarchy 구성은 더 복잡하지만, 중요한 클래스만 정리해보면 위 그림과 같이 구성할 수 있다.1. Actor와 SceneComponent다음 Blueprint Class로 생성한 Actor를 보게 되면, Details에 좌표를 결정하는 Transform이 없는 것을 확인할 수 있다.  하지만 이 액터는 아래와 같이 레벨에 바로 배치가 가능하다.상식적으로 생각해보면, 좌표 정보를 가지지 않았으므로, 레벨에 올리는 것이 불가능해야한다.그렇다면 어떻게 배치가 가능한 것일까? 바로 다음 그림에서 알 수 있다. 블루프린트에서 .. 더보기
[Unreal] PDA, Bundle PDAPDA는 DataAsset의 발전된 형태로, ID를 사용하여 데이터를 관리한다. 즉, 데이터를 ID로 구분하여 불러오며 이 ID를 통해 데이터를 읽을 수 있다. 이때, unload시, 더 이상 사용하는 곳이 없다면 자동으로 garbage collection을 통해 메모리를 정리한다. 즉, Shared Pointer 또한 가지고 있는 것이다.이러한 PDA는 Asset Manager에 미리 등록해서 사용해야 한다. 추가 > 타입 동일하게 > 베이스클래스 설정 > 물리적 디렉토리 설정 가령, PDA를 다음과 같이 구성하였다면// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "Co.. 더보기
[Unreal] 언리얼 엔진과 네트워크 언리얼 엔진의 네트워크 시스템을 공부하면서, 언리얼 엔진은 과연 TCP일까 UDP일까 문득 궁금해졌다.찾아보며 다음과 같은 내용들을 찾았다. 우선 언리얼의 NetDriver.h의 내용은 다음과 같다.// Copyright Epic Games, Inc. All Rights Reserved.//// Base class of a network driver attached to an active or pending level.#pragma once#include "CoreMinimal.h"#include "Engine/EngineBaseTypes.h"#include "Engine/EngineTypes.h"#include "Net/NetworkMetricsDatabase.h"#include "HAL/IConsol.. 더보기
[Tip] 파일의 이름 길이 32자를 넘기지 않는 것이 가장 좋다.넘겨도 작동은 가능하지만, 간헐적으로 문제가 발생한다. 더보기
[Tips] 이름 앞에 붙는 것 A -> Actor Class 상속U -> UObject Class 상속F -> Structure / Native Class / FStructure 상속E-> Enumb -> boolean 더보기
[Tips] UFNCTION 리플렉션의 역할을 하는 매크로이다. 이는 언리얼에서 동적으로 추적한다는 의미로, 보통 다이나믹 델리게이트에서 많이 사용한다. UFNCTION의 동적 추적은 개발자가 메모리 관리를 할 필요 없게 해준다. 더보기