0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Addressableアセットのホットアップデートに関する疑問

Last updated at Posted at 2022-03-04

1)Addressableアセットのホットアップデートに関する疑問
2)遠い所のメッシュ線がぼやけにならない方法
3)シェーダーでのいくつかの特別な画像の使用について
4)Lightmapがメモリに繰り返しロードされる
5)Unity2020.2.1パッケージAPKの問題


Addressable

Q:Addressableアセットのホットアップデートは、CRC Mismatchと提示し、ホットアップデートする必要があるアセットをCDNの対応するディレクトリにアップロードされ、ゲームの開始時にエラーが報告されます:
1.png

A:私たちのプロジェクトでも以前に同じ問題が発生しました。具体的には、パッケージがインクリメントされた後、BundleのHashが変更されていないが、CRCが変更されたため、ロードエラーが発生しました。
ここには2つの処理法があります。
1、Unityの公式によった「SchemaでCRCCheckを無効にする」方法を採用します。でもこの方法は、Bundleダウンロードの整合性と正確性を検証する際に問題が発生する可能性があります。
2、HashとCRCの二重テストをホットアップデートプロセスに追加します。いずれかの値が変わったと検出した場合、Bundleを更新する必要があると判断し、最新のCatalogファイルをリロードじます。同じく、この方法も、このバンドルのコンテンツが更新されていない場合でも、Bundleが大量に追加される可能性があります。


Texture

Q:メッシュ線の効果を出したいのですが、遠くの線がぼやけしますが、それはなぜでしょうか?これは正方形のMeshであり、UVスケーリングを使用してn個の小さなメッシュをカバーし、画像を[Repeat]に設定し、Mipmapをオフにします。しかし、遠くの線は相変わらずぼやけになります。何か解決方法はありますか?
2.png

A1:TextureのAniso Levelを上げてみてください。
3.png
Aniso Levelは、地面をローアングルから見るために使用されます。さらに、Filter ModeをTrilinearに設定している場合、部分的な効果がなくなりました。でもそのようにすると、コストは大分大きくなります。

A2:以下のように調整すると、問題は解決します。
4.png


Shader

Q:下図のように、他の場所からアセットをダウンロードしているため、詳しい説明はありませんが、TAの観点からこのような写真が何に使われているのか知りたいのですが。 T_M_Body_Msa_b.png、T_M_Body_Msa_g.png、T_M_Body_Msa_Mtl.pngは、それぞれどちらのシェーダーに使用されたんでしょうか?
5.png

A:それぞれb(Bump)、g(Glossness)和Mtl(Metallic)です。


Rendering

Q:次の図に示すように、Lightmap在Profileに重複に表示されるのはなぜですか?それぞれが40MBだと思いますが、それを最適化する方法はありますか?また、対応する参照スクリプトでは、Lightmapへの参照が見つかりませんでした。
6.png
7.png

A:各Lightmapが2つロードされているようです。Lightmapを管理するメカニズムを自分で作成しましたか?一度に2つロードしますか、それともシーンを切り替えたりLightmapを変更したりするときにそれらをアンインストールしませんか?シーンをロードするときにLoadSceneMode.Additiveを使用しましたか?これにより、前のアセットをアンロードせずにシーンが累加的にロードしまいます。
Lightmapへの参照数は非常に多いですね。どこのスクリプトによってインデックスされていたのか、対応するコンポーネントが常に常駐しているかどうかを確認してください。アンインストールするときは、インデックスをクリアする必要があります。
このウィンドウには、GameObjectとMonobehaviourの相互参照関係が表示されますが、直接参照ではありません。非常に複雑で、特定するのがかなり難しいです。Unityが提供する特別なMemoryProfilerで試すことができます。


Script

Q1:Unity 2020.2.1 + HubによってダウンロードされたSDK、NDK、JDK、およびBuildToolsが正しくパッケージ化されていません。
8.png
9.png

関連するエラーメッセージには、価値がある情報が記載されていません。

検証後:streammingAssetsファイルには680の制限があり、制限を超えるとパッケージ化できません。サフィックス名の有無に関係ありません。個人バッジョンには制限があるということでしょうか?

A1:おそらくそうではありません。何万ものファイルがテストされており、問題はありません。

A2:Custom Gradle properties templateを選択し、ファイル内でunityStreamingAssets = .unity3d * STREAMING_ASSETS *をunityStreamingAssets = .unity3dに変更したら済みます。
圧縮しない特別なファイルタイプが必要な場合は、コンマ “,”で区切って自分で追加してください。unityStreamingAssets = .unity3d、.bundleのようです。
U3Dは、2020.2.3以降、aaptOptionsのパッケージパラメータを変更しました。aaptOptionsの最大配列は255です。

aaptOptions 
{
    noCompress = [’.ress’, ‘.resource’, ‘.obb’] + unityStreamingAssets.tokenize(’, ')

    ignoreAssetsPattern = “!.svn:!.git:!.ds_store:!.scc:.:!CVS:!thumbs.db:!picasa.ini:!*~”
}

*PACKAGING_OPTIONS*

Q2:streamingAssetsを非圧縮にし、ファイルにサフィックスを付けないようにする場合、どのように記述しますか?

A:U3D 2020.2はunityStreamingAssets変数を使用する必要があるため、プロジェクトをエクスポートしてから、すべてのファイルが圧縮されないようにaaptOptionsを変更する必要があります。
参照:https://developer.android.google.cn/reference/tools/gradleapi/4.1/com/android/build/api/dsl/AaptOptions


UWA Technologyは、モバイル/VRなど様々なゲーム開発者向け、パフォーマンス分析最適化ソリューション及びコンサルティングサービスを提供している会社でございます。

今なら、UWA GOTローカルツールが15日間に無償試用できます!!
よければ、ぜひ!

UWA公式サイト:https://jp.uwa4d.com
UWA GOT OnlineレポートDemo:https://jp.uwa4d.com/u/got/demo.html
UWA公式ブログ:https://blog.jp.uwa4d.com

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?