Data Validation

Developers can extend this system to validate assets with custom scripted rulesets.

Windows
MacOS
Linux

The editor features a Data Validation plugin for developers to validate assets with custom scripted rulesets. Common validation use cases include:

  • Checking to make sure that assets meet name conventions

  • Enforcing space and performance budgets

  • Catching non-cyclic dependencies, and more

Plugin Verification

To verify that the built-in Data Validation plugin is enabled by default, from the main menu, select Edit > Plugins, and from the Plugins menu, search for "Data Validation".

DataValidationRef_1.png

Editor Usage

Developers can use the Data Validation system in many ways, ranging from testing a single asset to validating all of a project's assets.

Validation Use Case

Usage

Notes

Asset

In the Content Browser, right-click an asset and select Asset Actions > Validate Assets

This validates a specific asset, however, it is possible to select multiple assets for validation.

Asset and dependencies

In the Content Browser, right-click an asset and select Asset Actions > Validate Assets and Dependencies

This validates a specific asset and its dependencies, however, it is possible to validate multiple assets at once.

Folder's assets

In the Content Browser, right-click a folder and select Validate Assets in Folder

This validates a specific folder, however, it is possible to validate multiple folders at once.

Project's assets

From the main menu, select File > Validate Data...

This validates all of the assets in a project's content directory.

Command Line Usage

Running the plugin from the command line is useful to developers who want to validate assets as part of a Continuous Integration System (CIS). Perform command line validation with the following commandlet:

UE4Editor-Cmd.exe <ProjectName>.uproject -run=DataValidation

  • The Data Validation system only runs C++ validation rules by default.

  • Developers can extend the Data Validation system to support Blueprint and Python validation rules.

Validation Rules

Currently, there are two ways to create validation rules:

  • Have a custom UObject-derived class that overrides IsDataValid. This works best for custom classes for your project.

    • This method allows you to access private/protected class data and functions that the UEditorValidatorBase method would not.

    • Because you're implementing your own class in this case, you can also set up a BlueprintImplementableEvent to be called by IsDataValid, so you can have some validation logic in C++ and further validation logic in Blueprints or Python.

  • Creating a UEditorValidatorBase derived class using C++, Blueprints, or Python. The two key functions here are CanValidateAsset and ValidateLoadedAsset, both of which take a UObject pointer as an argument to validate. This system lets you validate any asset, whether it's based on a default engine class or a custom class.

    • ValidateLoadedAsset must call AssetPasses or AssetFails for each of its execution paths.

    • Validators can be enabled by overriding IsEnabled. By default, this returns the protected variable bIsEnabled which is exposed to details panels as well.

    • C++ and Blueprint validators will be discovered automatically on editor startup, while Python validators will need to register themselves with the UEditorValidatorSubsystem using AddValidator.

      • By default, Blueprint validator auto-registration is disabled in Fortnite for performance reasons.

Both types of validation are run by CIS, on asset save (enabled by default), and through menu options in the editor and Content Browser. When validation fails, messages will be displayed in the Message Log in the editor, and in the console in CIS.

If you are implementing your own calls to UEditorValidatorSubsystem, you will need to handle the display of the ValidationErrors FText array yourself. The functions needed to validate an asset from its FAssetData or the loaded UObject are available to scripting as well.

This section references these APIs, read them to learn more:

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

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼