addressableを使用するとdicingが動かない気がします

338 views
Skip to first unread message

hirowasaki

unread,
Oct 14, 2021, 10:48:19 AM10/14/21
to 宴ユーザーグループ
お世話になっております。

当方、addressableを使用しようと画策しておりまして、宴シーンのaddressableへの移行をしていたところ、そちらの修正プログラムで一枚絵での移行は簡単に出来たのですが、dicingを移行しようとしたところ、どうしてもこうしてもdicing textureの表示が出来ません。

どうもdicing objectをaddressableにするとうまくアトラスを読んでくれない(ローカルにおいていても表示されなくなるように見える)ようなのですが、何か解決策はあるでしょうか?

マッドネスラボ

unread,
Oct 14, 2021, 11:19:48 AM10/14/21
to 宴ユーザーグループ
こちらをご確認ください。
addressable も基本の仕組みはアセットバンドルと一緒なので、同じことが起きている可能性があります。

Unityのアセットバンドルは、プレハブやScriptableObjectなどが、参照先にさらにテクスチャなどの別リソースを持っている場合は、
・パターン1 参照先も含めて一つのアセットにパックする
・パターン2 参照先は別のアセットバンドルとして作成され、プレハブやScriptableObjectのアセットには含めない。(参照先のアセットはあらかじめロードが必要)
という2パターンを設定できます。

アセットバンドルを作るときに、
ScriptableObjectのみアセットバンドルにして、参照先のテクスチャをアセットバンドルにしないようにすると、パターン1になります。
ScriptableObjectと、参照先のテクスチャの両方をアセットバンドルにすると、パターン2になります。


宴のロード処理は、基本的にはパターン1で作っているので、
アセットバンドルも、パターン1で作られるようにしてください。
リンク先ドキュメントにあるように、画像のフォルダの位置などを分けて、 addressable  で作られるアセットバンドルの対象にならないようにしてください。


2021年10月14日木曜日 23:48:19 UTC+9 hirowasaki:

hirowasaki

unread,
Oct 15, 2021, 4:29:16 AM10/15/21
to 宴ユーザーグループ
あ、すみません、個別でメッセージ投げてました…
よろしくお願いします。

2021年10月15日金曜日 0:19:48 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Oct 15, 2021, 4:11:35 PM10/15/21
to 宴ユーザーグループ
すみません。私もちょっとAddressableについて勘違いしていました。

こちらの記事がわかりやすいと思うのですが、

Addressableの場合は、アセットの分割はBundle Modeというのを設定することで、何パターンかに分けられるようですが、
基本的にアセットの依存関係は、パック時とロード時などに自動的に解決されるようです。
(上記のパターン1とかパターン2は、Addressableの場合はあまり関係ないようです)
なので、Bundle Mode自体はどれを使っても構いません。

となるとテクスチャが外れてしまっている原因のほうがちょっとわからないのですが、
 Addressables の Analyzerでパックされている依存関係のあるアセットがみれるので、それで確認してみてもらえますか。

Bundle Modeをデフォルト(Pack Together)にした場合、アトラス画像はImplicit(暗黙)以下にまとめて置かれているのがわかると思います。
ss_1776.png

Bundle Modeを、 Pack Separatelyとした場合でも、
アトラス画像は各アセットバンドルの、Implicit(暗黙)に含まれて、同じアセットバンドル内に置かれているのがわかると思います。
ss_1777.png


もし、ここにアトラス画像がないとしたら、ビルド時の問題です。
リンク先の >ステージ 4:重複するアセットを修正する
にあるように、依存関係にあるアセットをあえて暗黙的にパックされないようにして、分割し独立したアセットとして作成する設定をしているのかもしれません。
なので、この設定をしている場合は、その対象にならないように通常通り暗黙的にアトラス画像がパックされるようにするか、
ロードの前に依存関係にあるアトラス画像のアセットバンドルをロードするように拡張する必要があります。

逆に、Analyzerで確認したときにアトラス画像があるのに、正常にロードされないとしたら、ロード時の問題になります。
ビルド時と実行時で設定を変えたなどで起きることがあるらしく、いくつか注意点があるようです。


2021年10月15日金曜日 17:29:16 UTC+9 hirowasaki:

hirowasaki

unread,
Oct 15, 2021, 11:10:42 PM10/15/21
to 宴ユーザーグループ
ありがとうございます。なんとなく、理由が掴めそうな感じがしてきたので調査してみます。
あと、addressableを宴に導入するときの注意点が見えたらちょっと報告します。

2021年10月16日土曜日 5:11:35 UTC+9 マッドネスラボ:

hirowasaki

unread,
Oct 20, 2021, 10:18:59 AM10/20/21
to 宴ユーザーグループ
確認したところ、アトラスが.assetに含まれていないのでビルド時もしくはグループ化時の問題だというところまでは把握できたので、宴側の問題ではないことがわかりました。
ありがとうございました。

2021年10月16日土曜日 12:10:42 UTC+9 hirowasaki:

hirowasaki

unread,
Oct 20, 2021, 11:33:51 PM10/20/21
to 宴ユーザーグループ
状況を把握できたので、ちょっとご報告がてらに現象を説明しておきます。

現象
dicing textureのような暗黙の参照があるassetをaddressableにする際に、暗黙の参照がバンドルに含まれず、ロードされない現象が起こる。

理由
極めて簡単でinspectorの上の"addressable"チェックボックスを使って、addressableにすると暗黙の参照が含まれないものとして取り扱われる(らしい)。

いろいろテストしてどうしても暗黙の関係を解決してくれず、一度削除してグループエディタにドラッグ&ドロップをしてビルドしてみたところ、なんと暗黙の了解が解決される信じがたい事態となりました。
結論としては
「インスペクタのaddressableチェックボックスは事故の元なので、うっかり触るんじゃない」に尽きました…


2021年10月20日水曜日 23:18:59 UTC+9 hirowasaki:

マッドネスラボ

unread,
Oct 21, 2021, 11:32:20 PM10/21/21
to 宴ユーザーグループ
Addressableのチェックがあると暗黙的な参照にならないのですね。
私も Addressableを使い慣れていないので、その辺よくわかってませんでした。

詳細なご報告ありがとうございます。



2021年10月21日木曜日 12:33:51 UTC+9 hirowasaki:
Reply all
Reply to author
Forward
0 new messages