LoginSignup
1
0

MixamoからOpenPoseに変換する

Posted at

anime2.gif

この記事はHoudini Apprentice Advent Calendar 2023 25日目の記事です。
ControlNetが登場してから、まだ1年も経っていないようです。信じられません。

生成AIで表現できる幅はControlNetの登場で大きく広がったように思います。
プログラムの主な作者はlllyasviel氏

ControlNetは、プリプロセッサが複数あり、Canny(キャニーエッジ検出)、Depth(深度)、OpenPose(ポーズ検出)、などのモデルを利用することができ、高品質な結果を作り出すのに役立っています。その中の姿勢制御でよく利用されるのがOpenPoseです。

最近はより精度の高いMagic animateも登場しましたが、とはいえまだまだOpenPoseは現役でしょう。
https://github.com/CMU-Perceptual-Computing-Lab/openpose

※ちなみにOpenPoseのライセンスについては注意が必要です。
OpenPoseやControlNetのソフトウェアライセンス関連のまとめ

さて、ComfyUIやAutomatic1111など、生成AIを使用するツールに入力するデータのOpenPoseのデータの調達に困ったことはないでしょうか?

確かにopenpose-editorや3D Openpose Editorなどさまざまなツールがありますが、基本的に静的データです。

openpose-editor
image.png

3D Openpose Editor
image.png

アニメーションされたOpenPoseは作り方として、Blenderで作成したり動画からOpenCVで解析したり など、方法はいろいろありますがアニメーション付けや編集が大変そうです。そこで今回はHoudiniを利用してKineFXを経由してMixamoからOpenPoseに変換します。

モデルの準備

モデルは、プロシージャルで作れればかっこいいですが、こればかりはスケルトンノードで手で作るしかありません。
image.png

大事なことは大体面倒なのです。
image.png

ちなみに、初めてOpenPoseのリグを見た時、ギョッとしました。
股はどこだよ!と、Rootどうするんだよ!と

Mixamoからデータをダウンロード

アニメーションデータから良さそうなデータをダウンロードします。
なんでも良いのですが、今回はカポエラをしている人にしました。
image.png
https://www.mixamo.com/#/?page=1&type=Motion%2CMotionPack

右上のダウンロードボタンを押してFBXを入手します。
image.png

KineFXでリターゲット

ノードはこう
image.png

hipファイルはこちら

ポイントは、OpenPose特有の線と点を利用するのに所々で必要なジオメトリを作成すること。
リターゲットは、、、正直骨の構造があまりにも違うので、膝のあたりはかなりきついです。
OpenPoseが逆V字型なので、足を広げているようですが、これが直立扱いなので
Mixamo側の足を広げると、リターゲット後のアニメーションで足がめちゃくちゃ広がってしまいます。
しゃがみモーションされたりすると、ぶっ壊れることがあります。
image.png

※注意:このネットワークでは、1フレーム目をMapPoint用に固定しているので、1フレームを
フレームを除外するか、固定したデータを別途保持してください。

レンダリング

アニメーションとして連番の静止画として出力します。
とは言っても、この素材はあくまでも最終出力のためのもののため、あまりレンダリング時間をかける余裕はありません。
何も考えずMantraでレンダリングすると、無駄に時間がかかってしまいます。と言ってもこんな素材にKarmaもオーバースペックです。
ビューポート出力のFlipbookも、下手をすると変な写り込みが入った状態で出力されてしまいます。

そんな時はOpenGLのROPを利用しましょう。
image.png

OUTPUTタブは連番の画像名を入力しておきます

$HIP/output/openpose$F4.jpg

image.png

OpenGLに対応していないシェーダーの場合何もマテリアルがついていない状態で出力されます。
openpose0003.jpg

今回は素直にプリンシプルシェーダーを利用して、出力します。
openpose0008.jpg

現状影が落ちてしまっているので、シャドウ無しのEnvLightを置きます。
これでまあまあ綺麗に出力されました。
image.png

最終的に必要なレンジ分を指定してレンダリングします。
image.png

これで高速に素材を生成できます。すでにアドカレの記事にもあるようにPDGやTOPと連携したら、より効率的に作品を量産できるでしょう。

生成AIの出力において、連続したアニメーションは2023年段階ではまだまだ低品質ですが、おそらく数年、下手したら来年には圧倒的な品質のアニメーションが出力できるようになるかもしれません。
生成AIの是非の議論は、法律や倫理観・学習データの権利など多くの課題はありつつも、成長していく技術を追いかけるのは非常に楽しいですね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0