메타데이터 지정자

Metadata 키워드는 UClass, UFunction, UProperty, UEnum, UInterface 를 선언할 때 사용되며, 엔진 및 에디터 다양한 부분과의 작동방식을 지정하는 데 사용됩니다.

Choose your operating system:

Windows

macOS

Linux

클래스, 열거형(enum), 열거형 값, 함수, 구조체, 프로퍼티, 인터페이스 선언시, 메타데이터 지정자를 붙여 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 제어할 수 있습니다.

메타데이터 지정자 사용법은 일반적인 클래스, 함수, 인터페이스 지정자와는 다릅니다.

클래스, 인터페이스, 함수나 프로퍼티를 선언할 때 지정자를 붙여 엔진 및 에디터 다양한 부분에 대한 작동방식을 지정할 수 있습니다. 메타데이터 지정자를 사용하려면, UCLASS , UINTERFACE , UFUNCTION , UPROPERTY 매크로에 다음과 같이 meta 를 붙이면 됩니다:

{UCLASS/UINTERFACE/USTRUCT/UFUNCTION/UPROPERTY}(meta=(MetaTag1="Value1", MetaTag2, ..))

메타데이터는 에디터 빌드를 실행할 때 C++ 코드에서 접근할 수 있지만, 출시 제품에는 빠질 것입니다. 게임 로직은 메타데이터를 사용해서는 안됩니다.

클래스 메타데이터 지정자

클래스는 다음과 같은 메타태그 지정자를 사용할 수 있습니다:

클래스 메타 태그

효과

BlueprintSpawnableComponent

존재하면, 블루프린트가 컴포넌트 클래스를 스폰시킬 수 있습니다.

BlueprintThreadSafe

블루프린트 함수 라이브러리에서만 유효합니다. 이 지정자는 이 클래스의 함수를 애니메이션 블루프린트의 비게임 스레드에서 호출가능한 것으로 마킹합니다.

ChildCannotTick

액터 및 컴포넌트 클래스에 사용됩니다. 네이티브 클래스가 틱을 할 수 없으면, 이 액터 또는 컴포넌트를 기반 블루프린트 생성 클래스도, 심지어 bCanBlueprintsTickByDefault 가 true 라도 절대 틱이 되지 않습니다.

ChildCanTick

액터 및 컴포넌트 클래스에 사용됩니다. 네이티브 클래스가 틱을 할 수 없으면, 이 액터 또는 컴포넌트를 기반 블루프린트 생성 클래스는, bCanBlueprintsTickByDefault 가 false 라 할지라도 bCanEverTick 옵션을 덮어쓰도록 할 수 있습니다.

DeprecatedNode

비헤이비어 트리 노드에 대해, 클래스가 폐기되어 컴파일 시 경고가 표시됨을 나타냅니다.

DeprecationMessage="Message Text"

클래스가 폐기되면, 그것을 사용하는 블루프린트를 컴파일하려 할 때 표준 폐기 경고에 이 메시지가 추가됩니다.

DisplayName="Blueprint Node Name"

블루프린트의 이 노드 이름은 코드 생성 이름이 아닌 여기 제공된 값으로 대체됩니다.

DontUseGenericSpawnObject

블루프린트의 Generic Create Object 노드를 사용하여 클래스의 오브젝트를 스폰하지 않습니다. 이 지정자는 Actor 도 ActorComponent 도 아닌 BlueprintType 클래스에만 의미가 있습니다.

ExposedAsyncProxy

Async Task 노드에 이 클래스의 프록시 오브젝트를 노출시킵니다.

IgnoreCategoryKeywordsInSubclasses

클래스의 첫 서브클래스가 상속된 ShowCategories HideCategories 지정자 전부를 무시하도록 만듭니다.

IsBlueprintBase="true/false"

이 클래스가 블루프린트 생성을 위한 베이스 클래스로 적합한지( 또는 아닌지)를 나타냅니다. UCLASS 지정자, Blueprintable 또는 'NotBlueprintable` 과 비슷합니다.

KismetHideOverrides="Event1, Event2, .."

덮어쓰기를 허용하지 않을 블루프린트 이벤트 목록입니다.

ProhibitedInterfaces="Interface1, Interface2, .."

클래스와 호환되지 않는 인터페이스 목록입니다.

RestrictedToClasses="Class1, Class2, .."

블루프린트 함수 라이브러리 클래스에서 목록의 클래스 사용을 제한시킵니다.

ShortToolTip="Short tooltip"

부모 클래스 선택기 대화창처럼 전체 툴팁 표시가 버거운 상황에서 사용할 짧은 툴팁입니다.

ShowWorldContextPin

이 클래스 소유 그래프에 배치된 블루프린트 노드는 월드 컨텍스트 핀을 반드시 표시해야 합니다. 이 클래스 오브젝트를 월드 컨텍스트로 사용할 수 없어서, 보통 숨겨진 경우에도 마찬가지입니다.

UsesHierarchy

클래스가 계층형 데이터를 사용함을 나타냅니다. 디테일 패널의 계층형 편집 기능 인스턴싱에 사용합니다.

ToolTip="Hand-written tooltip"

코드 코멘트에서 자동 생성되는 툴팁을 덮어씁니다.

Enum Metadata Specifiers

Enumerations can use the following Metadata Specifiers:

Enumeration Meta Tag

Effect

Bitflags

Indicates that this Enumeration can be used as flags by integer UPROPERTY variables that are set up with the "Bitmask" Metadata Specifier.

Experimental

Labels this type as experimental and unsupported.

ScriptName="Display Name"

The quoted string will be used as the name of this Enumeration in the Editor, rather than the default name generated by Unreal Header Tool.

ToolTip="Hand-written tooltip"

Overrides the automatically generated tooltip from code comments.

Individual values within an Enumeration have their own Metadata Specifiers. These differ slightly from other Metadata Specifiers in that they use top-level keyword UMETA , and are specified after the value they modify, rather than before.

Enumerated Value UMeta Tag

Effect

DisplayName="Enumerated Value Name"

This value's name will be the text provided here, rather than the code-generated name.

Hidden

This value will not appear in the Editor.

ToolTip="Hand-written tooltip."

Overrides the automatically generated tooltip from code comments.

인터페이스 메타데이터 지정자

인터페이스는 다음과 같은 메타태그 지정자를 사용할 수 있습니다:

인터페이스 메타 태그

효과

CannotImplementInterfaceInBlueprint

이 인터페이스는 블루프린트 에서 구현할 수 없습니다 (예를 들면 노출되지 않은 C++ 멤버 메서드만 있는 경우입니다). BlueprintImplementableEvent 또는 BlueprintNativeEvent 가 아닌 함수를 정의하는 인터페이스는, 반드시 CannotImplementInterfaceInBlueprint 로 선언해야 합니다.

구조체 메타데이터 지정자

구조체는 다음과 같은 메타태그 지정자를 사용할 수 있습니다:

구조체 메타 태그

효과

HasNativeBreak="Module.Class.Function"

이 구조체에는 커스텀 Break Struct 노드가 있음을 나타냅니다. 모듈, 클래스, 함수 이름을 제공해야 합니다.

HasNativeMake="Module.Class.Function"

이 구조체에는 커스텀 Make Struct 노드가 있음을 나타냅니다. 모듈, 클래스, 함수 이름을 제공해야 합니다.

HiddenByDefault

Make Struct 및 Break Struct 노드의 핀을 기본으로 숨깁니다.

ShortToolTip="Short tooltip"

부모 클래스 선택기 대화창처럼 전체 툴팁 표시가 버거운 상황에서 사용할 짧은 툴팁입니다.

ToolTip="Hand-written tooltip

코드 코멘트에서 자동 생성되는 툴팁을 덮어씁니다.

함수 메타데이터 지정자

함수 메타 태그

효과

AdvancedDisplay="Parameter1, Parameter2, .."

쉼표로 구분된 파라미터 목록이 (UI 확장이 필요한) 고급 핀으로 표시됩니다.

AdvancedDisplay=N

N 번째 이후 모든 파라미터는 (UI 확장이 필요한) 고급 핀으로 표시됩니다. 예로 'AdvancedDisplay=2' 는 첫째 둘째를 제외한 전부가 고급 파라미터가 됩니다.

ArrayParm="Parameter1, Parameter2, .."

BlueprintCallable 함수는 Call Array Function 노드를 사용하고, 나열된 파라미터는 와일드카드 배열 프로퍼티로 취급해야함을 나타냅니다.

ArrayTypeDependentParams="Parameter"

ArrayParm 사용 시, ArrayParm 목록 내 모든 파라미터 유형을 결정하는 파라미터를 지정합니다.

AutoCreateRefTerm="Parameter1, Parameter2, .."

나열된 파라미터는 참조 전달이라 할지라도, 핀을 연결하지 않고 놔둬도 자동 생성 기본값을 갖습니다. 블루프린트 편의 기능입니다.

BlueprintAutocast

블루프린트 함수 라이브러리의 스태틱 BlueprintPure 함수에서만 사용됩니다. 반환형과 함수 첫 파라미터 유형에 대한 형변환 노드가 자동 추가됩니다.

BlueprintInternalUseOnly

이 함수는 내부 구현 디테일로, 다른 함수 또는 노드 구현에 사용됩니다. 블루프린트 그래프에 바로 노출되지는 않습니다.

BlueprintProtected

이 함수는 블루프린트의 소유 오브젝트에서만 호출 가능합니다. 다른 인스턴스에서는 호출할 수 없습니다.

CallableWithoutWorldContext

WorldContext 핀이 있는 BlueprintCallable 함수에서, 클래스가 GetWorld 함수를 구현하지 않더라도 함수 호출이 가능함을 나타내는 데 사용됩니다.

CommutativeAssociativeBinaryOperator

BlueprintCallable 함수가 Commutative Associative Binary (이항 가환 결합) 노드를 사용해야 함을 나타냅니다. 이 노드는 핀 이름이 없지만, "Add Pin" (핀 추가) 버튼이 있어 입력 핀을 추가할 수 있습니다.

CompactNodeTitle="Name"

BlueprintCallable 함수가 간략 표시 모드로 표시해야 함을 나타내며, 그 모드에서 표시할 이름을 제공합니다.

CustomStructureParam="Parameter1, Parameter2, .."

나열된 파라미터는 모두 와일드카드로 취급됩니다. 이 지정자는 UFUNCTION 레벨 지정자 CustomThunk 가 필요한데, 이는 사용자가 커스텀 exec 함수를 제공해야 합니다. 이 함수에서, 파라미터 유형을 체크하여 그 파라미터 유형에 따라 적합한 함수 호출이 가능합니다. 베이스 UFUNCTION 은 절대 호출해서는 안되며, 호출한 경우 어서트 또는 오류가 발생합니다.

커스텀 exec 함수를 선언하는 문법은 DECLARE_FUNCTION(execMyFunctionName) 이며, MyFunctionName 는 원래 함수 이름입니다.

DefaultToSelf

BlueprintCallable 함수에 대해, 오브젝트 프로퍼티의 기본 값은 노드의 셀프 컨텍스트가 되어야 함을 나타냅니다.

DeprecatedFunction

이 함수를 참조하는 블루프린트는 컴파일 경고를 통해 사용자에게 함수가 폐기되었음을 알립니다. DeprecationMessage 메타데이터 지정자를 사용하면 (폐기된 함수 대체 안내문 제공과 같은) 폐기 경고 메시지를 추가할 수 있습니다.

DeprecationMessage ="Message Text"

함수가 폐기되면, 그것을 사용하는 블루프린트를 컴파일하려 할 때 표준 폐기 경고에 이 메시지가 추가됩니다.

DevelopmentOnly

이 함수는 개발 모드에서만 실행됩니다. 출시 제품에 포함시키지 않을 것으로 기대되는 디버그 출력같은 기능에 좋습니다.

DisplayName="Blueprint Node Name"

블루프린트의 이 노드 이름은 코드 생성 이름이 아닌 여기 제공된 값으로 대체됩니다.

ExpandEnumAsExecs="Parameter"

BlueprintCallable 함수에 대해, 파라미터에 사용되는 enum 각 항목에 대해 하나의 입력 실행 핀을 생성해야 함을 나타냅니다. 네임드 파라미터는 반드시 엔진에서 UENUM 태그로 인식되는 열거형이어야 합니다.

HidePin="Parameter"

BlueprintCallable 함수에 대해, 파라미터 핀을 사용자 뷰에서 숨겨야 함을 나타냅니다. 참고로 함수 당 단 하나의 파라미터만 이런 식으로 숨길 수 있습니다.

HideSelfPin

함수 호출 대상 오브젝트를 나타내는 데 사용되는 "self"(셀프) 핀을 숨깁니다. 셀프 핀은 호출하는 블루프린트 클래스와 호환되는 BlueprintPure 함수에서는 자동으로 숨겨집니다. 보통 DefaultToSelf 지정자와 함께 사용합니다.

InternalUseParam="Parameter"

HidePin 과 비슷하게, 사용자 관점에서 해당 이름의 파라미터 핀을 숨깁니다. 함수 당 하나의 파라미터에만 사용할 수 있습니다.

KeyWords="Set Of Keywords"

블루프린트 그래프에서 함수 호출을 위한 노드를 배치할 때처럼, 이 함수 검색 시 사용할 수 있는 키워드 세트를 지정합니다.

Latent

잠복성 동작을 나타냅니다. 잠복성 동작은 FLatentActionInfo 유형 파라미터가 하나 있으며, 이 파라미터 이름은 LatentInfo 지정자로 지정합니다.

LatentInfo="Parameter"

잠복성 BlueprintCallable 함수에 대해 어느 파라미터가 LatentInfo 파라미터인지 나타냅니다.

MaterialParameterCollectionFunction

BlueprintCallable 함수에 대해, 머티리얼 오버라이드 노드를 사용해야 함을 나타냅니다.

NativeBreakFunc

BlueprintCallable 함수에 대해, 표준 Break Struct 노드와 같은 식으로 함수를 표시해야 함을 나타냅니다.

NotBlueprintThreadSafe

블루프린트 함수 라이브러리에서만 유효합니다. 이 함수는 소유 클래스의 일반 BlueprintThreadSafe 메타데이터에 예외로 취급됩니다.

ShortToolTip="Short tooltip"

부모 클래스 선택기 대화창처럼 전체 툴팁 표시가 버거운 상황에서 사용할 짧은 툴팁입니다.

ToolTip="Hand-written tooltip

코드 코멘트에서 자동 생성되는 툴팁을 덮어씁니다.

UnsafeDuringActorConstruction

이 함수는 액터 생성 도중 호출하는 것이 안전하지 않습니다.

WorldContext="Parameter"

BlueprintCallable 함수에서 어느 파라미터가 연산이 일어나는 월드를 정하는지 나타냅니다.

프로퍼티 메타데이터 지정자

프로퍼티 메타 태그

효과

AllowAbstract="true/false"

Subclass SoftClass 프로퍼티에 사용됩니다. 클래스 선택기에 추상 클래스 유형 표시 여부를 나타냅니다.

AllowedClasses="Class1, Class2, .."

FSoftObjectPath 프로퍼티에 사용됩니다. 이 쉼표 구분 목록은 애셋 선택기에 표시할 애셋의 클래스 유형을 나타냅니다.

AllowPreserveRatio

FVector 프로퍼티에 사용됩니다. 디테일 패널에서 이 프로퍼티를 표시할 때 비율 고정이 추가되도록 합니다.

ArrayClamp="ArrayProperty"

인티저 프로퍼티에 사용됩니다. 0 에서 배열 프로퍼티 길이까지 UI 에 입력할 수 있는 유효 값을 범위제한시킵니다.

AssetBundles

SoftObjectPtr 또는 SoftObjectPath 프로퍼티에 사용됩니다. 프라이머리 데이터 애셋 안에서 번들 이름 목록을 사용하여 Primary Data Assets 안에서 번들 이름 목록을 사용하여 이 레퍼런스가 어느 번들의 일부인지를 지정합니다.

BlueprintBaseOnly

Subclass SoftClass 프로퍼티에 사용됩니다. 클래스 선택기에 블루프린트 클래스만 표시할지를 나타냅니다.

BlueprintCompilerGeneratedDefaults

프로퍼티 디폴트는 블루프린트 컴파일러에 의해 생성되며, 컴파일 이후 CopyPropertiesForUnrelatedObjects 함수가 호출될 때 복사하지 않습니다.

ClampMin="N"

플로트 및 인티저 프로퍼티에 사용됩니다. 프로퍼티에 입력할 수 있는 최소값 N 을 지정합니다.

ClampMax="N"

플로트 및 인티저 프로퍼티에 사용됩니다. 프로퍼티에 입력할 수 있는 최대값 N 을 지정합니다.

ConfigHierarchyEditable

이 프로퍼티는 환경설정 ( .ini ) 파일에 시리얼라이즈되며, 환경설정 계층구조 내 어디든 설정할 수 있습니다.

ContentDir

FDirectoryPath 프로퍼티에 사용됩니다. Content 폴더 내 슬레이트 스타일 디렉터리 선택기를 사용하여 경로를 선택할 것임을 나타냅니다.

DisplayAfter="PropertyName"

이 프로퍼티는 같은 카테고리에 있으면 소스 코드에서의 순서와 무관하게 PropertyName 프로퍼티 바로 다음 나타납니다. 다수의 프로퍼티에 DisplayAfter DisplayPriority 값이 같으면, 헤더 파일에 선언된 순서대로 네임드 프로퍼티 다음에 나타납니다.

DisplayName="Property Name"

코드 생성 이름 대신 이 프로퍼티에 표시할 이름입니다.

DisplayPriority="N"

두 프로퍼티에 DisplayAfter 값이 같거나, 같은 카테고리에 있고 DisplayAfter 메타 태그가 없으면, 이 프로퍼티가 스 정렬 순서를 결정합니다. 가장 높은 우선순위는 1 이며, DisplayPriority 값이 1 인 프로퍼티는 DisplayProirity 값이 2 인 프로퍼티 위에 나타난다는 뜻입니다. 여러 프로퍼티에 DisplayAfter 값이 같으면, 헤더 파일에 선언된 순서대로 나타납니다.

DisplayThumbnail="true"

프로퍼티가 애셋 유형이며 선택된 애셋의 썸네일을 표시해야함을 나타냅니다.

EditCondition="BooleanPropertyName"

이 프로퍼티 편집 비활성화 여부를 나타내는 데 사용되는 부울 프로퍼티 이름입니다. 프로퍼티 이름 앞에 "!" 를 붙이면 테스트가 반대로 됩니다.

EditFixedOrder

배열 요소의 순서를 끌어 바꿀 수 없도록 합니다.

ExactClass="true"

FSoftObjectPath 프로퍼티에 AllowedClasses 와 함께 사용됩니다. AllowedClasses 에 지정된 딱 그 클래스만 사용할지, 아니면 서브클래스도 포함시킬지를 나타냅니다.

ExposeFunctionCategories="Category1, Category2, .."

블루프린트 에디터에서 함수 목록을 만들 때 들어있는 함수를 노출시킬 카테고리 목록을 지정합니다.

ExposeOnSpawn="true"

프로퍼티를 이 클래스 유형에 대한 Spawn Actor 노드에 노출시킬지 지정합니다.

FilePathFilter="FileType"

FFilePath 프로퍼티에 사용됩니다. 파일 선택기에 표시할 경로 필터를 나타냅니다. 흔히 "uasset" 이나 "umap" 이 포함되지만, 다른 것도 가능합니다.

HideAlphaChannel

FColor FLinearColor 프로퍼티에 사용됩니다. 디테일에서 프로퍼티 위젯을 표시할 때 Alpha 프로퍼티를 숨길지를 나타냅니다.

HideViewOptions

Subclass SoftClass 프로퍼티에 사용됩니다. 클래스 선택기의 뷰 옵션을 바꾸는 기능을 숨깁니다.

InlineEditConditionToggle

이 부울 프로퍼티는 다른 프로퍼티의 편집 조건 토글로써 인라인으로만 표시되며, 자체 행에는 표시되지 않음을 나타냅니다.

LongPackageName

FDirectoryPath 프로퍼티에 사용됩니다. 경로를 긴 패키지 이름으로 변환합니다.

MakeEditWidget

트랜스폼 또는 로테이터, 아니면 그 배열에 사용됩니다. 프로퍼티를 뷰포트에 이동가능 위젯으로 노출시켜야 함을 나타냅니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기