見出し画像

複数モーショントレースに挑戦

初めて挑戦してみたBravaのモーショントレース。

モーションファイルの出力には成功したのですが、奥行きのあるスタジオの奥から手前まで活かした前後の動きの幅が大きいモーションであったため、奥の部分が、MMDでは高さに変換され宙に浮いている形に…。
その修正方法もあるのですが、自分が理解できてない、という…。

結局、Bravaの奥行き問題は解決しないまま、あまり奥行きのないダンスモーションなら何とかごまかせるんじゃないか、と全然、根本的な解決にならないことを考えました。

ワン・イーボーのゲームキャプチャ用のモーションの動画があったはず、と探してみたのですが、固定カメラのものはありませんでした;;

5人神起のWrong Numberトレースに挑戦

で、原点に戻って東方神起の「Wrong Number」に挑戦してみました。

印象的なMVがある曲なのですが、ダンスバージョンもあり、ほぼ固定カメラ(ズームはある;;)なのです。

東方神起には珍しく、バックダンサーも後の方でしか入りませんし、ポジションチェンジもまろやかです。

この曲も好きで、一度、別の曲のモーションを当ててMMDを作ったことがあります。

ポジションチェンジが複雑でダンスがダイナミックなMiroticやバックダンサー込みのWhyのトレースした人、本当にすごいとおもう。

こちらはバックダンサー3人に絞って5人で踊らせています。

まあ、せっかくやるのだから、5人分のモーション一気に取ろうと…。

昼過ぎに着手しようとしたのですが、

GPUバックエンドに接続できません
Colabでの使用量上限に達したため、現在GPUに接続できません

のメッセージが…。
昨夜の作業を終えてから12時間以上たっていたけど、まだだめなのね~。

結局、午後6時頃からの作業になりました。

5人分のモーショントレースというと、あのややこしい人物追跡のインデックスを5人分作る、ということです。

ただ、今回は、ファイルを分割して前半のほぼバックダンサーが入らない部分なので、トレースをする5人だけ。結構、もつれ合う場面が少なく、作業しやすかったです。

まあ、贔屓でまずはジェジュンから。ジェジュンってダンスは結構、後ろや隅に追いやられていることが多くて、色々絡んで大変でしたが、その後のメンバーが楽でした;;

それでも5人分追跡すると、しまいに朦朧としてきました。

このソフトの難点は12時間以内に作業をおわらせなければいけない、ということですね~。

午前2時頃、やっとインデックスの作成を終えて、インデックスを指定し、

⑥-C 人物追跡指定

を実行したのですが、

NameError Traceback (most recent call last)

<ipython-input-2-c3539055fdb3> in <module>()
     32 
     33 order_data = [order_1, order_2, order_3, order_4, order_5, order_6, order_7, order_8, order_9]
---> 34 order_file_path = f'{process_img_dir_path}/order.csv'
     35 
     36 with open(order_file_path, 'w') as f:

NameError: name 'process_img_dir_path' is not defined

というエラが出てしまいました;;

長時間放置したからかな?

最初からやり直すには時間がないし、あした再挑戦して、今日作ったインデックスで試してみよう…。

3月9日、仕切り直し。

インデックスがほぼ同じだったので昨日作成したインデックスを指定すると今度はうまくいきました。

INDEX1がジェジュン、2がユノ、3がジュンス、4がユチョン、5がチャンミンと、ちゃんと一連のモーションがつながっていました。

で、モーション出力に挑戦したのですが、途中で止まってしまいました。

今回、切りのいいところで、と欲張りすぎて、ファイルが2分16秒と長めになり、自動トレースのところで2回めの「ディスク残量がわずかです」エラーが出ていたので、そちらが原因かと。

もう一度分割しなきゃいけないかな。分割して別ファイルになったら、またインデックス変わっちゃうのかな?

ファイルを分割して再挑戦

コロナの3回目のワクチン受けたり、次の日、それで寝込んだりで、やっと3月12日に再挑戦。

今回はファイルをほぼ半分の1分12秒に分割。

ファイルを半分の1分にするとトレース実行時間もほぼ半分の1時間弱でした。

インデックス指定は、頭同じだし、同じインデックス番号、来い!と思ったのですがそれはなく、それでも、インデックスの着くシーケンスは一緒なので、以前に表計算ソフトで作ったインデックス表のインデックス番号を書き換えるだけでよく、フレーム番号はほぼそのまま流用できました。

それでも5人分だと相応に時間がかかり、

⑥-C 人物追跡指定

を実行しようとすると、

GPUバックエンドに接続できません
Colabでの使用量上限に達したため、現在GPUに接続できません

エラーが出てしまいました。

追跡指定タイマーを使ってみたらいいのかもしれないけど、いつも忘れてしまう…。

また明日、再トレースして、今日作ったインデックス入れてみるか~。

体感では作業開始してから24時間たつと、またGPUが使えるようになる感じです。

今まで夕方から作業することがおおくて夜中までかかってばててましたが、今日は昼過ぎから始めたから、ちょいと前倒しにできるかな~。

モーション出力でエラー

3月13日。
日を改めて、再挑戦。昨日、作成したインデックスとずれてないようなのでそのままGO。

⑥-C 人物追跡指定

は、うまくいったのですが、確認するとユノの最後のシーケンスが落ちていました。インデックスコードを見ると、マクロを1つ実行していなくてカンマの後にスペースが入っていて、その後を認識していませんでした。

インデックスを手直しして再度実行。

今度はモーション出力までこぎつけました。

でも、1時間32分36秒の段階で

GPUバックエンドに接続できません
Colabでの使用量上限に達したため、現在GPUに接続できません

エラーが出てしまいました。

5人分ですと5人分x5のファイルを出力することになり時間もかかるようです。

明日は、ジェジュンの分だけ試してみるぞ、っと。

一人分ずつ3人までモーション出力に成功

3月14日。
今日はジェジュンの分だけモーション出力することに専念することにしました。

インデックスはジェジュン1人分だけ指定。

【セル⑥-D】 追跡指定実行に10分11秒
【セル⑥-F】 モーション出力に22分13秒

無事、モーション出力できました~。うるうる。

そのまま、今度はユノのインデックスで追跡指定。
インデックスの2行目に指定したのですが、枠はインデックス0になっていました。

【セル⑥-D】 追跡指定実行に10分7秒
【セル⑥-F】 モーション出力に24分35秒

インデックスが同じだとモーションファイル上書きされるのではないかと心配したのですが、出力時間でファイル名を生成するので問題なく別ファイルでした。

3人目のジュンス分

【セル⑥-D】 追跡指定実行に9分59秒
このセルを開始して2分後くらいに「まだ操作中ですか?」とメッセージが出て、「私はロボットではありません」というメッセージのチェックが必要でした。
前はこのメッセージが出てしばらくしてからエラーで停止したのでびびりましたが、出力まで完走。
【セル⑥-F】 モーション出力に23分19秒

4人目のユチョン分

【セル⑥-D】 追跡指定実行開始から26秒でランタイムエラーが出ました。

でも、これでとりあえず5人中、3人のモーションゲット。あと2人分も1回で済みそうです。

とりあえず動いた~

とりあえず何も考えず、何も修正せず、モデルに生成されたモーションを流し込んでみました。

あまりめりこんでおらず、らしいシーン
フレーム数で見るとこのシーンかな?インデックス0枠がついているのがジュンス

何度かズームアップ/アウトが入る関係か、宙に浮いたり、地面に半分のめり込んだりと大変ではありますが、意外と、ぶつかり合わずにポジションチェンジをしているようで偉い!

5人そろった

3月15日、残りのユチョンとチャンミン分のモーションも出力しました。

ユチョンのモーションは最初、8分17秒で出力されたので、これだけ随分速いなと思ったのですが、次のチャンミンの出力作業をしていて、ユチョンのときに、手モーション出力・表情出力にチェックを入れてなかったことに気が付きました。
それで再度、出力し直すと24分38秒でした。

それで出力されたままのモーションファイルを5人のモデル全員に流し込んでみました。

ときどき、瞬間移動したり、衝突したりしていますが、おおむね、雰囲気が出ています。

ここのところですね。

出力されたモーションファイルで踊らせてみた



まとめ?

  • トレース元動画は長くても1分前後に(これで人物推定1時間前後)

  • 複数モーションを1度にトレースしても、インデックス追跡とモーション出力は1人ずつした方がエラーが出にくい(追跡実行10分前後、モーション出力20分前後)

この記事が参加している募集

やってみた

この記事が気に入ったらサポートをしてみませんか?