unity alembic_ADAM:UnityでのAlembicサポートの進化



Unity Alembic_adam Evolution Alembic Support Unity



ユニティアランビック

ADAMの顔のモーションキャプチャと布のシミュレーションがUnityに組み込まれ、非常にリアルなCG人間がどのように生成され、すべてリアルタイムで30FPSでレンダリングされたかをご覧ください。これを実現するために、NeillBlomkampとOatsStudiosは、Alembic Importer、タイムライン、頂点共有、およびその他の標準機能を最大限に活用しました。



ADAMの顔のモーションキャプチャと布のシミュレーションがUnityに導入され、非常にリアルなCGの人々を生み出し、そのすべてが30FPSでリアルタイムにレンダリングされる方法を学びましょう。この目的のために、NeillBlomkampとOatsStudiosは、Alembicインポーター、タイムライン、頂点共有、およびその他の標準機能を最大限に活用しています。

Made with Unityチームのツールとパイプラインを専門とするアートツールエンジニアのSerEn(Sean)Lowです。 Unity Technologiesに入社する前は、Disney Interactiveにいて、Pixar、Marvel、Lucasfilmと共同でコンソールゲーム用のアニメーションツールを開発していました。 ADAMフィルムでは、AlembicやTimelineなどのツールの統合を支援し、アニメーションパイプラインが合理化され、保守が容易であることを確認しました。



私の名前は、Unityチームのツールとパイプラインを専門とするアートツールエンジニアのSerEn(Sean)Lowです。 Unity Technologiesに入社する前は、Disney Interactiveで働き、コンソールゲーム用のアニメーションツールを開発し、Pixar、Marvel、Lucasfilmと協力していました。 ADAMムービーの場合、アニメーションの制作プロセスが簡素化され、保守が容易になるように、AlembicやTimelineなどのツールの統合を支援しました。

背景:UnityでのAlembicの誕生((背景:UnityでのAlembicの誕生)。

約2年前、Unity R&DチームはAlembicImporterプラグインを開始しました。それはという名前の短編映画で使用されました 贈り物 マーザアニメーションプラネットによる。この映画で最も挑戦的なショットの1つには、海の波を形成する何百万ものプラスチックボールがあります。これは、Houdiniシミュレーションから生成されたAlembicデータをUnityにインポートすることによって行われます。アーティストがさまざまな外部アプリケーションからシミュレートされたデータを持ち込めるようにすることで、AlembicをUnityに統合できることは確かな証拠でした。 Alembicを使用すると、アーティストはリアルタイムエンジンでのジョイントベースのメッシュ変形の制限を打破することもできます。

約2年前、Unity R&DチームはAlembicImporterプラグインをリリースしました。マーザアニメーションプラネットの短編映画で使用されました ' 贈り物 'に。映画の中で最も挑戦的なショットの1つには、波を形成する何千ものプラスチックボールがあります。これは、Houdiniシミュレーションによって生成されたAlembicデータをUnityにインポートすることによって行われます。アーティストがさまざまな外部アプリケーションからシミュレーションデータを取得できるようにすることで、AlembicをUnityに統合できます。これは強力な証拠です。 Alembicを使用すると、アーティストはリアルタイムエンジンでのジョイントベースのメッシュ変形の制限を打破することもできます。



OatsStudiosがパイプラインでAlembicImporterを使用することを決定したとき、布のシミュレーションと実際の顔のパフォーマンスキャプチャのために高い視覚的忠実度を処理できるように、追加の機能と最適化も必要でした。要件はAlembicImporterが最初に開発されたものとは大きく異なるため、Unityの開発チームはこのプラグインをアップグレードするために多大な努力を払いました。

OatsStudiosが製品ラインでAlembicImporterを使用することを決定したとき、布のシミュレーションと実際の顔の表情のキャプチャに高い視覚的忠実度を提供できるように、他の機能と最適化が必要でした。要件はAlembicImporter用に最初に開発されたものとは大きく異なるため、Unity開発チームはこのプラグインのアップグレードに多大な努力を払っています。

Alembicインポーターのメジャーアップグレード((AlembicImporterのメジャーアップグレード)。

AlembicImporterの最初のメジャーアップデートは タイムラインの統合 。これにより、実行時にAlembicデータをタイムラインにストリーミングして再生できます。同時に、編集時間中に、ユーザーはAlembicの再生を見ながらタイムラインをスクラブできます。この統合を可能にするために、カスタムPlayableBehavior(Alembic Stream Player)、PlayableAsset(Alembic Shot Asset)、およびTrackAsset(Alembic Track)をAlembicImporterパッケージに追加しました。 (Playables APIの詳細については、 ドキュメンテーション 。)

AlembicImporterの最初のメジャーアップデートは タイムラインの統合 。これにより、Alembicデータがタイムラインに流れ込み、実行時にタイムラインを介して再生できます。同時に、編集中に、ユーザーはAlembicの再生を見ながらタイムラインを閲覧できます。この統合を実現するために、カスタムPlayableBehavior(Alembicストリーミングプレーヤー)、PlayableAsset(Alembic Shotアセット)、およびTrackAsset(Alembicトラック)をAlembicImporterパッケージに追加しました。 (Playables APIの詳細については、を参照してください。 ドキュメンテーション 。)

次に、タイムラインで、Alembicトラックを追加し、Alembic Shot Assetを作成して、Alembic StreamPlayerコンポーネントがアタッチされたシーン内のAlembicインスタンスに関連付けることができます。

次に、タイムラインで、Alembicオーディオトラックを追加し、Alembic Shotアセットを作成し、Alembic StreamPlayerコンポーネントがアタッチされたAlembicインスタンスシーンに関連付けることができます。

タイムラインのアレンビックトラックとアレンビックショットアセット

タイムラインのAlembicトラックとAlembicシューティングアセット

シーンオブジェクトのAlembicStreamPlayerコンポーネント

シーンオブジェクトのAlembicStreamPlayerコンポーネント

インポーターの2番目の重要な更新は、 頂点共有、 これは、一定のメッシュトポロジアセットのAlembicストリーミングパフォーマンスを最適化するために重要でした。典型的なAlembicデータは、パーティクル(メッシュトポロジが常に変化する)などの動的シミュレーションに使用されますが、再生パフォーマンスを最適化するために、共有頂点をマージしたいと考えました。メッシュはリアルタイムのデータストリーミングに基づいてフレームごとに再構築されるため、これは非常に重要です。共有頂点をマージすることにより、エッジ、UV、法線、接線などの他のメッシュプロパティも更新されるため、動的なAlembicメッシュはFBXメッシュのように動作するようになりました。これにより、シーン内の割り当てられたマテリアル、シェーダー、およびライティングに従ってメッシュが確実に反応します。

インポーターの2番目の重要な更新は 頂点共有 待機する これは、一定のグリッドトポロジアセットのAlembicストリーミングパフォーマンスを最適化するために非常に重要です。パーティクルなどの動的シミュレーションには一般的なAlembicデータが使用されますが(メッシュトポロジは常に変化します)、再生パフォーマンスを最適化するために共有頂点をマージする必要があります。グリッドはリアルタイムのデータストリームに基づいて各フレームで再構築されるため、これは非常に重要です。共有頂点をマージすることにより、他のメッシュ属性(エッジ、UV、法線、接線など)も更新されるため、動的なAlembicメッシュはFBXメッシュのように動作するようになりました。これにより、シーンで指定されたマテリアル、シェーダー、およびライティングに従ってメッシュが確実に反応します。

共有頂点を示すUnityのアレンビックメッシュ

Unityのアレンビックメッシュは共有頂点を表示します

3番目のメジャーアップデートでは、追加しました 補間 アレンビック頂点データ。アレンビックメッシュは基本的にフレームごとに作成される新しいメッシュであるため、前後の頂点位置のデルタに関する情報はありません。これは、レンダリングのためにモーションブラーをAlembicメッシュに適用しようとしたときに問題になります。補間を有効にすると、UnityのAlembicアセットは位置間の補間を計算できるため、モーションベクトルの計算に必要な速度を出力できます。つまり、シェーダーの計算やシェーダーの計算に使用するために、Alembicメッシュから派生した正確なモーションベクトルを使用できるようになりました。 後処理スタック 。これにより、最終的にレンダリングされた画像のモーションブラーの品質が向上し、必要なサンプルが少なくなるため、パフォーマンスも向上します。

3番目のメジャーアップデートでは、Alembic頂点データに追加しました 補間 。 Alembicグリッドは基本的にフレームごとに構築される新しいグリッドであるため、前後の頂点位置の増分に関する情報はありません。これは、レンダリングのためにモーションブラーをアレンビックメッシュに適用しようとするときに問題になります。補間が有効になっている場合、UnityのAlembicアセットは位置間の補間を計算できるため、モーションベクトルの計算に必要な速度が出力されます。これは、シェーダー計算で使用するために、Alembicグリッドから派生した正確なモーションベクトルを取得できることを意味します。 後処理スタック 。これにより、最終的にレンダリングされたイメージのモーションブラーの品質が向上し、必要なサンプルが少なくなるため、パフォーマンスも向上します。

アレンビックメッシュ上の動きベクトル

アレンビックグリッド上の動きベクトル

モーションブラーを適用する前

モーションブラーを適用する前に

モーションブラーを適用した後

モーションブラーを適用した後

動きベクトルバッファ

動きベクトルバッファ

さらに、タイムラインに追加のアクティベーショントラックを必要とせずに、Alembic Playable Assetのアクティベーションを可能にする、Alembic Playable Assetの自動アクティベーションなど、スムーズなプロダクションワークフローを可能にするために、他のいくつかのプロダクションフレンドリー機能が実装されました。 Time Scaleプロパティを使用すると、Alembicデータの再生速度の時間を再設定できます。 Turn Quad Edgeプロパティを使用すると、メッシュ面を三角形分割する方向を選択できます。再生中にデータをキャッシュする代わりに、Alembicシーンオブジェクトが有効になっている場合は常にすべてのAlembicサンプルをキャッシュするオプションもあります。

さらに、タイムラインにアクティベーショントラックを追加せずにAlembic Playable Assetをアクティベートできる、Alembic Playable Assetの自動アクティベーションなど、スムーズな制作プロセスを実現するために、その他の制作が容易な機能がいくつか実装されています。タイムスケールプロパティを使用すると、Alembicデータの再生速度を再設定できます。 'Rotate Quadrilateral'プロパティを使用すると、メッシュサーフェスを三角形分割する方向を選択できます。再生中にデータをキャッシュする代わりに、Alembicシーンオブジェクトが有効になっているときにすべてのAlembicサンプルをキャッシュするオプションもあります。

OatsStudiosによる制作中のAlembic((OatsStudiosで生産中のAlembic)。

「アレンビックストリーミングは、私たちにとってプロジェクトの非常に重要な側面でした。シミュレートされたものを持ち込むことは困難であり、UnityのAlembicImporterはゲームチェンジャーです」とOatsStudiosのVFXスーパーバイザーであるChrisHarveyは述べています。

「私たちにとって、Alembicストリーミングはプロジェクトの非常に重要な側面です。シミュレートされたものを提供することは困難であり、UnityのAlembicImporterはゲームのルールを変更します」とOatsStudiosのVFXディレクターであるChrisHarveyは述べています。

タイムラインエディターで複数のAlembicアセットをアセンブルする

マルチディスティラーアセットタイムラインエディターを組み立てる

本物のワードローブに基づいて、オーツのADAMフィルムのすべての服は写真測量によってキャプチャされ、Marvelous Designerで再現およびシミュレートされました。そこでは、デジタルテーラーのSean Frandsenが実際の物理的属性とアニメーションをさまざまな生地(ウール、綿、革など)に適用しました。 )。

本物のワードローブに基づいて、オートミールADAM映画のすべての服を写真測量でキャプチャし、Marvelous Designerで再作成してシミュレートしました。そこでは、デジタルテーラーのSean Frandsenが実際の物理的属性とアニメーションをさまざまな生地(ウール、綿)に適用しました。 、革など)。 )。

一方、顔のパフォーマンスはキャプチャされ、Alembic再生用の一連の静的メッシュに変換されました。 (顔のキャプチャの詳細については、 アダム:舞台裏のビデオ 。)

同時に、顔の表情がキャプチャされ、Alembic再生用の一連の静的メッシュに変換されます。 (顔のキャプチャの詳細については、をご覧ください ' アダム:舞台裏のビデオ 。)

ADAMでは、Alembicは主に2種類のアセットに使用されます:布と面

ADAMでは、Alembicは主に布と表面の2種類のアセットに使用されます

次に、データは、Alembicファイルとしてエクスポートされる前に、さらにクリーンアップおよび調整するためにAutodeskMayaにインポートされました。これが彼らのパイプラインの概略図です。

次に、データをAutodesk Mayaにインポートしてさらにクリーニングおよび調整し、Alembicファイルとしてエクスポートします。これは彼らのパイプラインの概略図です。

AlembicおよびFBXアセットがUnityにパイプライン化されます

AlembicおよびFBXアセットをUnityにパイプラインします

時空間シミュレーションアセットを組み立てる((シミュレートされたアセットを空間と時間で組み立てる)。

Unityのこの段階で、Oatsはタイムラインをアセンブリツールとして使用し、Alembicアセットを組み合わせて、他のアセットと一緒にシーンスペースでそれらを振り付けました。たとえば、完全なキャラクターパフォーマンスを完全に組み立てるために、以下に示すようにFBX形式のボディパフォーマンスを含むアニメーショントラックの上に、顔と布にそれぞれ1つずつ、2つのAlembicトラックを使用しました。

Unityの現段階では、Oatsはタイムラインをアセンブリツールとして使用して、Alembicアセットをグループ化し、他のアセットと一緒にシーンスペースに配置します。たとえば、完全なキャラクターパフォーマンスを完全に組み立てるために、アニメーショントラックの上部に、それぞれ顔と服用の2つのAlembicトラックを使用しました。トラックには、以下に示すように、FBX形式のボディパフォーマンスが含まれています。

組み立てられたキャラクターがタイムラインで生き生きとしています

組み立てられたキャラクターはタイムラインで生き生きとしています

Oatsは、すべてがタイムラインにあるため、リアルタイム再生のために、各ショットのタイミングに従ってすべてのアセットパフォーマンスを同期およびシーケンスできます。ただし、アセットの数が多いと、タイムラインエディターのインターフェイスが簡単に複雑になり、本番環境で一度維持するのが困難になる可能性があります。オーツ麦は、シーン内でアセットを整理することでこれを解決しました TrackGroup 、必要に応じてグループを展開または折りたたむこともできます。物事を適切に整理して管理しやすくするためにOatsが利用したもう1つのUnity機能は、ネストされた複数のタイムラインインスタンスを処理するためのControlTrackでした。

Oatsは、タイムラインのすべてのコンテンツを使用して、リアルタイム再生のために、各ショットのタイミングに従ってすべてのアセットのパフォーマンスを同期および並べ替えることができます。ただし、アセットの数が多いと、「タイムライン」エディタのインターフェイスが簡単に複雑になり、本番環境に移行した後は維持するのが困難になります。を使用してオーツ麦 TrackGroup この問題を解決するためにサイトでアセットを整理します。アセットを使用すると、必要に応じてグループを拡張または折りたたむこともできます。 Oatsは、別のUnity機能を使用して、物事を整理し、管理しやすくしています。これは、複数のネストされたタイムラインインスタンスを処理するControlTrackです。

展開および折りたたまれたトラックグループ

展開および折りたたまれたトラックグループ

ControlTracksは、ネストされたタイムラインアセットを処理します(ここに示す文字とキャッシュ)

ControlTracksはネストされたタイムラインアセットを処理します(文字とキャッシュはここに表示されます)

ワンクリック自動化((ワンクリック自動化)。

制作段階の後半で、顔のモーションキャプチャと布のシミュレーションの両方で生成されたAlembicデータの量は約300ファイルに達しました。したがって、Oatsは複数のAlembicファイルをタイムラインにインポートする自動化されたプロセスを必要としていたため、独自のインポーターを実装して、事前定義された設定でAlembicファイルを自動的に取り込み、必要なコンポーネントを含むシーンにインスタンス化し、タイムラインでシーケンスしました。 Unity Devチームの助けを借りて、Oatsはボタンをクリックするだけでこの自動化プロセスを開始することができました。また、タイムラインをさらに改善するために、このプロジェクトから多くのすばらしいフィードバックとAPIリクエストを収集しました。

制作後期には、顔のモーションキャプチャと布のシミュレーション用に生成されたAlembicデータの量は300ファイル近くに達しました。したがって、Oatsは複数のAlembicファイルをタイムラインにインポートする自動化されたプロセスを必要とします。そのため、Oatsは独自のインポーターを実装して、事前定義された設定でAlembicファイルを自動的にインポートし、それらをインスタンス化して必要なコンポーネントのシーンを作成し、タイムラインで並べ替えます。 Unity Devチームの助けを借りて、Oatsはボタンをクリックするだけでこの自動化されたプロセスを開始できます。また、タイムラインをさらに改善するために、このプロジェクトから多くの優れたフィードバックとAPIリクエストを収集しました。

さまざまなキャラクターや小道具の何百ものAlembicアセットを管理する

さまざまなキャラクターや小道具の何百ものAlembicアセットを管理します

未来に目を向ける((今後の展望)。

ADAMプロジェクトの過程で、Alembic Importerはより成熟し、本番環境に対応できるようになりました。以下のクイックリンクからリリースバージョンをダウンロードできます。これで、動的トポロジシミュレーションメッシュだけでなく、布や面などの静的トポロジメッシュにも使用できます。最適化されており、既存および今後のUnity機能との統合が向上しています。ますます多くのアーティストやスタジオが、特にリアルタイムCGフィルムにAlembicを使用することに関心を示しているため、Alembicが多くの素晴らしいUnityプロジェクトの成功をどのように可能にするかを楽しみにしています。使用方法をお知らせください。

ADAMプロジェクトの間に、Alembicの輸入業者はより成熟し、生産の準備が整いました。以下のクイックリンクからリリースバージョンをダウンロードできます。これで、動的トポロジシミュレーションメッシュだけでなく、布やサーフェスなどの静的トポロジメッシュにも使用できます。これは、既存および今後のUnity機能をより適切に統合するように最適化されています。ますます多くのアーティストやスタジオが、特にリアルタイムCGムービーでAlembicを使用することに関心を示しているため、多くの優れたUnityプロジェクトがどのように成功するかを楽しみにしています。使い方を教えてください!

Unity DCC Dev Teamに特に感謝します: Mark Visser, Jason McCullough, Thomas Chollet, Seiya Ishibashi

UnityDCC開発チームに特に感謝します。 Mark Visser,Jason McCullough,Thomas Chollet,Seiya Ishibashi

ADAMのその他の「舞台裏」 に関する他の詳細な投稿をチェックしてください 点灯衣服シミュレーション 、および タイムライン

ADAMの「舞台裏」の詳細 についてチェックしてください イルミネーション衣服シミュレーションタイムライン その他の詳細な記事。

クイックリンク((クイックリンク)。

アレンビック頂点共有を取得できます リリース Unityパッケージ形式のバージョン(1.0f1) ここに

あなたはできる ここで入手 Unityパッケージ形式でのAlembic頂点共有 リリース バージョン(1.0f1)。

(このブランチはまもなくマスターとマージされます。準備ができ次第、再度更新します。混乱が生じて申し訳ありません。)

(このブランチはまもなくメインサーバーにマージされます。準備ができたら、再度更新します。混乱して申し訳ありません。)

Unityの詳細((Unityの詳細)。

方法を見つけます Unity2017とその機能 Timeline、Cinemachine、Post-Processing Stack、30 FPSでのリアルタイムレンダリングなどは、OatsStudiosのようなチームが映画製作の未来を変えるのに役立ちます。

理解するために Unity2017および タイムライン、ムービーカメラ、後処理スタック、30FPSリアルタイムレンダリングなど。 特徴 OatsStudiosなどのチームが映画製作の未来を変えるのをどのように支援するか。

翻訳元: https://blogs.unity3d.com/2017/12/04/adam-the-evolution-of-alembic-support-in-unity/

ユニティアランビック