ミップマップをオフにすると、反射プローブが白い画像に変わるのはなぜですか?

1) ミップマップをオフにすると、反射プローブが白い画像に変わるのはなぜですか
? 2) 2021.3 Android で、
再生のためにアセットバンドルからビデオをロードできません 3) SBP は、パッケージ化時に FBX などのモデル ファイルに余分なゲームオブジェクトが含まれる問題を解決できますか
? 4 ) Addressables は、Prefab 後に失われた既にパッケージ化された Mono スクリプトをロードします


これは 349 回目の UWA 技術知識共有プッシュです。UWA コミュニティで注目のトピックを選択し、UWA Q&A、コミュニティ投稿、その他の技術知識ポイントを取り上げ、誰もがより包括的に習得および学習できるようにします。

レンダリング

Q: 反射プローブでミップマップをオフにすると白い画像になりますが、これはなぜですか?

A: 次のオプションに関連しています。

Unity の公式マニュアルには、このオプションがミラー畳み込みの形式でキューブ マップのミップマップを処理すると記載されています。

ただし、ここでのミップマップは従来のミップマップとは異なり、異なる粗さに従って分割されています。

これはシェーダー コードでも確認できます。

この設定を none に変更すると、ミップマップがオンかどうかに関係なく、効果は同じになります。

回答を提供してくれた true@UWA Q&A コミュニティに感謝します


読み込み中

Q: Unity 2021.3 バージョンでは、Android は再生のために AssetBundle からビデオをロードします:
AndroidVideoMedia::OpenExtractor がアーカイブを翻訳できませんでした

1. 使用されるバージョンは Unity 2021.3.8 です。
2. ビデオをパッケージ化するときに圧縮は設定されません。
3. アセットバンドルは StreamingAssets ディレクトリに配置されます
。 4. 関連コード

    btn.onClick.AddListener(() =>
        {
            AssetBundle ab = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/assetbundle/videos"+ "/1109.ab");
            Debug.Log(ab == null);
            videoPlayer.clip = ab.LoadAsset<VideoClip>("1109");
            videoPlayer.Play();
        });
///build
 BuildPipeline.BuildAssetBundles(config.OutPath, BuildAssetBundleOptions.UncompressedAssetBundle, config.buildTarget);

問題:
Android 9.0 未満の携帯電話ではビデオをロードして再生できません。ログ:

Unity AndroidVideoMedia::OpenExtractor could not translate archive:/CAB-8621c60d70de42f9c22e8270082bc81a/CAB-8621c60d70de42f9c22e8270082bc81a. resource to local file.  Make sure file exists, is on disk (not in memory) and not compressed.

Android9.0以降であれば問題ありません。

参考資料:
AssetBundle からビデオ再生をロードしたい場合は、圧縮しないように設定する必要があることをフォーラムの投稿から学びましょう:
Video: Support for reading videos from AssetBundles on Android. - Unity Forum

公式ドキュメントには次のようにも記載されています:
Unity は圧縮されていないアセット バンドルからの再生をサポートします Android Pie 以降の場合、Unity は圧縮されたアセット バンドルからの再生をサポートします。

上記によると、ビデオはロードされて再生されるはずですが、まだ問題があります。道教の友人でこの問題に遭遇した人はいるでしょうか。

また、ビデオリソースを扱う際の計画についてお聞きしたいのですが、ビデオリソースも AssetBundle に入れるのでしょうか、それともそのままリソース ディレクトリに直接入れるのでしょうか。

A1: セルフテスト後、ビデオを AssetBundle にパッケージ化しなくても解決できます。

または、このソリューションを参照してください:
ビデオ - Android 上のアセットバンドルに VideoClip をロードする | ページ 2 -

参考用の Unity フォーラム コード:

private IEnumerator loadVideo(string pathvideo)
    {
        assetBundleRequest = DownloadingScreenManager.getInstance().getMapAssetBundle()["vide_bundlename"].LoadAssetAsync(pathvideo);

        yield return assetBundleRequest;

        textAsset = (TextAsset)assetBundleRequest.asset;

        File.WriteAllBytes(Path.Combine(Application.persistentDataPath, pathvideo + ".mp4"), textAsset.bytes);

        string url = Application.persistentDataPath + "/" + pathvideo + ".mp4";

        videoPlayer.url = url;
    }

質問の所有者である zerolj@UWA Q&A コミュニティの回答に感謝します。

A2: バンドル パッケージのビデオの再生には多くの問題があり、モデルによってパフォーマンスが異なり、ビデオを再生できるものもあれば、再生できないものもあります。私たちのアプローチは、バイナリをバンドルにパッケージ化し、ゲームの開始時にユーザー ディレクトリにコピーし、再生時にパスを指定して、最後に再生タイムアウトを処理することです。

回答を提供してくれた Li Wei @UWA Q&A コミュニティに感謝します


メモリ

Q: スクリプト可能なビルド パイプラインは、パッケージ化時に FBX などのモデル ファイルに余分なゲームオブジェクトが含まれる問題を解決できますか?

通常のアセット コンパイル プロセスのプログラミング モデルでは、多くの不必要なものが組み込まれます。最も顕著なのは、コピーされたビルドイン リソースであり、次に大量の Remapper メモリ消費が続きます。

現時点では SBP の機能を理解していないため、最適化のためにメッシュとアニメーションクリップをコピーするプロセスをまだ使用しています。

SBP には単一の AssetPath の下にある一部のファイル参照を削除する機能があるのだろうか? もう 1 つは、リソース参照 (エディター アイコン、シェーダーのデフォルト テクスチャなどと同様) を強制的に切断できるかどうかです。

A: 私自身でテストし、実行できることを確認しました。IBuildTask層に設定するだけで提案できます。

質問の所有者、Ou Yuesong@UWA Q&A Community の回答に感謝します。


アドレス指定可能

Q: Addressables でパッケージ化されたすべての Prefab について、ロード後に Mono スクリプトが失われます。Addressables のいくつかのバージョンを使用し、すべての MonoScript バンドル命名オプションを設定した後でも、状況は変わりません。

正しい設定がどこにあるのかわかりません。

A: スクリプトが失われた場合は、逆シリアル化中にリソースとコードが関連していないことを意味します。環境が異なる場合に備えて、リソースを再パッケージ化することをお勧めします。

回答を提供してくれた Li Wei @UWA Q&A コミュニティに感謝します


今日の共有はここまでです。人生には限界がありますが、知識には限界がありません。長い開発サイクルの中で、私たちが遭遇した問題は氷山の一角にすぎません。UWA コミュニティは喜んで同行し、一緒に探索し、共有します。より多くの開発者が UWA コミュニティに参加することを歓迎します。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

 

おすすめ

転載: blog.csdn.net/UWA4D/article/details/132560873