Android File Server

Unreal Engine プロジェクトのファイルをプッシュおよび編集する際に、代わりに Android File Server を使用します。

Android File Server (AFS)Unreal Engine (UE) のプラグインで、開発、デバッグ または テスト (もしくは任意で シッピングするプロジェクト下記参照 プロジェクト ビルドをパッケージ化する際に、ファイル サーバーを Android アプリケーションに埋め込みます。このファイル サーバーが実行されている間は、ファイルの管理、プッシュ、表示に UnrealAndroidFileTool を使用できます。AFS を含むビルドでは、Unreal Engine によってこれがクイック起動のデプロイに使用されます。AFS と UnrealAndroidFileTool を併用することで Android Debug Bridge (ADB) の代用となり、Unreal Engine のワークフロー向けにカスタマイズされている同じ機能の多くを利用できます。

AFS では、クイック起動の処理にデバイスの SD カードまたは外部ストレージを使用するのではなく、外部ストレージのサンドボックスを使用します。これにより、ストレージに対する許可や範囲限定のアクセスを必要とせずにファイルの操作行えるようになります。プロジェクトの開発やビルドのデプロイ時には、このような許可やアクセスに常に対処する必要があるため、その手間が省けます。AFS は WiFi 接続、USB 接続、またはその両方で機能するため、デプロイメントはより高速で処理されます。

コンフィギュレーションと設定

このセクションでは、AFS のパッケージ化と接続について説明します。これらの設定は [Project Settings (プロジェクト設定)] > [Plugins (プラグイン)] > [AndroidFileServer] にあります。このセクションには、設定可能なパラメータがそれぞれ含まれています。

The AFS Project Settings menu

パッケージ化の設定

[Packaging (パッケージ化)] セクションには、AFS を含むビルドのタイプと、ファイル サーバーで有効にする機能を制御する設定が含まれています。AFS はデフォルトで有効になっており、非シッピング ビルドでは、無効にしない限り、ファイル サーバーがプロジェクトに自動的に埋め込まれます。AFS はデフォルトではシッピング ビルドに含まれませんが、有効に設定することも可能です。

パラメータ

説明

Use AndroidFileServer

有効な場合、プロジェクトにはパッケージ化されたビルド、およびクイック起動ビルド向けにファイル サーバーが埋め込まれます。無効な場合はプロジェクトで AFS は使用されず、Unreal Engine は ADB にフォールバックします。

Allow Network Connection

有効な場合は、AFS で WiFi 接続と USB を介した接続が許可されます。詳細については、「接続の設定」を参照してください。

Security Token

AFS を保護し、トークンを持たないユーザーによるリモート起動を回避するために使用できる一意の文字列です。詳細については、「セキュリティ トークンを使用する」を参照してください。

Include in Shipping

有効な場合は AFS がシッピング ビルドに含まれます。詳細については、「シッピング ビルドで AFS を使用する」を参照してください。

Allow External Start in Shipping

Include in Shipping とともに使用することで、UnrealAndroidFileTool を含む、またはクイック起動用のファイル サーバーを開始するための外部リクエストを許可します。

Compile AFSProject

有効な場合、Unreal Engine ではプロジェクトのパッケージ化の際に、AFS を個別の APK としてコンパイルします。詳細については、「Compiling AFSProject (AFSProject をコンパイルする)」を参照してください。

シッピング ビルドで AFS を使用する

通常、シッピング ビルドに AFS は含まれませんが、Include in ShippingAllow External Start in Shipping を有効にすることで追加できます。Include in Shipping のみを有効にすると、AFS 自体は使用できるもののクイック起動には使用されないため、AFS をアプリケーション内から手動で開始/停止する必要があります。

AFS を開始および停止する

非シッピング ビルドを使用する場合、またはシッピング ビルドの外部スタートが有効な場合、レシーバーはリモートによるファイル サーバーの開始と停止を許可するために登録されます。UnrealAndroidFileTool を使用してデバイスのファイル サーバーに接続してファイルを管理することができます。それ以外の場合は、AFS を有効にして、Unreal Engine アプリケーション内から手動でファイル サーバーを起動する必要があります。詳細については「ブループリントを使って AFS を手動で開始および停止する」を参照してください。

セキュリティ トークンを使用する

[Security Token (セキュリティ トークン)] フィールドに入力すると、ファイル サーバーにより、UnrealAndroidFileTool から受信するあらゆる接続リクエストに、一致するセキュリティ トークンが必要になります。詳細については、UnrealAndroidFileTool のリファレンスを参照してください。

セキュリティ トークンが提供するのは基本的なセキュリティのみであり、暗号化は一切されません。シッピング ビルドの安全性をより堅牢にするために「[Android File Server Blueprint library」を使用してください。セキュリティ トークンを使用する際は、組織外のユーザーにトークンを渡さないように注意してください。

手動で AFSProject をコンパイルして AFS をインストールする

[Compile AFSProject] が有効な場合は、ファイル サーバーを含むスタンドアローンの APK がパッケージ化されます。これは、プロジェクトのコンフィギュレーションとキー署名に一致するものです。この APK をデバイスにインストールして、adb install -r オプションを使って新規または既存のファイルを管理できます。その後は、内部または外部のデータ ファイルに影響を及ぼすことなく、同じオプションで実際の APK を再インストールできます。これは、サーバーがビルトインされていないシッピング ビルド上でファイルを管理する必要がある場合に特に便利です。

シッピング ビルドでは、[Compile AFSProject] が有効であるかどうかにかかわらず AFSProject がコンパイルされます。

デプロイの設定 (ログと圧縮)

[Deployment (デプロイメント)] セクションに含まれる設定では、ファイル サーバーによってログに記録される情報を制御します。

パラメータ

説明

Use Compression (Beta)

ファイル サーバー上のデータ ファイルに圧縮を適用します。UE 5.0 では、転送時間への影響は現時点で最小限となっています。

Log Files

デバイスにプッシュされているファイルのリストを表示します。

Report Stats

デバイスにプッシュされたファイルの数と、接続上でプッシュされたバイト数のリストを表示します。

ログの出力設定が有効な場合は、Unreal Engine により、クイック起動の際に コンソール ウィンドウに AFS のインストール プロセスに関する情報が記録されます。

USB とネットワークを両方有効にしてログインする

USB とネットワークを両方有効にすると、ファイルのログ記録時には、ファイルが送信された接続のタイプを示すプレフィックスが AFS によって表示されます。

プレフィックス

説明

1>

USB を介して送信されたファイル。

2>

WiFi を介して送信されたファイル。

次の例では、マップ ファイルが USB を介して送信されたことを示しています。

1> TestGameEntry.umap

USB と WiFi の両方を使用している場合は、一方の接続がビジー状態の際にもう一方が使用されます。

1> TestGameEntry.umap
2> TestTexture.uasset
2> TestMaterial.uasset
1> TestPawn.uasset

接続の設定

[Connection (接続)] セクションには、AFS がコンピュータをデバイスに接続する際に使用する接続のタイプを設定するオプションが含まれます。

パラメータ

説明

Connection Type

ファイル サーバーとの接続に、USB、WiFi、またはその両方のどれを使用するかを定義します。

Use Manual IP Address

有効な場合、クイック起動では [Manual IP Address (手動 IP アドレス)] フィールドに入力された IP で Android デバイスを使用します。そうでない場合は、接続されていれば USB を介して IP アドレスの検出を試みます。

Manual IP Address

クイック起動の際に接続先となる Android デバイスの IP アドレスです。このデバイスは、ローカル WiFi ネットワークに接続されている必要があります。

接続のタイプ

[Connection Type] ドロップダウンでは、ファイルをプッシュする際に使用する接続のタイプを選択します。

接続タイプ

説明

USB

USB 接続を介してファイルを Android デバイスにプッシュします。

WiFi Network

コンピュータと同じローカル エリア WiFi ネットワーク上にある Android デバイスに、WiFi 接続を介してファイルをプッシュします。この設定を使用するには、[Allow Network Connection] を有効にしておく必要があります。

USB and Network Combined

ファイルのプッシュに USB 接続と WiFi 接続の両方を同時に使用します。ファイルの転送でいずれかの接続が占有された状態になると、キューで待機している次のファイルにもう一方の接続が使用されます。この設定ではファイルの転送がより高速になります。これはデプロイメント プロセスの一部として統合されています。

オーバーライドしない限り、AFS のデフォルト ポートは 57099 です。

手動 IP アドレスを使用する

[Use Manual IP Address?] 設定を有効にして Android デバイスの IP アドレスを入力すると、AFS ではビルドをデプロイする際に、通常のデバイス マネージャー ワークフローのデフォルト デバイスではなく、指定された Android デバイスに接続します。このデバイスは、使用しているコンピュータと同じ WiFi ネットワークに接続されている必要があります。

ブループリントを使って AFS を手動で開始および停止する

Android File Server ブループリント ライブラリを使うことで、ファイル サーバーを UE アプリケーション内から手動で開始/停止したり、ステータスを確認したりすることができます。

The Start File Server, Stop File Server, and Is File Server Running nodes

ノード

説明

Start File Server

指定された接続ポートを使ってファイル サーバーを開始します。このノードを使ってサーバーを開始する際は、USB 接続を許可するか、ネットワーク接続を許可するかを選択できます。この戻り値は、サーバーが適切に開始したかどうかを示すブール値です。

Stop File Server

ファイル サーバーが実行している場合にこれをシャットダウンします。特定の接続タイプのみを閉じることも可能です。この戻り値は、サーバーが適切にシャットダウンしたかどうかを示すブール値です。

Is File Server Running

EAFSActiveType のファイル サーバーの現在のステータスを返します。非アクティブの場合は None (0) を返します。アクティブであれば、以下のいずれかを返します。

  1. USB のみ

  2. ネットワークのみ

  3. USB とネットワーク

Is File Server Running Node with enum values exposed

AFS ではプロジェクト用に生成された一意のトークンを使った基本的なセキュリティが提供される一方で、これらのブループリント ノードを使用すると、デフォルトのブロードキャスト レシーバーを使った場合と比べて、AFS の開始と停止に関するセキュリティの強化が可能になります。

UnrealAndroidFileTool

UnrealAndroidFileTool は、デバイスにデプロイされているファイル サーバーに接続し、ファイルを手動で管理できるようにするコマンドライン ツールです。このツールは、エンジンのインストール先の「Engine/Binaries/DotNET/Android/UnrealAndroidFileTool」に保存されています。ここには、Linux 版、MacOS 版、Windows 版の各実行可能ファイルを含むフォルダがそれぞれ用意されています。

The directories containing the UnrealAndroidFileTool executable

これら 3 つのオペレーティング システム用の UnrealAndroidFileTool 実行可能ファイルがすべて必要な場合は、[Project Settings] > [Platforms (プラットフォーム)] > [Android] を開き、[Generate install files for all platforms (すべてのプラットフォーム向けのインストール ファイルを生成)] を有効にします。この設定を有効にしないと、Unreal Engine では、パッケージ化されたターゲット ディレクトリのエディタ ホスト タイプに一致する実行可能ファイルのみが提供されます。

コマンドラインを通じてこの実行可能ファイルを実行すると、利用可能なすべての関数が含まれるメニューが表示されます。これらのコマンドは、コマンドラインに追加することで実行可能ファイルとともに実行できます。

The AFS command line showing available options

コマンド リファレンス

UnrealAndroidFileTool のコマンドは、接続の確立先を定義する一連の**パラメータ と、その後に続く、ファイル サーバーに送信する コマンド** とで構成されます。次の例では、特定のシリアル番号を持つデバイスでシェル コマンドを実行し、特定のプロジェクトのファイルを参照します。

UnrealAndroidFileTool.exe -s AB187923123CD123 -p com.OrganizationName.ProjectName shell

パスを設定する

AFS 内のパスではコマンドライン パスの通常の規則が使用されますが、ファイル階層のナビゲーション用にいくつかのショートカットもサポートされています。

テキスト

説明

^^

cd コマンドで設定した現在のベース ディレクトリを参照します。詳細は「クエリ コマンドとナビゲーション コマンド」を参照してください。

^-n

指定したディレクトリの数だけ上に移動します。n にその数を指定します。例えば、^-3 と指定すると上に 3 ディレクトリ分移動します。これにより、/.. の複数のインスタンスを使わずに、相対パスを簡単に処理することができます。

^[key]

ショートカット、または与えられたキーに対するクエリとして、ファイルパスの冒頭で使用されます ([key] はキーのテキストに置き換えます)。例えば、^ext/ は外部パッケージ ディレクトリで、^commandfile は「UECommandLine.txt」ファイルへのショートカットになります。役立つショートカットのリストについては、次の表を参照してください。

次は、^[key] を使用する一般的なショートカットの一部です。これらを使用する必要はありませんが、非常に便利なショートカットです。

ショートカット

説明

ディレクトリへのショートカット

^ext/

外部ストレージ ディレクトリ。

^int/

内部ストレージ ディレクトリ。

^storage/

外部ストレージ ディレクトリ (READ_EXTERNAL_STORAGE および/または WRITE_EXTERNAL_STORAGE の許可が必要です)。

^obb/

「obb」ディレクトリ。

^unreal/

「UnrealGame」ディレクトリ。

^project/

「UnrealGame/[プロジェクト名]」ディレクトリ。

^engine/

「UnrealGame/Engine」ディレクトリ。

^game/

「UnrealGame/[プロジェクト名]/[プロジェクト名]」ディレクトリ。

^saved/

「Saved」ディレクトリ。

^logs/

「Logs」ディレクトリ。

特定のファイルへのショートカット

^commandfile

UECommandLine.txt ファイル。

^logfile

プロジェクト ログ ファイル。

^mainobb

メイン .obb ファイルパス。

^patchobb

パッチ .obb ファイルパス

ファイルパス以外のクエリ

^packagename

プロジェクトのパッケージ名。

^version

パッケージ バージョン コード。

^ip

ネットワーク上にあるデバイスの IP アドレス。

パラメータ

次のパラメータをファイル サーバー コマンドの前に加えることで、特定のターゲット デバイスとプロジェクトに向けて接続を設定できます。

コマンド

説明

-s [デバイスのシリアル番号]

指定したシリアル番号のデバイスにコマンドを送信します。

-ip [IP アドレス]

指定した IP アドレスのデバイスに接続します。

-t [ポート]

デバイスへの接続に使用するポートをオーバーライドします。これを指定しない場合、デフォルトのポートは 57099 です。

-p [パッケージ名]

接続先のアプリケーションのリバース ドメイン パッケージ名。例: com.OrganizationName.ProjectName。また、パッケージ名は、[Project Settings] で指定されている文字列に正確に一致する必要があります。

-k [セキュリティ トークン]

セキュリティ トークンを使用する で説明されているように、ファイルサーバーへの接続に必要なセキュリティトークンを提供します。

デバイス管理コマンド

次の表は、利用可能なデバイスや認識済みのパッケージに関する利用可能な情報を取得するため、またはリモート サーバーを停止するために使用できるコマンドのリファレンスです。

コマンド

説明

help [コマンド名]

パラメータを含む別のコマンドの名前とともに help コマンドを使用すると、UnrealAndroidFileTool によってそのコマンドの詳細と設定方法が表示されます。

devices

アクセス可能な接続済みのデバイスがリスト表示されます。@ プレフィックスが付いたデバイスは認証済みのデバイスです。シリアル番号に -s が付いている場合は @ を含めないでください。

packages

AFS レシーバーが有効なパッケージがリスト表示されます。

stop-all [-w]

レシーバーを含むすべてのパッケージに停止リクエストが送信されます。-w を加えると、UnrealAndroidFileTool はすべてのリッスン バインドが終了するまで待機します。その後、ユーザーは UnrealAndroidFileTool と再びやり取りできるようになります。

terminate

指定したリモート サーバーを停止します。

pushpull、または shell など、ファイル サーバーとやり取りするあらゆるコマンドではサーバーの開始を暗黙的にリクエストするため、サーバーを開始するためのコマンドは用意されていません。

インタラクティブ モードのコマンド

インタラクティブ モード を開始/終了するには、下記のコマンドを使用できます。インタラクティブ モードは ADB と同じように機能するもので、デバイスとの接続を開いて複数のコマンドを送信することができます。それぞれのコマンドで「UnrealAndroidFileTool.exe」を実行する必要はありません。UnrealAndroidFileTool は、ユーザーが終了するまでインタラクティブ モードのままになります。

コマンド

説明

shell

インタラクティブ モードを開始します。

quit / exit

インタラクティブ モードを終了します。

クエリ コマンドとナビゲーション コマンド

次は、デバイス上のディレクトリとファイルに関する情報を取得したり、インタラクティブ モード時にベース ディレクトリのナビゲーションを提供したりするコマンドです。

コマンド

説明

query [キー]

特定のキーを含むすべての変数を表示します。

getprop [キー]

指定したキーに関連付けられているプロパティを取得します。

cd [パス]

ベース ディレクトリを設定します。^^ を使うとこのディレクトリを参照することができます。ディレクトリを手動で入力する必要はありません。

pwd

現在のベース ディレクトリを表示します。

direxists [パス]

指定したパスのディレクトリが存在するかどうかを出力します。

ls [-l,-s,-R,-f] [パス]

指定したパスのディレクトリに含まれるコンテンツを表示します。次の指定子を使って、出力する情報を指定できます。

-l:許可を表示。 -s:サイズを表示。 -R:再帰的ディレクトリ ツリーを表示。 -f:フラットを表示。

ファイル管理

次は、デバイス上のファイルとやり取りする、またはファイルを変更するコマンドです。

コマンド

説明

mkdir [パス]

指定したパスにディレクトリを作成します。

rmdir [パス]

指定したパスのディレクトリを削除します。

fileexists [ファイル名]

指定したファイルが存在するかどうかを出力します。

rm [ファイル名]

指定したファイルを削除します。

cp [ソース] [コピー先]

[ソース] ファイルを、デバイス上の指定した [コピー先] ディレクトリにコピーします。

mv [ソース] [移動先]

[ソース] ファイルを、モバイル デバイス上の指定した [移動先] ディレクトリに移動します。

pull [ソース] [コピー先]

モバイル デバイス上の [ソース] ファイルを、PC 上の指定した [コピー先] ディレクトリにコピーします。

push [-c] [ソース] [コピー先]

PC 上の [ソース] ファイルを、モバイル デバイス上の指定した [コピー先] ディレクトリにコピーします。-c パラメータを加えると、UnrealAndroidFileTool によってデータが圧縮されます。

cat [ファイル名]

デバイス上のファイルのコンテンツをアウトプット ログに書き出します。

deploy [-c] [ファイル名]

「デプロイメント ソース/デプロイメント先」のペアを含むテキスト ファイルを読み取ります。-c パラメータを加えると、UnrealAndroidFileTool によってファイルが圧縮されます。

コマンドライン ファイルのコマンド

次は、リモート デバイス上にあるプロジェクトの「UECommandLine.txt」ファイルとやり取りする、または変更するコマンドです。

コマンド

説明

command [データ]

データを「UECommandLine.txt」ファイルに書き出します。データを指定しない場合は、ファイルのコンテンツが表示されます。

addcommand [データ]

データを「UECommandLine.txt」ファイルに追加します。

delcommand [データ]

データを「UECommandLine.txt」ファイルから削除します。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル