언리얼 엔진(UE) 에디터 에서 개발자는 에디터의 Data Validation 플러그인으로 커스텀 스크립트 룰세트를 통해 에셋의 유효성을 검사할 수 있습니다. 다음은 유효성 검사의 흔한 사용 사례입니다.
- 에셋이 명명 규칙을 충족하는지 확인
- 공간 및 퍼포먼스 예산 집행
- 비순환 종속성 발견
플러그인 유효성 검사
내장된 Data Validation 플러그인이 디폴트로 활성화되었는지 확인하려면 메인 메뉴에서 편집(Edit) > 플러그인(Plugins) 을 선택하고 플러그인 메뉴에서 Data Validation 을 검색합니다.

에디터 사용
개발자는 단일 에셋의 테스트부터 프로젝트 전체 에셋의 검증까지 다양한 방법으로 데이터 유효성 검사를 활용할 수 있습니다.
유효성 검사 사용 사례 | 용도 | 비고 |
---|---|---|
에셋 | 콘텐츠 브라우저 에서 에셋을 우클릭한 뒤, 에셋 액션(Asset Actions) > 에셋 유효성 검사(Validate Assets) 선택 | 지정한 에셋의 유효성을 검사합니다. 여러 에셋을 선택할 수도 있습니다. |
에셋 및 종속성 | 콘텐츠 브라우저 에서 에셋을 우클릭한 뒤, 에셋 액션(Asset Actions) > 에셋 및 종속성 유효성 검사(Validate Assets and Dependencies) 선택 | 지정한 에셋 및 종속성의 유효성을 검사합니다. 여러 에셋을 동시에 선택할 수도 있습니다. |
폴더 내 에셋 | 콘텐츠 브라우저 에서 폴더를 우클릭한 뒤, 폴더 내 에셋 유효성 검사(Validate Assets in Folder) 선택 | 지정한 폴더의 유효성을 검사합니다. 검사할 때 여러 폴더를 동시에 선택할 수도 있습니다. |
프로젝트의 에셋 | 메인 메뉴에서 파일(File) > 데이터 유효성 검사...(Validate Data...) 선택 | 프로젝트의 콘텐츠 디렉터리에 속한 모든 에셋의 유효성을 검사합니다. |
명령줄 사용
지속적 통합 시스템(Continuous Integration System, CIS) 에서 에셋의 유효성을 검사하고자 하는 개발자는 플러그인을 명령줄에서 실행하는 편이 유용할 수 있습니다. 명령줄 유효성 검사는 다음 명령줄로 수행합니다.
UnrealEditor-Cmd.exe <PROJECT_NAME>.uproject -run=DataValidation
- 데이터 유효성 검사 시스템은 디폴트로 C++ 검사 규칙만 실행합니다.
- 개발자는 데이터 유효성 검사 시스템을 확장하여 블루프린트 및 Python 유효성 검사 규칙을 지원할 수 있습니다.
유효성 검사 규칙
현재 유효성 검사 규칙을 만드는 방법은 두 가지입니다.
IsDataValid
를 오버라이드하는 커스텀 UObject 파생 클래스를 만듭니다. 프로젝트의 커스텀 클래스를 대상으로는 가장 좋은 방법입니다.- 이 메서드를 사용하면
UEditorValidatorBase
메서드에서 액세스할 수 없는 프라이빗(Private)/프로텍티드(Protected) 클래스 데이터 및 함수에 액세스할 수 있습니다. - 이때 개발자는 독자적인 클래스를 구현하고 있으므로,
BlueprintImplementableEvent
가IsDataValid
에 의해 호출되도록 설정할 수도 있습니다. 따라서 일부 C++ 유효성 검사 로직뿐만 아니라 블루프린트 혹은 Python에서도 추가 유효성 검사 로직을 사용할 수 있습니다.
- 이 메서드를 사용하면
- C++, 블루프린트, 혹은 Python를 사용한
UEditorValidatorBase
파생 클래스를 사용합니다. 여기서 중요한 두 개의 함수는CanValidateAsset
와ValidateLoadedAsset
으로, 둘 다UObject
포인터를 유효성 검사에 필요한 실행인자로 가집니다. 이 시스템을 사용하면 기본 엔진 클래스인지, 커스텀 클래스인지에 따라 에셋의 유효성을 검사할 수 있습니다.ValidateLoadedAsset
은 실행 패스별로AssetPasses
또는AssetFails
를 반드시 호출합니다.- Validators는
IsEnabled
를 오버라이드하여 활성화할 수 있습니다. Validators는 기본적으로 프로텍티드 변수bIsEnabled
를 반환하고 디테일 패널에도 노출합니다. - C++ 및 블루프린트 validators는 에디터를 시작할 때 자동으로 검출되지만, Python validators는
AddValidator
를 사용해UEditorValidatorSubsystem
에 등록해야 합니다.- 포트나이트 에서는 퍼포먼스 상의 이유로 블루프린트 validator의 자동 등록 기능을 비활성화한 상태입니다.
두 유형의 유효성 검사 모두 에셋 저장 시 CIS에서 실행하거나(디폴트로 활성화), 에디터 및 콘텐츠 브라우저의 메뉴 옵션을 통해 실행할 수 있습니다. 유효성 검사에 실패하면 에디터의 메시지 로그 및 CIS의 콘솔에 메시지가 표시됩니다.
UEditorValidatorSubsystem
에 대한 호출을 구현하는 경우, ValidationErrors
FText
배열의 표시를 직접 처리해야 합니다. FAssetData
혹은 로드된 UObject
의 에셋의 유효성을 검사할 때 필요한 함수는 스크립트에도 사용할 수 있습니다.
이 섹션에서는 해당 API를 참조하고 있습니다. 자세한 정보는 다음 페이지를 참조하세요.