Choosing the right runtime asset loading technology for RT3D projects

このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。
リアルタイム3D (RT3D)プロジェクトはますます複雑化しており、アセットマネージャーとランタイムロードに関して、より高度なアプローチが求められている。開発者は常に可能性の限界を押し広げようとしており、これらのプロジェクトが複雑化し規模が拡大するにつれて、滑らかなパフォーマンスと優れたユーザーエクスペリエンスを確保することがこれまで以上に重要になってきています。Unity Asset Managerはアセットの整理、管理、最適化のための包括的なソリューションを提供しますが、開発者は依然として、ランタイムにアセットをロードするための適切なテクノロジーを選択するという課題に直面しています。
コンテンツ配信ネットワーク(CDN)からコンテンツをストリーミングする場合でも、ローカルアセットを動的にロードする場合でも、ロード/アンロードサイクルを通じてメモリを管理する場合でも、適切なアセットロード技術を選択することは、プロジェクトの成功に不可欠です。
Unityは、ランタイムアセットの読み込みに関して複数のアプローチを提供しており、それぞれが特定のニーズやプロジェクト目標に合わせて調整されています。このE-BOOKは、開発者が利用可能な選択肢を理解し、それぞれの長所を比較検討し、プロジェクトに最適なソリューションを選択できるよう支援することを目的としています。
ランタイムアセットの読み込みについて
ランタイムアセットの読み込みとは、アプリケーションが実行中にコンテンツをロードおよびアンロードする方法を指します。これは次のようなことを意味する可能性があります。
- CDNから新しいコンテンツをダウンロードする
- ローカルアセットをオンデマンドでロードします
- 未使用コンテンツをアンロードしてメモリを管理する
- ポリゴンを段階的にストリーミング
それでは、さまざまなアセット読み込み技術と、それぞれの技術に最適なRT3D業界プロジェクトの例を探るいきましょう。
選択肢を理解する
Unityは、これらのシナリオに対応するための複数のアプローチを提供しており、それぞれ異なるユースケースに合わせて最適化されています。
- AssetBundles/Addressables
- Unityプロジェクト専用に構築されています
- Unityのすべてのアセットタイプに対応
- Unityアプリケーションに一般的に最適
- 効率的なメモリ管理が優先事項である場合、
- DLCパックは無線で配信され、
- また、定期的なコンテンツ更新(季節イベント、新キャラクター、製品アップデートなど)が行われるライブサービス型ゲームやアプリケーションにも適用されます。
- glTF
- Unityプロセスに一切触れる必要のない、プラットフォームに依存しないソリューション
- 純粋な3Dコンテンツに特化
- ネイティブ3Dデータの柔軟な読み込みとクロスプラットフォーム互換性を必要とするすべてのランタイムアプリケーションに一般的に最適です。
- 3DDS(Unity 3Dデータストリーミング)
- CADやBIMデータなどの3Dモデルの可視化を可能にする、プラットフォームに依存しないソリューション。
- Unity Asset Managerでのワンクリック生成と可視化
- 関連性の高いコンテンツのみを最高品質で読み込みます
- 一般的に、大スケール可視化に最適で、ユーザーはあらゆるデバイスでプログレッシブな読み込みにより、非常に複雑で詳細なモデルを探るできます。
一見すると、これらのツールは互換性があるように見えるかもしれない。しかし、それぞれが一意の状況で優れた性能を発揮するため、特定の用途により適していると言える。適切なテクノロジーを選ぶには、ツールの強みとプロジェクトのニーズを一致させることが重要です。
正しい選択をする
適切な技術を選択するキーは、プロジェクト固有の要件を理解することにある。あなたの意思決定に影響を与えるべき要因を探るみましょう。

AssetBundlesを使用すると、ほぼ空のシーンを持つアプリケーションをビルド、そこからゲームやアプリケーションの残りの部分を動的にロードます。
アセットバンドルとAddressables
Addressablesパッケージは、Unityネイティブのシステムであり、以下の目的で設計されています。
- ランタイム時にアセットの読み込みを効率化する。
- 依存関係の追跡、コンテンツのバージョン管理、複数のロードパス(ローカル/リモート)、ネットワーク配信、およびキャッシュを有効にします。
AssetBundlesは、実際のアセットのパッケージングとロードを低レベルで処理する基盤技術です。Addressablesは、AssetBundlesの上に構築された高レベルのシステムで、よりユーザーフレンドリーなインターフェース、自動化ランタイムれた依存関係管理、および簡素化されたAddressablesロードを提供します。AssetBundlesは、複雑なゲームコンテンツの管理に優れています。また、特定のビルドターゲット、 Unityのバージョン、およびプラットフォーム向けに最適化されています。次のような場合に最適です。
- テクスチャ、サウンド、シーン、プレハブなど、あらゆる種類のアセットに対応しているため、複数のアセットタイプをサポート。
- Unityがアセット間の依存関係を解決することで、依存関係を管理します。
- バージョン管理
- Addressablesを使用すると、アセットのバージョンとその依存関係を追跡するカタログが提供されるため、コンテンツを更新際に、どのバンドルを再ダウンロードする必要があるかをシステムが正確に識別できます。
- これは、プレイヤーにゲーム全体を再ダウンロードさせることなく、コンテンツアップデート(シーズンパックやライブイベントなど)を配信したいライブゲームにおいて特に役立ちます。
- Unityに最適化され、プラットフォーム固有の
理想的な使用例:
効率的なメモリ管理と読み込み時間、複数のアセットタイプ、および/または定期的なコンテンツ更新を必要とするUnityゲーム。最適化されたアセットは、異なるランタイム間で共有する必要はありません。
効果がある理由:アセットの「アドレス」またはアセット参照を介してオンデマンドでコンテンツをロードができ、そのコンテンツがデバイスに既にキャッシュされているか、CDN上でリモートでホストされているかに関わらず、 Addressablesシステムが残りの処理を自動的に行います。ランタイムは、アプリケーション全体の更新を必要とせずに、新しいコンテンツパックをダウンロードできます。エンドユーザーは、パフォーマンスを維持し、メモリを効率的に管理しながら、新しい季節コンテンツを入手できます。

Unity glTFast (com.unity.cloud.gltfast)パッケージは、ランタイム時およびエディター内における glTF™ 3Dファイルのインポートとエクスポートをサポートします。
glTF loading
glTFと.GLBは基本的に同じ形式ですが、パッケージ化の方法が異なります。glTFはテキストベースの形式で、テクスチャやバイナリデータなどが別々のファイルに格納されているため、開発やデバッグに最適です。一方、GLBはすべてを単一のバイナリファイルにまとめているため、分布やランタイムの読み込みがより効率的です。
glTF は、Unity の無料パッケージglTFast を使用して3Dモデルの読み込みを効率化するソリューションを提供します。次のような場合にこのオプションを検討してください。
- シンプルな3Dモデルの読み込み
- GLBファイルを使用する場合、依存関係はエクスポート時にファイルに組み込まれるか、手動で解決する必要があります。
- クロスプラットフォーム互換性
- 迅速な導入
- Unityのバージョンやプラットフォームに依存しない、標準形式のサポート。
理想的な使用例:
高速な読み込みと標準形式のサポートを優先した、シンプルなモデルビューアーアプリケーション。異なるRT3Dプロジェクト間でアセットを再コンパイルせずに再利用する必要がある場合は、GLBを使用するのが最善の方法です。具体的な例としては、1人のビューアーが数千ものアセットを閲覧できるeコマースアプリケーションが挙げられる。
別の例としては、ユーザーがカスタマイズできるコンテンツ(カスタムアバターやカスタムアクセサリーなど)を扱うプロジェクトがあり、柔軟性を持って作成できる標準形式が必要となる場合が挙げられます。
効果がある理由:GLBはウェブの3D形式です。GLBデータは多くの接点で入手可能です。

Unity 3Dのデータストリーミングを使用すると、モデルの関連部分のみを動的にダウンロードし、モデルのサイズに関係なく、あらゆるデバイスで表示できるようになります。
3DDS(Unity 3Dデータストリーミング)
Unity 3Dデータストリーミングは、開発者が3D静的アセットや環境をユーザーのデバイスに直接ストリーム配信できるポリゴンストリーミングサービスです。データはUnity Asset ManagerでPixyzテクノロジーを使用して前処理され、ランタイムアプリケーションへの分布が自動的に最適化されます。ランタイムにおける読み込みも、UnityのgltFastテクノロジーによって処理されます。
クライアント内の3Dデータストリーミングパッケージは、すぐに使える最適化を実装することでモデルの読み込みを可能にし、カメラから離れた場所ではモデルのメモリ使用量を削減しつつ、近距離では完全なディテールを確保します。
3DDSは、大規模モデルや複雑なビジュアライゼーションを扱う際に真価を発揮し、モデルのすべてのパーツメタデータを保持します。以下のような場合に最適な選択肢です。
- 大規模なCADおよびBIMモデル
- インスタントファーストピクセル
- 段階的な負荷要件
- 単一のアセットソース/複数のターゲットプラットフォーム
- 対象デバイスごとにメモリを最適化したロード
- 複雑なモデル階層のナビゲーションと研究
理想的な使用例:
ランタイムアプリケーションではディスプレイできなかった、モデルのVRウォークスルー体験。
デバイスのメモリ容量やレンダリング能力の制限により、完全な形で読み込むことができない詳細なCADモデルやBIMモデルに関するメタデータやプロパティにアクセスできる、建築またはエンジニアリングの可視化およびレビューアプリケーション。
決断を下す
Unityでゲームを開発する場合、一般的にはAddressablesが推奨されるソリューションです。理由は以下のとおりです。
- Unityの開発ワークフロー専用に構築されています
- ランタイムパフォーマンスを最適化
- Unityのメモリ管理と統合されています
- 複雑なアセット依存関係をサポートします
- 複数のアセットタイプを効率的に処理します
例外ケース:ユーザー生成コンテンツ ゲームにユーザー生成コンテンツ(カスタムアバターやアイテムなど)が含まれる場合は、GLBを検討してください。
- 標準形式により、コンテンツ作成がより容易になる
- Unityのバージョン間での長期的な互換性が向上しました
- サードパーティのサービスとのインテグレーションが容易(例:ReadyPlayerMeのアバター)
例外ケース:エンティティコンポーネントシステム(ECS)ベースのUnityゲーム。UnityのECSアーキテクチャを活用している場合は、ランタイムアセット管理にEntitiesコンテンツ管理システムを使用する必要があります。
産業プロジェクトの場合、選択はより具体的な要件に左右される。
GLBを選択する場合:
- 標準的な3Dモデルを扱う
- クロスプラットフォーム互換性が必要
- ユーザーがアップロードしたコンテンツの取り扱い
- プラットフォームに依存しないアップデートが必要
- 長期的な形式の安定性が求められる
3DDSを選ぶべき場合:
- 大規模なCAD/BIMモデルを扱う
- 段階的な負荷が必要である
- メモリ最適化が必要です
- 複雑な階層構造とメタデータの保持は優先事項です。
- 動的な忠実度スケーリングが必要です

Asset Managerを使い始めましょう
Unity Asset Managerは、ランタイム前にアセットを整理および準備するのに役立ち、選択したロード戦略に応じて効率的なパイプラインを作成します。Unity エディターおよびUnityのデータ準備ソリューションであるPixyzと統合されたAsset Managerは、以下のことが可能です。
- ソースアセットの作成、イテレーション、最終ステートまでを一元管理する
- アセットを変換し、ランタイムデプロイ用に準備します。
- Unity エディターのワークフロー内でアセットを効率的に整理する
- 異なるアセット形式間で変換する
- ランタイムに利用できるリアルタイム3Dファイルのリポジトリとして機能する。
プロジェクトの成長に合わせて、 Asset ManagerはUnity エディターのライセンス規模に合わせて拡張され、ストレージと管理機能をさらに強化します。
アセットバンドル用のアセットを準備する場合でも、glTFファイルを生成する場合でも、3DDSストリーミングを設定する場合でも、 Unity Asset Managerは開発中の整理とコントロールを維持するのに役立ちます。
Unity Asset Managerは、データをランタイムアプリケーションに直接取り込むことができます。gLTFおよび3DDSデータが生成されると、ビルド時間を必要とせずに、実行時にランタイムに確認できます。これにより、産業分野の顧客は、CADデータやBIMデータをUnityアプリケーションに直接取り込むまでのプロセスを短縮できます。

さらに確認する
Unity Asset Managerソリューションについてさらに詳しく知りたい場合は、以下のリソースをご覧ください。
- UnityPackage ManagerからglTFastパッケージをダウンロードし、com.unity.cloud.gltfastという名前でインストールしてください。
- Addressablesドキュメント
- 3Dデータストリーミングドキュメント
ご質問がある場合は
Unityでのアセット読み込みに関する経験や質問を共有してください。Unity Discussionsにご参加ください。


