One File Per Actor

One File Per Actor システムの概要と、このシステムをプロジェクトで活用する方法について説明します

Windows
MacOS
Linux

Unreal Engine のこれまでのバージョンでは、レベル内の 1 つまたは複数のアクタに変更を加える必要がある場合、ソース コントロールからファイルをチェックアウトする必要がありました。このため、自分の作業が終わるまで、チームの他のメンバーはそのファイルにアクセスできず、一度に一人しか作業できなかったため、開発プロセスの進行を妨げる場合がありました。

One File Per Actor (OFPA) (1 アクタあたり 1 ファイル) では、アクタのインスタンスのデータを外部ファイルに保存することで、アクタに変更を加える際にメインのレベル ファイルを保存する必要がなくなり、ユーザー間の重複を減らすことができます。

One File Per Actor 機能は、エディタでのみ使用できます。すべてのアクタは、クック時にそれぞれのレベル ファイルに埋め込まれます。

One File Per Actor を有効にする

One File Per Actor 機能はきめ細かく設計されており、複数の方法で使用できます。

1 つ目の方法は、[Details (詳細)] パネルを使用して個々のアクタで手動で OFPA を有効にすることです。

Enable OFPA with the Details panel

一度に 1 つずつのアクタで OFPA を有効にしたいことがあります。このためには、[Actor (アクタ)] セクションにある [Packaging Mode (パッケージ化モード)] オプションを特定して、ドロップダウン メニューで設定を [External (外部)] に変更します。変更したら、アクタとレベル用に新しく作成した外部パッケージを保存する必要があります。その後、アクタを修正しても、レベルを再保存する必要はありません。

レベルを保存したら、Undo コマンドでこのアクションを元に戻すことはできません。

2 つ目の方法は、One File Per Actor を有効にしてレベル全体で使用する方法です。

Enable OFP using the World Settings panel

これは、次の手順で実行します。

  1. [Window (ウィンドウ)] メニューをクリックし、[World Settings (ワールド設定)] オプションを選択して、[World Settings] を開きます。

  2. パネルの [World (ワールド)] セクションに移動して、[Use External Actors (外部アクタを使用する)] の横のチェックボックスをクリックしてオンにします。

  3. オンにした後、レベルを保存する必要があります。

  4. すべてのアクタを外部パッケージに変換するかどうかを確認するプロンプトが表示されます。[Yes (はい)] を選択して、OFPA への変換を完了します。

Confirm dialog box

サブレベルを変換する

レベルで [Use External Actors] オプションをオンにすると、現在のレベルだけが OFPA に変換されるため注意が必要です。サブレベルを変換するには、そのサブレベルをロードして、それぞれの [World Settings][Use External Actors] をオンにする必要があります。レベルに複数のサブレベルが含まれている場合はこれが問題になる可能性があるため、レベルとそのサブレベルを自動的に変換するコマンドレットが提供されています。

次の手順でコマンドレットを使用します。

  1. Windows で、コマンド プロンプト ウィンドウを開きます。

    Command Prompt

  2. まず、プロンプトで、UE4Editor.exe ファイルが格納されているディレクトリに移動します。例:C:\Program Files\Epic Games\UE_4.26\Engine\Binaries\Win64

    Command prompt with location

  3. 次に、コマンドの先頭にコマンドレットを実行する .exe ファイルの名前 UE4Editor.exe を指定します。

  4. コマンドレットの名前と次の引数を追加します。-run="ConvertLevelsToExternalActorsCommandlet" -nosourcecontrol -convertsublevels

  5. コマンドの末尾にレベルの格納ディレクトリを指定します。"/Game/Maps/TestMaps/ExternalActors/MasterMap" この例では、Game はプロジェクトの名前で、MasterMap は変換するマップの名前です。

    Command prompt with complete commandlet

  6. Enter キーを押すと、コマンドレットがレベルとサブレベルを OFPA に変換します。

ソース コントロールによる OFPA

ソース コントロール アプリケーションで作業していると、外部アクタ ファイル名がエンコードされていることがわかります。この問題を解決するために、[View Changelist (変更リストの表示)] ウィンドウを使用して、送信前に変更リストの内容を表示して確認できるようになりました。

Using OFPA with in-engine source control

このウィンドウでは、既存の変更リストと変更リストに含まれているファイルが表示されます。外部アクタの場合は、エンコードされたファイル名ではなく、アクタ名、レベル パス、タイプが表示されます。

エディタに内蔵されている変更リストのサポートにより、ソース コントロールに送信される前に、変更リストの内容を確認することができます。この確認は、OFPA によりプロジェクトが複雑になるために必要です。例えば、ユーザーが複数のファイルをチェックアウトすると、そのうちの一部のみを送信することができ、ダングリング参照が残る可能性があります。

そのため、コンテンツ ファイルとアクタ ファイルをエディタ内でソース コントロールに送信するようになりました。

早期アクセスでは、ソース コントロール プロバイダとして、Perforce を使用している場合にのみ、変更リストのサポートを利用できます。