Unreal Engine (UE) Editor の Data Validation プラグインを利用すると、デベロッパーがカスタム スクリプト ルールセットでアセットを検証できます。検証の一般的な使用例を以下に示します。
- アセットが命名規則を満たしていることを確かめるチェック
- 許容するスペースとパフォーマンスの適用
- 非循環依存のキャッチなど
プラグインで検証する
デフォルトで有効化されているビルトイン Data Validation プラグインを確認するには、メインメニューから [Edit (編集)] > [Plugins (プラグイン)] を選択して [Plugins (プラグイン)] メニューで「Data Validation」を検索します。

エディタを使用する
単一のアセットのテストからプロジェクトが含む全アセットの検証まで、デベロッパーはデータ検証システムをさまざまな方法で使用できます。
検証の使用例 | 使用方法 | 備考 |
---|---|---|
Asset | コンテンツ ブラウザ でアセットを右クリックして [Asset Actions (アセットアクション)] > [Validate Assets] | 特定のアセットを検証します。これで複数のアセットを選択して検証することも可能です。 |
Asset and dependencies | コンテンツ ブラウザ でアセットを右クリックして [Asset Actions (アセットアクション)] > [Validate Assets and Dependencies] | 特定のアセットとその依存関係を検証します。複数のアセットを一度に検証することもできます。 |
Folder's assets | コンテンツ ブラウザ でフォルダを右クリックして [Validate Assets in Folder] | 特定のフォルダを検証します。複数のフォルダを一度に検証することもできです。 |
Project's assets | メインメニューで [File (ファイル)] > [Validate Data...] | プロジェクトの「コンテンツ」ディレクトリが含むアセットをすべて検証します。 |
コマンド ラインを使用する
デベロッパーがコマンド ラインでプラグインを実行すると、継続的インテグレーション システム (CIS) の一部としてアセットを検証できます。次のコマンドレットでコマンド ライン検証を実行します。
UnrealEditor-Cmd.exe <PROJECT_NAME>.uproject -run=DataValidation
- このデータ検証システムは、デフォルトでは C++ の検証ルールのみを実行します。
- デベロッパーはブループリントと Python の検証ルールをサポートするように、このデータ検証システムを拡張できます。
検証ルール
現在、検証ルールを作成する方法は 2 つあります。
IsDataValid
をオーバーライドする、カスタム UObject の派生クラスを用意します。これはプロジェクトのカスタム クラスに最適です。- このメソッドを使用すると、
UEditorValidatorBase
メソッドではアクセスできない Private/Protected のクラス データとクラス関数にアクセスできます。 - ここでは独自のクラスを実装しているので、
IsDataValid
が呼び出すようにBlueprintImplementableEvent
を設定することもできます。これにより C++ の検証ロジックに加えて、ブループリントや Python の検証ロジックを使用できます。
- このメソッドを使用すると、
- C++、ブループリント、Python を使用して
UEditorValidatorBase
派生クラスを作成します。ここで重要な 2 つの関数はCanValidateAsset
とValidateLoadedAsset
で、どちらも引数として検証対象のUObject
ポインタを取ります。このシステムは、デフォルトのエンジン クラスとカスタム クラスに基づくアセットを、両方とも検証できます。ValidateLoadedAsset
は実行パスごとにAssetPasses
やAssetFails
を呼び出す必要があります。- バリデータは
IsEnabled
をオーバーライドして有効化できます。これはデフォルトで Protected の変数bIsEnabled
を返し、詳細パネル にも公開します。 - C++ とブループリントのバリデータはエディタの起動時に自動で検出されますが、Python のバリデータは
AddValidator
を使用してUEditorValidatorSubsystem
に登録する必要があります。- デフォルトでは、ブループリント バリデータの自動登録はパフォーマンス上の理由により Fortnite では無効になっています。
どちらのタイプの検証も、CIS からアセットの保存時に (デフォルトで有効)、そしてエディタとコンテンツ ブラウザのメニュー オプションで実行されます。検証に失敗すると、エディタのメッセージ ログと CIS のコンソールにメッセージが表示されます。
UEditorValidatorSubsystem
の呼び出しを実装する場合は、ValidationErrors
FText
配列の表示を処理する必要があります。FAssetData
やロードした UObject
のアセット検証に必要な関数は、スクリプトでも使用できます。
詳細については、このセクションで示す API リファレンスを参照してください。