データ レジストリの使用を開始するには、データ レジストリ プラグインを有効にする必要があります。有効にすると、最初のデータ レジストリを作成、設定して、データを取り込むことができます。
[編集] > [プラグイン] を選択して、データ レジストリ プラグインを有効にします。 [プラグイン] ウィンドウが表示されたら、検索または参照して、ゲームプレイ カテゴリにある データ レジストリ プラグインを見つけます。 プラグインを見つけたら、[有効] チェックボックスがオンになっていることを確認してください。
プラグインを有効にするためにエディタの再起動が必要であるというメッセージが、[プラグイン] ウィンドウに表示されたら、再起動して、続行します。
[プロジェクト設定] ウィンドウに移動し、[編集] > [プロジェクト設定] を選択します。
左パネルの [ゲーム] セクションの下に、「データ レジストリ」 というラベルのカテゴリが表示されます。
このカテゴリが表示されない場合は、データ レジストリ プラグインが有効になっていることを確認し、有効にしてから少なくとも 1 回はエディタを再起動してください。
右パネルで、少なくとも 1 つのエントリを [スキャンするディレクトリ] 配列に追加します。 これにより、データ レジストリ アセットを見つけるために検索する場所をシステムに指示します。 よく使用するエントリは
/Game/DataRegistriesですが、プロジェクトに合った組織スキームに従って、必要な数のディレクトリを追加できます。 このタイミングで、指定したすべてのディレクトリが存在することを確認し、作成したデータ レジストリ アセットが適切な場所にあることを確認します。コンテンツ ブラウザの [スキャンするディレクトリ] で指定したディレクトリの 1 つに移動して、新規データ レジストリ アセットを追加します。 これを実行するには、右パネルの空いているスペースを右クリックし、コンテキスト メニューの [その他] を展開します。 展開されたコンテキスト メニューで、DataRegistry を選択し、表示されたリストから適切なサブクラスを選択します。
新規データ レジストリ アセットに名前を付けてから開きます。
[レジストリ型] フィールドに、グローバルに一意の名前を入力します。 このデータ レジストリの一部であるアセットを識別するために、ゲームプレイ タグ を使用する場合は、必ず、[ID フォーマット] カテゴリの [ベース ゲームプレイ タグ] フィールドに設定してください。
[アイテム構造体] フィールドに、このデータ レジストリに入る構造体の型を設定します。 通常は、DataTableRowHandle または SimpleCurve ですが、多様なデータ型を利用できます。
1 つまたは複数のデータ ソースを、データ ソース配列に追加します。 各エントリに対して、追加するデータのタイプを選択し、データの供給元を指定する必要があります。 ビルトイン データ タイプを使用することも、プロジェクトや有効なプラグインで定義されているタイプを追加することもできます。 この時点で、データ レジストリで管理する何らかのデータを用意する必要があります。
既知の既存のアセットから行データを収集する DataTable Source や CurveTable Source などのシンプルなソース タイプでは、読み取るソース アセットを選択します。 [テーブル ルール] セクションでは、指定したアセットからのデータ行に対するキャッシュ動作が記述されているので、ユース ケースに適しているのかを確認してください。
ランタイム時に新しいデータ ソースを生成する、DataTable Meta Source や CurveTable Meta Source などのメタ ソース型では、処理する設定がさらにいくつかあります。 生成するソース タイプ、生成されたソースのアクセスや参照ルール、およびシステムがアセットを見つける方法を決定するスキャンや使用ルールを選択します。 メタ ソースは、アセットに対してスキャンする、登録アセットを (C++ コードから) 受け入れる、あるいは両方を実行できます。
たとえば、検索パスに
/Game/SearchableDataTablesを指定し、*PrivateData*を除外できます。この除外により、文字列「PrivateData」を含むパスが削除されるため、/Game/SearchableDataTables/PrivateData/や/Game/SearchableDataTables/SubPath/SomePrivateDataHere/のようなパスはスキャンされません。
データ ソースを設定したら、キャッシュ ルール をプロジェクトの特定ニーズを満たすように設定します。 設定可能な項目を見つけるには、データ レジストリ エディタの [キャッシュ] セクションを展開します。
データ レジストリ機能はまだ開発中であるため、設定の一部は想定どおり動作しないことがあります。
このタイミングで、データ レジストリに期待する項目を入れられることを確認します。 ツールバーの [更新] ボタンをクリックして、[レジストリ プレビュー] タブの内容を確認します。これには現時点でデータ レジストリに認識されているすべての項目のプレビューが表示されます。 結果が期待どおりではない場合、データ ソース ルールを変更して、再び [更新] ボタンをクリックします。
複数のソースから取り込む場合、行がリストに複数回、現れることがあります。これはエラーではありません。一般にこの状況は、メタ ソースで、シンプルなソースとして同じデータ、または別のメタ ソースが見つかったということです。 複数のソースで表示されるデータ項目を取得しようとする場合、順序が重要になります。 データ レジストリが検出された最初のインスタンスのみに、アクセス可能です。
左パネルの [データソース] の下にある [ランタイムソース] カテゴリを参照して、データレジストリ内の各項目の各インスタンスのソースを、ロード順に確認できます。
すべての内容が正しく表示されたら、データ レジストリを保存します。 この後のセッションでは、スタートアップ中に、自動的にロードされ、内容が入ります。 データ レジストリを変更する場合は、[Refresh (更新)] ボタンをクリックして、データ項目を更新します。
データ レジストリを C++ コードから使用する場合は、プロジェクトの
「Build.cs」ファイルを開きます。 実際のファイル名には、プロジェクト名が含まれます。たとえば、プロジェクト名が「MyProject」である場合、ファイル名は「MyProject.Build.cs」になります。PublicDependencyModuleNames変数を設定する行を見つけ、「DataRegistry」を配列に追加します。 最終的に行は次のようになります。C++PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "DataRegistry" });
これらの手順を完了すると、データ レジストリを使用するためにプロジェクトがセットアップされます。 データ レジストリの仕組みやメリットについては、メインのデータ レジストリページを参照してください。