Unity を検索

シェア

Addressables は、複雑なライブコンテンツを提供する大規模な制作チーム向けのサポートを向上する Unity エディターおよびランタイムのアセット管理システムです。このシステムのリリースは、「開発者の苦労を緩和させるとともに、エンジニアリングの課題に対応するだけの十分な準備が整っていない小規模なチームでもライブコンテンツの恩恵を享受できるようにする」ための私たちの取り組みにおける、大きなマイルストーンの達成を意味します。Addressables はプレビュー版ではなくなり [1]、検証済みパッケージとして Unity 2019.3 向けに入手可能となります。Unity 2018 LTS のリリースサイクル中は完全なサポートが継続されます。

背景

Unity 4 で、ランタイムにおける動的読み込みのためにアセットを複数の個別の要素に分割された形でビルドするための低水準メカニズムとしてアセットバンドルが初搭載されました。開発者は、アセットバンドルを実装することで、コンテンツをアプリケーションのインストールから分離することができます。これにより、初回ダウンロードのサイズを小さく抑えながら、追加的なアプリケーションコンテンツ提供時に OTA(over-the-air)インストールの制限を超えることなく、公開済みアプリケーションへの定期的なコンテンツ更新を提供することが可能になります。このような利点がある一方で、アセットバンドルを実際の製品に使用するのは単純なタスクではありません。Unity には、「(シーン内での直接参照とゲームオブジェクトのパブリックフィールドによって)Unity 内でアセットの参照・読み込みを行う」という単純なメカニズムからアセットバンドルへコンテンツを移行するための明白なワークフローというものは提供されていません。静的な組み込みコンテンツだけを利用したアプリケーションやゲームを、増分更新でコンテンツを動的に読み込む方式へと移行するには、膨大なリファクタリングとカスタムプログラミングが必要です。したがってこの機能は、多くの、あるいはほとんどの開発者にとって、実用的なものではありませんでした。

Addressables

アセットバンドルの使用体験について開発者の方々とお話した所、うまく使用できている方々は皆、ほぼ同じ高水準システムを、少しずつ異なる様々な方法で記述されていることが分かりました。Addressables は、アセットのアドレス・ビルド・読み込みにまつわる一般的な問題各種を解決するフレームワークへの明白なニーズに対応すべく誕生しました。

関心の分離:アセットの参照とパッケージング

Addressables の主要な機能は、読み込まれるアセットの内容と、アセットの読み込み元と、それらのアセットの読み込み方法とを分離することです。シーン、プレハブ、テキストなど、どんなアセットでも Addressable(アドレス可能)としてマークすることができ、固有の名前が与えられます。Addressable となったアセットは、そのアドレス可能な名前によって、特殊なスクリプトタイプ「Asset Reference」でコード内で参照・読み込み可能となります。また、Addressable アセットは、組み込みコンテンツとしてビルドや読み込みを行うためにまとめたり、ランタイムで動的に読み込むためにバンドルにしたりすることができます。このように、関心の分離を行うことによって、ゲームコードを変更する必要性に迫られることなく、コンテンツのパッケージングと配布に関する決定を制作の後期まで保留できるようになります。

Addressables ウィンドウ

ランタイムのメモリ管理

Unity でアセットバンドルから読み込みを行うことの大きな利点は、不要になったコンテンツをメモリから効率的にアンロードできることです。何が読み込まれ何が安全にアンロード可能かを効率的にトラッキングするためのコード記述は複雑なタスクであり、従来は開発者に任せられていました。Addressables 経由で読み込む場合、読み込まれるアセットとその依存の高水準な参照カウントが自動的に提供され、使用されなくなったバンドルとその関連アセットを自動的にアンロードすることができます。さらに Addressables は、読み込まれたアセットとアセットバンドルの参照カウントのリアルタイムのデバッギング用に、視覚的なプロファイラーを提供します。

Addressables プロファイラー

より迅速なイテレーション Addressables は、コンテンツ変更時のより迅速なイテレーションを実現するため、アセットの読み込みプロセスに関していくつかの重要なコンセプトを採用しています。

  • 再生モードシミュレーション:ビルドのプロセスを要することなくアセットがディスクから直接読み込まれ、かつアセットの参照カウントがプロファイラーによって提供されます。
  • より迅速なインクリメンタルビルド:Addressables は、インクリメンタルビルドのスピードと信頼性を向上させる新しいスクリプタブルビルドパイプラインとともに提供されます。
  • エディターホスティングサービス:LAN 接続されたローカルのデバイスへ Addressable コンテンツを提供する組み込み機能によって、デバイス上でコンテンツのイテレーションを迅速かつ効率よく行う方法が提供されます。

ご使用を開始されるにあたって

Addressables は、アセットの参照とパッケージングにおける関心を分離し、再生モードとデプロイ済みプレイヤービルドの両方でより迅速なイテレーションを実現し、自動メモリ管理とプロファイリングツールを提供します。Addressables は、単純なユースケースと複雑なユースケースの両方を解決できるように拡張性とカスタマイゼーションを考慮して設計されています。ついに Addressables がプレビュー版ではなくなり、今すぐ皆様の制作アプリケーションに安心してお使いいただけるようになったことを私たちは大変嬉しく思います。Unity では引き続きパフォーマンスと機能の改良に尽力し、開発者の皆様のニーズを踏まえて Unity と Addressables をともに進化させるべく取り組んでまいります。動的コンテンツのサポートに関する主要な技術的課題の多くが Addressables によって解決されますが、まだ「最後の」問題が残っています ― 公開済みのゲームやアプリケーションのためのアセットのホスティングと配布です。2020 年 9 月に、Unity は Addressables システムに完全に統合された、企業向けのグローバルコンテンツホスティングソリューションをローンチしました。Cloud Content Delivery を使えば、クラウドを介した強力なアセット管理とコンテンツ配信を使って、ゲームのアップデートのビルドおよびリリースを労力をかけずに行うことができるようになります。このサービスについてさらに詳しくお知りになりたい方は、こちらからサインアップしてください。Addressables はすでに 300 件を超えるプロジェクトで使用されています。Unity でパッケージマネージャーシステムを使用して今すぐご自分のプロジェクトに追加していただけます。新しいプロジェクトで簡単にご使用を開始していただけるほか、既存のプロジェクトをアップグレードして Addressables を導入される場合は Migration Guide(移行ガイド)をご利用いただけます。また GitHub にて、基本的な使用方法と高度な使用方法のサンプルプロジェクトもご提供しています。すでに Addressables をお使いの方は、よろしければこちらの短いアンケートにご回答ください。

--

[1] 「プレビュー版ではなくなる」という言葉についての補足:Addressables を 1.1.5 にアップデートするとパッケージマネージャーでのパッケージの表記から「プレビュー版」のタグが外れます。これは中間的な状態ではありますが、パッケージが最新版の Unity を使った一連の自動テストに合格し、パッケージのオーナー(つまり、この記事の著者のチーム)が開発者の皆様のプロジェクトで当該機能を利用していただく際のサポートを行う準備が整ったことを示します。Addressables は 2018.3 以降のすべてのバージョンの Unity に対応しています。この先に控える Unity 2019.3 のリリースに向けて、パッケージを「検証済み」にする予定です。パッケージが「検証済み」になるにはリリース QA によって、主な Unity エンジンとエディターのリリースを組み合わせた環境におけるテストと検証を完了する必要があります。

2019年7月15日 カテゴリ: ゲーム | 5 分 で読めます