Transfer Assistant
このUnityツールは、.unitypackage の書き出し機能を使用して、不要と思われるアセットを削除しながら、あるプロジェクトから別のプロジェクトへアセットを転送するのを支援します。

このツールは、一部のアセット参照を意図的に無視し、アクティブに必要なアセットのみを保持します。
- プレハブによって参照されるすべてのアセットを書き出す代わりに、メインのアバターに存在するアセットのみを書き出します。 プレハブがメインのアバターが使用していないアセットを使用している場合、それは含まれません。これはデフォルトの動作ですが、変更可能です。
- アセットのタイプやコンポーネントごとに、それらによって参照されるアセットも含めて無視することを選択できます。例:
- マテリアルを無視すると、それらのマテリアルで使用されているテクスチャも無視されます。
- Modular Avatar Menu Item などのコンポーネントを無視すると、それらのコンポーネントで参照されているアイコンテクスチャも無視されます。
- EditorOnlyとしてマークされたオブジェクトによって参照されるアセットを無視することを選択できます。
予期しないアセットが書き出しに含まれている場合、Transfer Assistant のユーザーインターフェースを使用して、どのオブジェクトやコンポーネントがそれに依存しているかを特定できます。

Transfer Assistant がシーンやプレハブの内容を書き換えることはありません。
このツールの想定される用途は、異なるゲーム間でアバターのプロジェクトファイルを書き出すことです(例:Unity 2022 BIRPプロジェクトからスタンドアロンのUnity 6.4 URPプロジェクトへ)。 そのようなプロジェクトでは、アセットは複数のフォルダに分散しており、それらのフォルダの中には、アニメーターコントローラーやアニメーションファイルなど、転送先のプロジェクトでは目的を果たさないために除外したいアセットが含 まれています。
このツールが適していないケース
あなたが製品のクリエイターである場合、このツールはリリースの一部として公開・配布することを目的とした .unitypackage ファイルの書き出しには向いていません。そのようなアセットは通常、フォルダ構造においてより厳密な規律を必要とするためです。 このツールの一部の機能は調査目的で使用できる場合がありますが、製品リリースの管理にこのツールを使用することは推奨されません。
ダウンロード
このツールは Booth.pm でダウンロードできます:
ALCOM経由でインストールすることもできます:
- このリンクを使用して**リポジトリリストをALCOMにインストール**してください。
- ALCOMを使用して Haï ~ Transfer Assistant をプロジェクトに追加してください。
もしこの無料ツールがお役に立ちましたら、Patreonにアクセスして制作のサポートをお願いします。
Patreonのリワードとして追加のツールも入手できます。
使い方
ツールの使い方の基本的な手順は以下の通りです:
- 分析するアセットを選択する。
- 保持したいアセット参照を絞り込む。
- どのアセットが他のアセットを必要としているかを確認する。
- 書き出しの準備をして、どのファイルが書き出されるかプレビューする。
- なぜ予期しないアセットファイルが必要とされているのかを突き止める。
- 選択したアセットを書き出す。
分析するアセットを選択する
まず、以下のいずれかを選択します:
プレハブを分析する
Project タブでプレハブを右クリックし、 Transfer Assistant... を選択します。
または、 Window > Haï~ > Transfer Assistant に移動し、プレハブを選択 して 分析を実行 ボタンをクリックします。
アバターを制作している場合は、Projectビューでアバターが含まれているプレハブを選択してください。

シーンを分析する
シーンに含まれるオブジェクトを分析するには、以下の手順が必要です:
- Unityエディタでシーンを開きます。
- Window > Haï~ > Transfer Assistant に移動します。
- 必要に応じて、次節の手順でウィンドウの言語を変更してください。
- 右上のドロップダウンを 現在のシーン に設定します。
- 分析を実行 ボタンをクリックします。


その他の詳細
右上のドロップダウンで、オブジェクトの選択モードを切り替えることができます。
- 単一ターゲット: 1つのルートオブジェクトのみが分析されます。
- 複数ターゲット: 複数のルートオブジェクトが分析されます。
- 現在のシーン: 開いているシーンのすべてのルートオブジェクトが分析され、シーン自体も書き出しに追加されます。
- これにはシーンのレンダリング設定は含まれません。スカイボックス、ライティングデータ、その他のシーン参照は書き出しに含まれません。
- 複数のシーンを開いている場合、それらすべてが分析されます。
ターゲットを変更した場合や、アセットに変更を加えた場合は、 分析を実行 ボタンをクリックして内容を更新してください。
ウィンドウの言語を変更する
ウィンドウの下部にある、英語で "Language" と書かれたドロップダウンを使用して言語を変更できます。
お使いの言語が利用できない場合で、技術的な知識がある方は、以下のことが可能です:
- 大規模言語モデル(LLM)に
Packages/dev.hai-vr.transfer-assistant/Scripts/Editor/Locale/en.jsonファイルを新しい.jsonファイルに翻訳させる。 - Unityエディタウィンドウで
CTRL-Rを押す。 - 言語選択ドロップダウンの右側にある更新ボタンを押す。

保持したいアセット参照を絞り込む
左側のサイドバーにあるチェックボックスを押して、エクスポートされるアセットを調整します。
これらのチェックボックスには連鎖効果が あります。例えば、 Materials のチェックを外すと、エクスポートされる Textures にも影響します。
Transfer Assistant はプレハブやシーンを一切変更しないため、どのボタンをクリックしても常に安全です。

EditorOnlyを含める
- チェックされている場合、すべてのオブジェクトが含まれます。これがデフォルトのオプションです。
- チェックされていない場合、EditorOnlyオブジェクトおよびその子オブジェクト内で参照されているアセットは含まれません。
- ただし、インポート時のエラーを避けるため、プレハブのインスタンスが EditorOnly であっても、プレハブのソースは常に含まれます。
これは、エクスポート中であっても、EditorOnlyとしてマークされたGameObjectやコンポーネントをプレハブから削除するものではありません。それらが含んでいる参照を無視するだけです 。
これにチェックを入れるかどうかは、ワークフローによります。
プレハブ内の非表示項目を含める
このオプションは、プレハブインスタンスの上書きによってソースプレハブ内のアセットが非表示になる場合の扱いを決定します。
- チェックされている場合、ターゲットオブジェクトが階層内で上書きして使用していない場合でも、ソースプレハブ内で参照されているアセットが含まれます。
- チェックされていない場合、ソースプレハブ内で参照されているアセットは含まれず、ターゲットオブジェクトがアクティブに使用しているアセットのみが含まれます。これがデフォルトのオプションです。
- アバタープロジェクトでは、多くの場合アバターでアクティブに使用されているものだけに興味があるため、これが推奨されるオプションです。
デフォルトでは、 プレハブ内の非表示項目を含める はチェックされていません。チェックを外したままにすると、エクスポートされるアセットの数が劇的に少なくなることがあります。
この例では、マテリアルを NonToon に変換してアバターを修正しました。
- プレハブソ ースは、アバターがそれらのマテリアルをアクティブに使用していないにもかかわらず、変換前の以前のマテリアルを依然として参照しています。
- プレハブ内の非表示項目を含める のチェックを外したままにすることで、それらの古いマテリアルはエクスポートに含まれず、NonToon マテリアルのみが含まれます。
カリング
- アセットタイプをチェックすると、そのアセットタイプが含まれ、そのアセットタイプによって参照される他のアセットも含まれます。
- アセットタイプのチェックを外すと、そのアセットタイプは含まれず、そのアセットタイプによって参照されるアセットも含まれません。
Animator Controller のチェックを外すと、エクスポートから Animator Controller が削除されるだけでなく、それらの Animator Controller で使用されている Blend Tree アセットや Animation Clip アセットもエクスポートから削除されます。
コンポーネント
- コンポーネントをチェックすると、それらのコンポーネントによって参照されるアセットが含まれ、 それらのアセットによって参照される他のすべてのアセットも含まれます。
- コンポーネントのチェックを外すと、それらのコンポーネントによって参照されるアセットは含まれず、それらのアセットによって参照されるアセットも含まれません。
これは、エクスポート中であってもプレハブからコンポーネントを削除するものではありません。
どのアセットが他のアセットを必要としているかを確認する
Transfer Assistant のメインパネルには、オブジェクトの依存関係ツリーが表示されます。このツリーは、ルートが子に依存している(=子がオブジェクトの依存先である)という形で表示されます。
マテリアルやテクスチャなどの多くのオブジェクトは複数回使用されるため、複数の親を持つことになります。その場合、ツリー内に同じオブジェクトが複数回表示されます。
簡潔にするため、各オブジェクトはその子を一度だけ表示します。2回目以降の出現には、右側に "(表示済み)" というテキストが追加されます。
オブジェクトをクリックすると、そのオブジェクトの場所がハイライトされます。
以下の機能を使用して、なぜ一部のオブジェクトが必要なのかを確認し、ナビゲートして ください:
- 特定のオブジェクトにある虫眼鏡アイコンを押すと、そのオブジェクトにフォーカスします。
これを使用して、それがどのアセットに依存しているか、またどのアセットがそれに依存しているかを理解します。 - サイドバーにある虫眼鏡アイコンを押すと、それらのアセットタイプにフォーカスします。
これを使用して、それらのアセットタイプを必要とするすべての依存関係を可視化します。 - 検索フィールドにテキストを入力して、特定のアセット名を検索します。
虫眼鏡アイコンをもう一度クリックすると、検索がクリアされます。

色分けは以下の通りです:
- グレーアウトされているオブジェクトのほとんどはアセットではありません。例えば、プレハブではないコンポーネントやGameObjectなどです。コンポーネントはグレーアウトされた黄色で表示されます。
- 青色のオブジェクトは、プロジェクト内にファイルとして存在するプレハブアセットである プレハブソース または プレハブモデル です。
- 緑色のオブジェクトは、シーンオブジェクトである プレハブインスタンス です。これらはシーン内、または他のプレハブ内に存在する可能性があります。
プレハブインスタンス は、それが依存している プレハブソース と同じ名前であることが多いため、読み間違える可能性があります。そのため、色分けされています。
書き出しの準備をして、どのファイルが書き出されるかプレビューする
サイドバーで エクスポートの準備... ボタンを押します。これにより、 Export .unitypackage ウィンドウに似た新しいウィンドウが開きます。
そこで、どのファイルがエクスポートされるかを確認し、選択内容を微調整できます。
そのウィンドウのサイドバーには、各アセットタイプごとのボタンがあります。これらには連鎖効果はありません。
- 選択: そのタイプのアセットを選択し、エクスポートに含めます。
- 選択解除: そのタイプのアセットの選択を解除し、エクスポートから除外します。
- 選択解除して非表示: そのタイプのアセットの選択を解除し、Exportウィンドウから削除します。
- 注: 選択解除して非表示 を押しても、それらのアセットによって参照されているアセットの選択は解除されません。そのため、Transfer Assistant ウィンドウのカリング(カリング)オプションとは動作が異なります。

Transfer Assistant ウィンドウで行った変更は、 Prepare Export ウィンドウには反映されません:
依存関係を絞り込んだり広げたりした場合は、再度 エクスポートの準備... ボタンを押す必要があります。
なぜ予期しないアセットファイルが必要とされているのかを突き止める
Prepare Export ウィンドウで、なぜエクスポートされるのかわからないファイルが表示されることがあります。
その場合は、 Prepare Export ウィンドウの右側にある虫眼鏡アイコンを押してください。これにより、 Transfer Assistant ウィンドウ内でそのアセットが検索されます。
この情報を使用して、階層内のどのオブジェクトがそのアセットを必要としているかを突き止めることができます。
ファイルをエクスポートするつもりがなくても、 エクスポートの準備... ボタンを押すことができます。
Prepare Export ウィンドウは依存関係をファイルやフォルダとして表示するため、予期しないアセットの場所を特定するのに役立つ情報となります。

選択したアセットを書き出す
Prepare Export ウィンドウの下部付近にある ファイルにエクスポート... ボタンを押して、選択したアセットを任意のファイルにエクスポートします。
または、 クイックエクスポート ボタンを押して、 export.unitypackage ファイルにエクスポート(または上書き)します。

