Obi FluidのFluidViscosityサンプルを32bitビルドすると動かない問題は、Obi ColiderのDistance Fieldが原因だった

Obi Fluid

原因が分かったのでメモ。

unity 2019.4.13f(LTS)で動作。

あくまでも現時点でこうやったら私はこうなったというメモなので、参考程度に。

 

前回の記事はここ。

Obi Fluidをインポートしたら「failed to open source file」のシェーダーエラーが出たのでメモ
環境はunity 2019.4.13f1(LTS)です。 Obi Fluidをインポートし、試しにビルドして実行しようとしたらエラーになった。 エラーログ ・Shader error in 'Obi/URP/Par...
Obi Fluidをビルドして実行すると表示されない問題は、アーキテクチャをx86_64にしたら解決した ※追記あり
バーチャル3Dクリエイター神部まゆみです(*^-^*) 前回言っていた問題が解決したのでメモ。 Obi Fluidってのはこれね。 ーーーーーーーーーー 追記: 下に追記しましたが、FluidVisco...

 

Obi Fluidっていうのはこれね。

FluidViscosityサンプル内のTestEnvironmentオブジェクトの、Obi Coliderコンポーネントが原因

これの、

これ。

このObi Coliderをインスペクターオフにしたら、32bitビルドでも正常に動作した。

Obi Coliderコンポーネント内のDistance Fieldを「None(なし)」に設定したら32bitでも正常動作した。これが原因っぽい

どういう意味がある項目なのかわからないけど、ここが64bit依存とか?ちょっとわかんないけど…。

なし にしたら普通にビルドして動かせた。

EnvironmentDFに戻したらまた動かなくなったので、ここが原因であってるっぽい。

Obi ColiderはObi Fluidの液体を受け止める時に使うから注意

Obi Coliderをオフにすると液体がすり抜けちゃいます。

と言っても、「コンポーネントの追加」からObi Coliderを追加すると、デフォルトではObi ColiderのDistance Fieldは「なし」になってるけど。

FluidViscosityサンプルに入ってる床のEnvironmetだけ、不具合の原因になったEnvironmentDFが指定されてるみたい。

私のモデルにObi Coliderつけて、Distance FieldにEnvironmentDF指定して32bitビルドしたら強制終了した。やっぱこれが原因かな

一応やってみた。やっぱりダメっぽいです。

その後アーキテクチャをx86_64にしてビルドしたら大丈夫だったので、やっぱりEnvironmentDFは32bitだとダメっぽい。

まぁEnvironmentDFはサンプル用なのか?指定してもすり抜けちゃいましたけど。

windows10 32bitを入れたVM環境でも同様のエラーを確認

32bitビルドEnvironmentDFあり

32bitビルドEnvironmentDFなし

32bitの実機は持ってないのでわかりません( ̄▽ ̄;)

おわりに

一からObi Fluidのコンポーネント追加すれば、今回みたいな不具合はあんまり起きないかもしれないけど。

とりあえずサンプル動かしてみて、サンプルからオブジェクト持ってきて…ってやると、今回の事例で原因がわからず詰む可能性もあるかも( ̄▽ ̄;)

ただ、ほかの人もそうなのか、私だけの問題だったのかはわからないけどね。

なにぶん検索しても日本語の情報が少ないアセットなので…。

 

まぁ原因がわかってよかったよ。

あくまでも私の場合はこうやったらこうなったというだけなので、参考程度にね。

 

タイトルとURLをコピーしました