モーションキャプチャデータの操作、クリーニング

すべての人に良い一日を!

私は長い間habrを読んでいますが、3Dやアニメーションのトピックがこの分野の労働者の記事を喜ぶことはめったにないようです。 多くの場合、私はこれを書くことを考えましたが、ここでアイデアが形になりました。 Mocapデータを扱う主要な段階がどのように発生するかを説明します。 興味のある方-カットへようこそ、慎重に、たくさんの写真(クリック可能)。


だから、あなたは会社の従業員であり、3Dとアニメーションをやっています。 会社の注文により、あなたのプロジェクトのために、キャラクターアニメーションを撮影し、データを送信しました(または、会社には独自のMokapスタジオがあります。

アニメーションファイルのセットがあり、ほとんどの場合、これらは最も一般的な標準の1つであるC3d拡張子を持つファイルです。

この規格は、撮影中に人体に固定されたコントローラーポイントのスペース内の存在を意味します。 これらのポイントは、キャラクターの骨をさらに参照するために不動のシステムを身体に配置するように取り付けられます(より正確には、骨はポイントに取り付けられ、システムの不動産は「条件付き」です。人体は非常に柔軟で、ポイントは筋肉外皮に配置されます)。 したがって、このようなシステムでは、必要なものを得るためにソフトウェアが平均化するオフセットがいくつかあります。
私の仕事では、Autodesk Motionbuilderパッケージを使用します。

モーションデータをインポートします。


画像1

Motionbuilderは、このファイルから何をインポートするかを尋ねてきます。


画像2

[インポート]をクリックして、画面を確認します。


画像3

青色でハイライトされたドットのセットがビューポートに表示されます-これらはマーカーポイントの座標です。 インターネットで検索する場合-マーカーをキャラクターに取り付ける方法に関する多くのレッスンを見つけることができます。簡単かつ迅速に言うと-「人形」が作成されます-アクター、割り当てに必要なすべての動きを含み、マーカーの位置から削除され、その後、アクター '動きはキャラクターにリダイレクトされます。 しかし、私たちは興味がありません。

受信したすべてのデータを確認する必要があります。機器が完全ではない、人的要因などは、データを受信する形式の合意に依存します。
私の場合、非難する人はいません。 射撃も私の責任です。

これは、このスキームの単純な一連の操作であるため、少しわかりにくいことがわかります。

シューティングキャプチャ->データ処理(クリーニング)->キャラクターに既に適用されているデータの処理と、その機能の微調整。

これは簡略図です。 2番目のポイント-クリーニングに興味があります。
だから、私は開いているデータを見て、すぐにいくつかの妨害を見る:


画像4


写真5

アニメーションのいくつかのセグメントの明るい点の雲の中で、点は暗くなります。 これは、何らかの理由で、現時点ではマーカーの位置に関するデータがないことを意味します。 原則として、これは、たとえば、ベルトの側面に取り付けられたマーカーが手で閉じられた場合によく起こります(画像5)。


画像6

このポイントを選択すると、対応するウィンドウに、このポイントの座標が3軸に沿って変化するグラフが表示されます。ポイントが灰色になる場所では、グラフは表示されますが、フィールドの色は表示されません。つまり、物理データがありません。 この場合、グラフはソフトウェアアルゴリズムの1つに復元されますが、アクターのデータ損失の時点では、この時点で位置に関する信号は受信されません。 Actorが現在配信されている場合、このポイントの欠如は、原則として、骨盤領域の制御されないねじれを与える可能性があります(私のアニメーションの1つでは、キャラクターが体を180ねじったため、見た目は楽しいですが、横棒です)。

さらに、ビデオでアニメーションを見ると、システムが光学式であり、画像処理アルゴリズムが特定のポイントで使用されているカメラを動的に変更できるため、いくつかのポイントが「痙攣」することがわかりました。 残念ながら、動画でこれを表示することはできませんが、そのような瞬間はアニメーショングラフに非常にはっきりと表示されます。


画像7

この場合、いわゆる「ピーク」はダウンします。
したがって、操作中にアイテム「クリーニング」が存在する主な理由は2つあります。 今何をしますか。

クリーニングにはいくつかの方法がありますが、それらについては説明しません。 モーションキャプチャーソフトウェアでは、通常、撮影直後に、ポイントのすべてのモーション図を確認し、体の動きがある場合は手動で復元する可能性があります、私の意見では、Motionbuilderでは、この作業はよりうまく、便利に、より速く行われます

それどころか、Motionbuilderの機能は、Mocapソフトウェアを使用して各フレームを手動で直接クリーニングするよりも適切でない場合があります。

そのため、このアニメーションブロックを消去する必要があります。
motionbuilderには、「剛体」を作成するマーカーポイントのグループに基づいた非常に便利な機能があります-剛体。 たとえば、頭の位置と傾きの原因となるマーカーは固定されており、ほとんどの場合、帽子または包帯です。 この場合、マーカーは1つのグループに移動します。 したがって、これは作成できるRigidBodyグループの一例です。


画像8

[リジッドボディ]タブの下部にある[追加]をクリックすると、次の図が表示されます。


画像9

選択したポイント間に、接続された幾何学的図形が形成されます。

さらに、類推により、背中、骨盤、上腕、下腕など、相対的に移動しないグループをグループに分ける必要があります。 主なことは、グループを一緒に接続しないことです。


画像10

これは、マーカーポイントのこのレイアウトを使用した場合の外観です。 便宜上、位置に応じてグループの名前を変更する必要があります。

なぜこれが必要なのですか? これらのグループにより、グループ内のポイントの位置を編集できます。 たとえば、骨盤のグループ、ポイントの1つが欠落しており、骨盤はそれぞれ全体のみで移動し、座標のないポイントは他のポイントと一緒に移動し、リジッドボディは、位置と「リジッドボディ」の位置の変更に基づいて、残りのポイントの後ろに位置を「ドラッグアウト」します。 さらに、これにより、単収縮ポイントの位置が調整されます。


画像11


画像12

これらの2つのグラフからわかるように、ポイントは2つの軸に沿って一度にひきつります。 重要! この時間間隔で、グループの他のポイントはぐいと動かず、身体の一般的な動きに従って動きます。 この瞬間を合わせるために、一般的なグループの位置に応じてポイントの位置を復元し、このセグメントを削除する機会を使用します:


画像13


画像14


画像15

画像から、Motionbuilderがグラフでギャップを埋めており、グラフは均一ではなく、残りのポイントの位置の変化に追従していることがわかります。 さらに、画面に赤い十字線が表示されたので、それに戻りますが、少し後で表示されます。

さらに、この種の他のジャム(不正なポイント変位)の場合、類推により:


画像16


画像17


画像18

そして今、この赤い十字線は何ですか?


画像19

画像からわかるように、グラフのブレーク時にクロスヘアが表示されます。これは、ポイントの理論的な位置(復元)があり、実際の位置ではない場合です。

ポイントの理論上の位置は、十字線の中心に円で表示されます(グラフが見えるように強調表示され、強調表示されていない場合、座標がないため、ポイントは暗い色で表示されます)。位置に。

縦枠の修正作業(クリーニング)が完了したら、必要なポイントを選択し、下の[マーカーアニメーションの再生成]ボタンをクリックして、リジッドボディを介して受信したすべてのデータをマーカーに「焼き付け」ます。 特定の状況に応じて、ポイントを選択して、一部またはすべてを一度にベイクできます。

ギャップフレームのグループからポイントの座標をベイク処理すると、次の図が表示されます。


画像20

再び、ポイントの古い位置と新しい位置が表示されますが、グループに関連付けられたポイントにはすでに実際の位置があり、アクターアニメーションで使用できます。

次に、ポイントを選択して追加の自動フィルターを適用できますが、特定のアルゴリズムとより多くのフィルターに従って機能することを忘れないでください。 人間の動きの不均一性の特徴は失われます。

この記事が誰かに役立つことを願っています。

追伸:インターネット上でこの編集とクリーニングの方法について言及されていますが、ついでに、理論的なタブを使用してプロセスを説明しようとしました。

UPD:光学マーカーシステムの使用例:



象の動きを撮影します。 光を反射する球体、マーカーが被写体に取り付けられています。 動きをキャプチャするとき、マーカーのあるオブジェクトは複数のカメラの視野内にある必要があります。 各カメラは赤外線スペクトルで撮影します。 各カメラには、レンズの周りに赤外線LEDが付いたリングがあります。 したがって、カメラごとに、側面のマーカーポイントが強調表示されます。

Source: https://habr.com/ru/post/J135755/


All Articles