サーバーからダウンロード


投稿日:2017年2月28日 | 最終更新日:2024年5月27日

スマートフォンのアプリを作る場合は、アプリサイズを決められたサイズ以下に抑えないとWifiでのダウンロードが必須になったり、ファイル分割の設定が必要になったりします。
こういったときのために、宴にはサーバーから必要なファイルをダウンロードする機能があります。
 
また、サーバーからファイルをダウンロード する形にしておくと、アプリの更新をせずにゲームの内容を更新できるという利点もあります。
スマートフォンアプリで、会話シーンに「宴」を使っているケースではより役に立つと思います。
ただし、ファイルサーバーは各自で用意する必要があるので、その点は注意してください。

以下に、作成手順をまとめます。

 

アセットバンドルを作成

Tools > Utage > ResourceConverter からリソースコンバーターを開きます。

ResourceConverterの設定は、このようにします。

Resouces Directoryに「プロジェクト名/Reources/プロジェクト名」のフォルダをドラッグ&ドロップで設定。
ProjectSettingsに、今のシナリオのプロジェクト設定ファイルを。
OutPut Pathに、アセットバンドルを出力する任意のディレクトリを指定します。
(ここに出力したファイルをあとでサーバーに移動させます)

Convertボタンを押すと、設定した出力先のディレクトリ以下に、プラットフォーム名のフォルダが作られ、それぞれのフォルダ以下にアセットバンドルが作成されます。

サーバーにファイルを置く

出力されたアセットバンドルをフォルダごとサーバーに置きます。

ロードの設定

AdvEngineStarterの設定で
Storage Typeを「Sever」に、
ServerUrl に、フォルダを置いたサーバーのURLを記述します。

ServerUrlのURLは、WindowsやAndoridなどのプラットフォーム名のフォルダ名ではなく、その一つ上のフォルダのURLです。

実機での確認

実機で確認するには、対象プラットフォームのアセットバンドルを作成する必要があります。
「Budild Mode」をAllPlatFormにして、実機のプラットフォームもビルド対象にします。
「Budild Target Flags」で対象プラットフォームを設定します。

Convertをすると、設定したすべてのプラットフォームに対してのアセットバンドルの作成が始まります。
ただし、プラットフォームの切り替え時にかなり長時間かかってしまいますので、ご注意ください。

ビルド時の注意

アセットバンドルのもとになったアセットがResources以下にあるとアプリに含まれてしまうので、
Resourcesフォルダをリネームするなどして、アセットバンドル以外はアプリに含まれないようにしましょう。

章ごとにダウンロードする場合

初回のDL負荷を減らしたり未実装の追加データに対応するために、章に分けたDLデータを作ることも可能です。
章データの設定方法はこちら

章ごとに分けてDLする場合は、アセットバンドル作成時にリソースコンバーターの設定で
「Separate Chapter」にチェックを入れてください

また、AdvEngineStarterの設定で
「Use Chapter」にチェックを入れてください。
「Chapter Names」は起動時にロードする章データの名前です。
起動時には章データをロードせずに、任意のタイミング(つまり手動で)ロードする場合は設定が0のままでもかまいません。

また、起動時にはシステムセーブデータのオートセーブ機能をオフにして、DLが終わってからプログラムからオンにするようにしてください。
(これをしないと、パラメーターシート等が未DLの不完全な状態でシステムセーブデータを上書きしてしまい、システム系のパラメーターを消してしまうおそれがあります)
宴Version3.4.4からこの処理をしていない場合は、エラメッセージを出すようにしました。

実際の使い方は、Utage/SampleOthers/SampleChpaterシーンを確認してください。

SampleChpaterシーンで使っているソースコードは、Utage/Sample/Scripts/SampleChapterTitle.csです。
章データをDLするコードが載っていますので参考にしてください。

その他

その他、詳細については、各項目のドキュメントを確認してください。
ビルド、ファイル管理、DL対応について
リソースコンバーター
AdvEngineStarter