Blenderの流体シミュレーションをUnityで動かす

概要
株式会社palanのxR事業部でWebAR/VRの開発をしているdamiと申します。
本記事ではBlenderで作成した流体(液体)シミュレーションのアニメーション付き3DモデルをUnityに持っていく方法を備忘録的にまとめます。
1. Blender側の作業
1-1. 3Dモデルの用意
流体シミュレーションはこちらの記事を参考に作成しました。
記事を参考に、クイックエフェクト「液体」→フローとドメインを追加→データをベイク→メッシュ化をします。

出力前に、ドメインのパーティクルプロパティで「エミッターを表示」にチェックが入っているかを確認します。
(チェックを外していたら液体が非表示で書き出されてしまいました)

1-2. 出力
3Dモデル側の作業が終わったらファイル>エクスポート>Alembic(.abc)で.abcデータとして出力します。
2. Unityにインポート
2-1. モデルをインポート
UnityのWindow>Package Managerを開き、「Alembic」パッケージを検索してインポートします。

先ほどBlenderから出力したabcデータをUnityにインポートし、シーンに配置します。

2-2. アニメーションの用意
Projectタブで左クリックしCreate>Timelineを選択し、タイムラインを作成。
作ったタイムラインをダブルクリックして、Timelineタブを表示しておきます。

シーンに配置してるabcモデルをTimelineタブにドラッグ&ドロップして、表示される選択肢から「Add Clip with Alembic Track」を選択します。


追加されたアニメーションクリップの開始を0秒に合わせて、流体アニメーションが再生できるか確認しましょう。

Timelineオブジェクトをシーンに配置されたabcモデルにドラッグ&ドロップすることでアタッチします。

これで流体アニメーションをUnityで再生することができました。
参考
Discussion