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