UnityでAlembicファイルを使うには

Alembicとは

Alembicとは、3Dモデルのファイル形式の一つです。大きな特徴として、アニメーションの結果をジオメトリーにベイクすることで、アプリケーションに依存しないファイルの受け渡しを可能にしています。

このほかにも、メッシュ構造の変化をベイクすることができるため、ボーンアニメーションだと表現が難しい形状変化にも対応しています。

Alembicのメリット

曲線的なジオメトリーの変化をベイクできる

Alembicモデルの最大の特徴は、動きを持ったシェイプキーを使えるという点です。

普通のシェイプキーをUnityに持ち込んだ場合、その形状変化は線形になります。線形になるということをもう少し丁寧に説明すると、頂点と頂点が直線的に移動するということです。このため、シェイプキーは移動範囲の小さい形状変化や変化スピードが速いものに使われることがほとんどとなっています。

一方でAlembicの形状変化は、アニメーションを頂点キャッシュとしてベイクするため、まるでボーンを使ったアニメーションのようにジオメトリー形状を変化させることができます。

プリベイクで高品質

形状変化をプリベイクするため、シミュレーションに準拠した高品質な動きを表現することができます。映像系のソフトだとあまり恩恵を感じないかもしれませんが、ゲームのようなリアルタイムレンダリングを前提としたソフトだと、リアルタイムでは不可能なリアリティを表現できます。

先に上げたサンプルにある、布のようなオブジェクトだと、特にその効果を大きく感じることができるはずです。

Alembicのデメリット

ファイルが重たい

フレーム毎に頂点位置をベイクするわけですから、頂点数とフレーム数に比例してファイルサイズが大きくなっていきます。

動く頂点が少ないモデルであれば、ファイルサイズはそれほど大きくなりませんが、それでもfbxなどと比べるとファイルは大きくなる傾向にあります。

リアルタイムな動きができない

プリベイクとリアルタイムはトレードオフの関係にあると言えます。プリベイクによって、よりリアルな表現が可能な一方で、リアルタイムな表現は一切できなくなります

このことから、使える場面は割と限られることに注意してください。

UnityにAlembicファイルをインポートする

UnityでAlembicファイルを扱うには、Package Managerより「Alembic」プラグインを導入する必要があります。

初心者でパッケージマネジャーの使い方がわからない方は、以下の記事を参考に、プラグインを導入しましょう。

シーン上のAlembicファイルを変形する

Alembicプラグインを導入すれば、自動的にAlembicファイルはシーンに配置できるようになります。普通のオブジェクトファイルと同様にシーンに配置してください。

Alembicファイルの形状を変更するには、インスペクターからTimeをコントロールします。

また、直上にあるTime Rangeを調整すれば、Alembicファイルが持つ変形情報をトリミングすることができます。

AlembicStreamPlayerにはアクセスできない

実はこのAlembicStreamPlayerクラスですが、スクリプトからアクセスすることができません。先述したTimeをコントロールするには、アニメーターもしくはタイムラインを経由する必要があります。

こうしたこともあって、Alembicファイルは多少扱いにくいことに注意してください。

まとめ

Alembicファイルは、fbxでは到底できない頂点アニメーションを可能にしてくれます。しかし、その代償としてファイルサイズがかなり大きくなっています。

映像制作ならともかく、ゲーム制作でAlembicファイルを取り入れるのは、すこし慎重になった方がいいでしょう。

とはいうものの、Alembicはプロシージャルモデリングと非常に相性がいいです。これから、多くのソフトはHoudiniのような非破壊系のモデリング手法を取り入れることでしょう。そうしたなかで、このAlembicファイルは大きな役割を担うことが予想されます。

まだ使ったことが無い方はぜひ、AlembicファイルをUnityで使ってみてはいかがでしょうか。

公式ドキュメント

https://docs.unity3d.com/Packages/com.unity.formats.alembic@1.0/manual/index.html

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です