클래스, 인터페이스, 구조체, 열거형, 열거형 값, 함수 또는 프로퍼티를 선언할 때 메타데이터 지정자 를 추가하여 엔진 및 에디터의 다양한 측면과 상호작용하는 방식을 제어할 수 있습니다. 각 데이터 구조 또는 멤버 타입에는 자체적인 메타데이터 지정자 목록이 있습니다.
메타데이터는 에디터에만 존재합니다. 메타데이터에 액세스하는 게임 로직을 작성하지 마세요.
메타데이터 지정자를 추가하려면 meta
라는 단어를 사용하고 그 뒤에 지정자 목록과 적절한 경우 그 값을 UCLASS,
UENUM,
UINTERFACE,
USTRUCT,
UFUNCTION
또는 UPROPERTY
매크로에 다음과 같이 사용합니다.
{UCLASS/UENUM/UINTERFACE/USTRUCT/UFUNCTION/UPROPERTY}(SpecifierX, meta=(MetaTag1="Value1", MetaTag2, ..), SpecifierY)
열거형 타입 내의 특정 값에 메타데이터 지정자를 추가하려면 값 자체의 구분하는 쉼표(있는 경우) 앞에 UMETA
태그를 추가합니다. 예시는 다음과 같습니다.
UENUM()
enum class EMyEnum : uint8
{
// DefaultValue Tooltip
DefaultValue = 0 UMETA(MetaTag1="Value1", MetaTag2, ..),
// ValueWithoutMetaSpecifiers Tooltip
ValueWithoutMetaSpecifiers,
// ValueWithMetaSpecifiers Tooltip
ValueWithMetaSpecifiers UMETA((MetaTag1="Value1", MetaTag2, ..),
// FinalValue Tooltip
FinalValue (MetaTag1="Value1", MetaTag2, ..)
};
클래스 메타데이터 지정자
클래스는 다음과 같은 메타태그 지정자를 사용할 수 있습니다.
클래스 메타 태그 | 효과 |
---|---|
BlueprintSpawnableComponent |
존재하는 경우, 컴포넌트 클래스가 블루프린트에 의해 스폰될 수 있습니다. |
BlueprintThreadSafe |
블루프린트 함수 라이브러리에만 유효합니다. 이 지정자는 이 클래스의 함수를 애니메이션 블루프린트의 비게임 스레드에서 호출 가능으로 표시합니다. |
ChildCannotTick |
액터 및 컴포넌트 클래스에 사용됩니다. 네이티브 클래스를 틱할 수 없는 경우, 이 액터나 컴포넌트를 기반으로 하는 블루프린트 생성 클래스는 bCanBlueprintsTickByDefault 가 true인 경우에도 틱할 수 없습니다. |
ChildCanTick |
액터 및 컴포넌트 클래스에 사용됩니다. 네이티브 클래스를 틱할 수 없는 경우, 이 액터나 컴포넌트를 기반으로 하는 블루프린트 생성 클래스는 bCanBlueprintsTickByDefault 가 false인 경우에도 bCanEverTick 플래그를 오버라이드할 수 있습니다. |
DeprecatedNode |
비헤이비어 트리 노드의 경우 해당 클래스가 지원 중단되었음을 나타내며 컴파일 시 경고를 표시합니다. |
DeprecationMessage="Message Text" |
이 메타데이터가 있는 지원 중단된 클래스에는 블루프린트 스크립트가 컴파일 도중 생성하는 표준 지원 중단 경고와 함께 이 텍스트가 포함됩니다. |
DisplayName="Blueprint Node Name" |
블루프린트 스크립트에서 이 노드의 이름이 코드 생성 이름 대신 여기에 제공된 값으로 대체됩니다. |
DontUseGenericSpawnObject |
블루프린트 스크립트에서 일반 생성 오브젝트(Generic Create Object) 노드를 사용하여 클래스의 오브젝트를 스폰하지 않습니다. 이 지정자는 액터도 액터 컴포넌트도 아닌 블루프린트 타입 클래스에만 적용됩니다. |
ExposedAsyncProxy |
비동기 태스크 노드에서 이 클래스의 프록시 오브젝트를 노출합니다. |
IgnoreCategoryKeywordsInSubclasses |
클래스의 첫 번째 서브클래스가 상속된 모든 ShowCategories 및 HideCategories 지정자를 무시하도록 하는 데 사용됩니다. |
IsBlueprintBase="true/false" |
이 클래스가 Blueprintable 또는 NotBlueprintable 지정자와 유사한 블루프린트 생성에 허용되는 베이스 클래스인지 여부를 나타냅니다. |
KismetHideOverrides="Event1, Event2, .." |
오버라이드가 허용되지 않는 블루프린트 이벤트의 목록입니다. |
ProhibitedInterfaces="Interface1, Interface2, .." |
클래스와 호환되지 않는 인터페이스를 나열합니다. |
RestrictedToClasses="Class1, Class2, .." |
블루프린트 함수 라이브러리 클래스가 이 태그를 사용하여 목록에 이름이 지정된 클래스로 사용을 제한할 수 있습니다. |
ShortToolTip="Short tooltip" |
부모 클래스 선택 툴 대화 상자와 같이 전체 툴팁이 지나칠 수 있는 일부 상황에서 사용되는 짧은 툴팁입니다. |
ShowWorldContextPin |
이 클래스의 오브젝트는 월드 컨텍스트로 사용할 수 없기 때문에 이 클래스가 소유한 그래프에 배치된 블루프린트 노드는 일반적으로 숨겨져 있더라도 월드 컨텍스트 핀을 표시해야 함을 나타냅니다. |
UsesHierarchy |
클래스가 계층 데이터를 사용함을 나타냅니다. 디테일 패널에서 계층적 편집 기능을 인스턴스화하는 데 사용됩니다. |
ToolTip="Hand-written tooltip" |
코드 코멘트에서 자동으로 생성된 툴팁을 오버라이드합니다. |
ScriptName="DisplayName" |
이 클래스, 프로퍼티 또는 함수를 스크립팅 언어로 익스포트할 때 사용하는 이름입니다. 지원 중단된 이름을 세미콜론으로 구분된 추가 엔트리로 포함할 수 있습니다. |
열거형 메타데이터 지정자
열거형 타입은 다음과 같은 메타태그 지정자를 사용할 수 있습니다.
열거형 타입 메타 태그 | 효과 |
---|---|
Bitflags |
이 열거형 타입이 Bitmask 메타데이터 지정자로 설정된 인티저 UPROPERTY 변수에 의해 플래그로 사용될 수 있음을 나타냅니다. |
Experimental |
이 타입의 라벨을 실험단계 및 미지원으로 지정합니다. |
ToolTip="Hand-written tooltip" |
코드 코멘트에서 자동으로 생성된 툴팁을 오버라이드합니다. |
열거형 타입 내의 개별 값에는 자체 메타데이터 지정자가 있습니다. 이는 최상위 키워드 UMETA
를 사용하고 수정하는 값의 앞이 아닌 뒤에 지정된다는 점에서 다른 메타데이터 지정자와 약간 다릅니다.
열거형 값 UMeta 태그 | 효과 |
---|---|
DisplayName="Enumerated Value Name" |
코드 생성 이름이 아니라 여기에 제공된 텍스트가 이 값의 이름으로 사용됩니다. |
Hidden |
이 값은 에디터에 표시되지 않습니다. |
ToolTip="Hand-written tooltip." |
코드 코멘트에서 자동으로 생성된 툴팁을 오버라이드합니다. |
인터페이스 메타데이터 지정자
인터페이스는 다음과 같은 메타태그 지정자를 사용할 수 있습니다.
구현 가능한 인터페이스에서만 블루프린트 이벤트가 허용되도록 하세요. 내부 전용 함수 허용 이 인터페이스에 블루프린트가 정의되지 않은 블루프린트 호출 가능 함수가 포함되어 있는 경우, 네이티브로 구현되어야 하는지 확인하세요.
인터페이스 메타 태그 | 효과 |
---|---|
CannotImplementInterfaceInBlueprint |
이 인터페이스에는 내부 전용 함수 외에 BlueprintImplementableEvent 또는 BlueprintNativeEvent 함수가 포함될 수 없습니다. 블루프린트로 정의되지 않은 블루프린트 호출 가능 함수가 포함된 경우 해당 함수는 네이티브 코드로 구현되어야 합니다. |
구조체 메타데이터 지정자
구조체는 다음과 같은 메타태그 지정자를 사용할 수 있습니다.
구조체 메타 태그 | 효과 |
---|---|
HasNativeBreak="Module.Class.Function" |
이 구조체에 커스텀 구조체 브레이크(Break Struct) 노드가 있음을 나타냅니다. 모듈, 클래스, 함수 이름을 제공해야 합니다. |
HasNativeMake="Module.Class.Function" |
이 구조체에 커스텀 구조체 만들기(Make Struct) 노드가 있음을 나타냅니다. 모듈, 클래스, 함수 이름을 제공해야 합니다. |
HiddenByDefault |
구조체 만들기 및 구조체 브레이크 노드의 핀이 기본적으로 숨겨집니다. |
ShortToolTip="Short tooltip" |
부모 클래스 선택 툴 대화 상자와 같이 전체 툴팁이 지나칠 수 있는 일부 상황에서 사용되는 짧은 툴팁입니다. |
ToolTip="Hand-written tooltip |
코드 코멘트에서 자동으로 생성된 툴팁을 오버라이드합니다. |
함수 메타데이터 지정자
함수 메타 태그 | 효과 |
---|---|
AdvancedDisplay="Parameter1, Parameter2, .." |
쉼표로 구분된 파라미터 목록을 고급 핀으로 표시합니다(UI 확장 필요). |
AdvancedDisplay=N |
N 을 숫자로 대체하고 N번째 이후의 모든 파라미터를 고급 핀으로 표시합니다(UI 확장 필요). 예를 들어 'AdvancedDisplay=2'는 처음 두 파라미터를 제외한 모든 파라미터를 고급으로 표시합니다. |
ArrayParm="Parameter1, Parameter2, .." |
BlueprintCallable 함수가 배열 함수 호출(Call Array Function) 노드를 사용해야 하고 나열된 파라미터가 와일드카드 배열 프로퍼티로 처리되어야 함을 나타냅니다. |
ArrayTypeDependentParams="Parameter" |
ArrayParm 을 사용하는 경우 이 지정자는 ArrayParm 목록에 있는 모든 파라미터의 타입을 결정하는 하나의 파라미터를 나타냅니다. |
AutoCreateRefTerm="Parameter1, Parameter2, .." |
나열된 파라미터는 레퍼런스로 전달되기는 하지만 핀이 연결 해제된 상태로 남아 있으면 자동으로 생성된 디폴트를 갖게 됩니다. 배열 핀에 자주 사용되는 블루프린트를 위한 편의 기능입니다. |
BlueprintAutocast |
블루프린트 함수 라이브러리의 스태틱 BlueprintPure 함수에서만 사용됩니다. 반환 타입과 함수의 첫 번째 파라미터 타입에 대해 형변환 노드가 자동으로 추가됩니다. |
BlueprintInternalUseOnly |
이 함수는 다른 함수나 노드를 구현하는 데 사용되는 내부 구현 디테일입니다. 블루프린트 그래프에 직접 노출되지 않습니다. |
BlueprintProtected |
이 함수는 블루프린트의 소유 오브젝트에서만 호출할 수 있습니다. 다른 인스턴스에서는 호출할 수 없습니다. |
CallableWithoutWorldContext |
클래스가 GetWorld 함수를 구현하지 않더라도 함수가 호출될 수 있음을 나타내기 위해 WorldContext 핀이 있는 BlueprintCallable 함수에 사용됩니다. |
CommutativeAssociativeBinaryOperator |
BlueprintCallable 함수가 가환 결합 이항(Commutative Associative Binary) 노드를 사용해야 함을 나타냅니다. 이 노드에는 핀 이름이 없지만 추가 입력 핀을 생성하는 핀 추가(Add Pin) 버튼이 있습니다. |
CompactNodeTitle="Name" |
BlueprintCallable 함수가 컴팩트 디스플레이 모드로 표시되어야 함을 나타내고, 해당 모드에서 표시할 이름을 제공합니다. |
CustomStructureParam="Parameter1, Parameter2, .." |
나열된 파라미터는 모두 와일드카드로 처리됩니다. 이 지정자는 사용자가 커스텀 커스텀 |
DefaultToSelf |
BlueprintCallable 함수의 경우 오브젝트 프로퍼티의 명명된 기본값이 노드의 자체 컨텍스트여야 함을 나타냅니다. |
DeprecatedFunction |
이 함수에 대한 블루프린트 레퍼런스는 해당 함수가 지원 중단되었다는 컴파일 경고를 발생시킵니다. DeprecationMessage 메타데이터 지정자를 사용하여 지원 중단 경고 메시지에 추가할 수 있습니다(예: 지원 중단된 함수 교체에 대한 지침 제공). |
DeprecationMessage ="Message Text" |
함수가 지원 중단된 경우 해당 함수를 사용하는 블루프린트를 컴파일하려고 할 때 표준 지원 중단 경고에 이 메시지가 추가됩니다. |
DeterminesOutputType="Parameter" |
함수의 반환 타입이 명명된 파라미터 핀에 연결된 입력과 일치하도록 동적으로 변경됩니다. 파라미터는 TSubClassOf<X> 또는 TSoftObjectPtr<X> 등의 템플릿 타입이어야 합니다. 여기서 함수의 원래 반환 유형은 X* 또는 TArray<X*> 와 같이 값 유형으로 X* 가 있는 컨테이너입니다. |
DevelopmentOnly |
DevelopmentOnly 로 표시된 함수가 개발(Development) 모드에서만 실행됩니다. 배포된 제품에는 없을 것으로 예상되는 디버그 출력과 같은 함수 기능에 유용합니다. |
DisplayName="Blueprint Node Name" |
블루프린트에서 이 노드의 이름이 코드 생성 이름 대신 여기에 제공된 값으로 대체됩니다. |
ExpandEnumAsExecs="Parameter" |
BlueprintCallable 함수의 경우 파라미터에서 사용하는 enum 의 각 항목에 대해 하나의 입력 실행 핀을 생성해야 함을 나타냅니다. 파라미터는 UENUM 태그가 있는 열거형 타입이어야 합니다. |
ForceAsFunction |
반환값이 없는 BlueprintImplementableEvent 를 이벤트에서 함수로 변경합니다. |
HidePin="Parameter" |
BlueprintCallable 함수의 경우 파라미터 핀이 사용자의 뷰에서 숨겨져야 함을 나타냅니다. 이 방식으로 함수당 하나의 핀만 숨길 수 있습니다. |
HideSelfPin |
함수가 호출되는 오브젝트를 나타내는 ‘self’ 핀을 숨깁니다. ‘self’ 핀은 호출하는 블루프린트 클래스와 호환되는 BlueprintPure 함수에서 자동으로 숨겨집니다. HideSelfPin 메타 태그를 사용하는 함수는 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 함수에서 연산이 발생하는 월드를 결정하는 파라미터를 나타내는 데 사용됩니다. |
ScriptName="DisplayName" |
이 클래스, 프로퍼티 또는 함수를 스크립팅 언어로 익스포트할 때 사용하는 이름입니다. 지원 중단된 이름을 세미콜론으로 구분된 추가 엔트리로 포함할 수 있습니다. |
프로퍼티 메타데이터 지정자
프로퍼티 메타 태그 | 효과 |
---|---|
AllowAbstract="true/false" |
Subclass 및 SoftClass 프로퍼티에 사용합니다. 클래스 선택 툴에 추상 클래스 타입을 표시해야 하는지 여부를 나타냅니다. |
AllowedClasses="Class1, Class2, .." |
FSoftObjectPath 프로퍼티에 사용합니다. 에셋 선택 툴에 표시할 에셋의 클래스 타입을 나타내는 쉼표로 구분된 목록입니다. |
AllowPreserveRatio |
FVector 프로퍼티에 사용합니다. 디테일 패널에 이 프로퍼티를 표시할 때 비율 잠금이 추가됩니다. |
ArrayClamp="ArrayProperty" |
인티저 프로퍼티에 사용합니다. UI에 입력할 수 있는 유효한 값을 0과 명명된 배열 프로퍼티의 길이 사이로 범위를 제한합니다. |
AssetBundles |
SoftObjectPtr 또는 SoftObjectPath 프로퍼티에 사용합니다. 이 레퍼런스가 속한 번들을 지정하기 위해 프라이머리 데이터 에셋 내에서 사용되는 번들 이름의 목록입니다. |
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인 프로퍼티는 DisplayPriority 값이 2인 프로퍼티 위에 표시됩니다. 여러 프로퍼티가 동일한 DisplayAfter 값을 갖는 경우 헤더 파일에 선언된 순서대로 표시됩니다. |
DisplayThumbnail="true" |
프로퍼티가 에셋 타입이며 선택한 에셋의 썸네일을 표시해야 함을 나타냅니다. |
EditCondition="BooleanPropertyName" |
이 프로퍼티의 편집이 비활성화되었는지 여부를 나타내는 데 사용되는 부울 프로퍼티의 이름을 지정합니다. 프로퍼티 이름 앞에 ‘!’를 추가하면 테스트가 반전됩니다. |
EditFixedOrder |
드래그로 인해 배열 엘리먼트가 재정렬되는 것을 방지합니다. |
ExactClass="true" |
AllowedClasses 와 함께 FSoftObjectPath 프로퍼티에 사용합니다. AllowedClasses 에 지정된 정확한 클래스만 사용할 수 있는지 또는 하위 클래스도 유효한지 여부를 나타냅니다. |
ExposeFunctionCategories="Category1, Category2, .." |
블루프린트 에디터에서 함수 목록을 만들 때 해당 함수가 노출되어야 하는 카테고리 목록을 지정합니다. |
ExposeOnSpawn="true" |
이 클래스 타입에 대한 액터 스폰(Spawn Actor) 노드에 프로퍼티를 노출해야 하는지 여부를 지정합니다. |
FilePathFilter="FileType" |
FFilePath 프로퍼티가 사용합니다. 파일 선택 툴에 표시할 경로 필터를 나타냅니다. 일반적인 값에는 ‘uasset’ 및 ‘umap’이 포함되지만 다른 값도 가능합니다. |
GetByRef |
이 프로퍼티에 대한 ‘Get’ 블루프린트 노드가 해당 값의 복사본 대신 프로퍼티에 대한 const 레퍼런스를 반환하도록 합니다. 희소 클래스 데이터에만 사용할 수 있으며 NoGetter 가 없는 경우에만 사용할 수 있습니다. |
HideAlphaChannel |
FColor 및 FLinearColor 프로퍼티에 사용합니다. 디테일에 프로퍼티 위젯을 표시할 때 Alpha 프로퍼티를 숨겨야 함을 나타냅니다. |
HideViewOptions |
Subclass 및 SoftClass 프로퍼티에 사용합니다. 클래스 선택 툴에서 뷰 옵션을 변경하는 기능을 숨깁니다. |
InlineEditConditionToggle |
부울 프로퍼티가 다른 프로퍼티의 편집 조건 토글로 인라인으로만 표시되고 자체 행에 표시되어서는 안 됨을 나타냅니다. |
LongPackageName |
FDirectoryPath 프로퍼티가 사용합니다. 경로를 긴 패키지 이름으로 변환합니다. |
MakeEditWidget |
변환(Transform) 또는 로테이터(Rotator) 프로퍼티나 변환 또는 로테이터의 배열에 사용합니다. 프로퍼티가 뷰포트에서 이동 가능한 위젯으로 노출되어야 함을 나타냅니다. |
NoGetter |
블루프린트 생성이 이 프로퍼티에 대한 ‘get’ 노드를 생성하지 않도록 합니다. 희소 클래스 데이터에만 사용할 수 있습니다. |
ScriptName="DisplayName" |
이 클래스, 프로퍼티 또는 함수를 스크립팅 언어로 익스포트할 때 사용하는 이름입니다. 지원 중단된 이름을 세미콜론으로 구분된 추가 엔트리로 포함할 수 있습니다. |