IKリターゲッタによるプレビューアニメーションとエクスポート後のアニメーションが異なる

Unreal Engine 5.3.2

こんにちは

[目的]
Advanced Locomotion Systemのアニメーションをリターゲティングして使用したいです。

[詳細な説明]
Vroid Studioで作成したVRMファイルをVRM4Uプラグインを使用してプロジェクトにインポートしました。
IKリターゲッタでは、UE4MannyQuinnのIKリグアセットをソースに登録して、ターゲットにはVRMモデルから手動で作成したIKリグアセットを登録しています。
また、Advanced Locomotion Systemを使用してプロジェクトを作成したため、プレビューメッシュはAnimMan(青い人)になっています。

・IKリターゲッタの画面

IKリターゲッタのプレビュー画面や、 Retarget Pose From Mesh ノードを利用したランタイムIKリターゲティングにおいては、正常にアニメーションが動いています。

・ランタイムIKリターゲティング
image

・IKリターゲッタのプレビュー画面

しかし、このアニメーションをエクスポートすると、おかしなアニメーションになってしまいます。

・エクスポートしたしゃがみ状態のアニメーションシーケンスを開いた画面(キャラクターが地面から浮いてしまっている)

VRM4Uを用いてVRMモデルをインポートする際に、"Generate renamed humanoid mesh"と、"Generate IK Bone"をTrueにしています。そのため、ボーンの構造がUE4マネキンに近い状態になっています。

また、Bone Snapperというプラグインを以下のブログを参考に入れています。
UE5 で 取り込んだ VRM のIKボーンが動いてくれない問題の対応 - Unreal Engine - | 真夜中の歌声 (mayonakanouta.com)

・VRMモデルのIKリグ画面

・Bone Snapperプラグインの設定画面

フォーラムやReddit、Xなどで類似のトピックをいくつか発見しましたが、どれも解決に至っていなかったため、質問させていただきました。
かなり時間をかけて調べたり、試行錯誤を行ったつもりですが、これ以上は皆目検討がつきません。
なにか少しでも良いので分かる方がいらっしゃいましたら、どうかご教示のほどよろしくお願いいたします。

1 Like

確認なのですが、
VRM→UEにインポート→UE上でリターゲット→UEからエクスポート→使用する
ということをしたいのでしょうか?
それでしたら、ブログによるところリターゲティング時にIKボーンがリターゲティングされないため、無理だと思います

また、以下の現象はあなたの環境でも起きていますか?

貴重なお時間を割いていただきありがとうございます。
ご指摘いただいたことを踏まえて、改めて確認いたしました。

・IKリターゲッタのプレビュー画面

・エクスポート後のアニメーションシーケンス

2つの動画を確認すると、どうやらIKボーンは動いているように見えます。
一方で、キャラクターの足元から腰にかけて真上に伸びているRootボーンは、エクスポート後のアニメーションシーケンスにおいて全く動いていないようです。

ここで、ブログの以下の記述が思い当たります。


Bone Snapperの設定を以下のようにしていたため、Rootボーンが固定されてしまっているのではないかと考えました。

InPlaceをfalseにしたり、RootSnapBoneNameに他の様々なボーン名を書いてみたり、Bone Snapperプラグイン自体を消してみたりと試行錯誤を重ねましたが、エクスポート後のアニメーションでは依然Rootボーンが固定されたままでした。

Rootボーンが動かない原因について考えるために、Third Personテンプレートに付属しているUE4マネキン→UE5マネキンへのリターゲッタと、UE5マネキンのIKリグを利用してアニメーションのエクスポートを行ってみました。
・UE5マネキンへリターゲティングし、エクスポートしたアニメーションシーケンス


Rootボーンが動いていることを確認できたため、以下のようにメッシュだけをVRMモデル(霊夢)に置き換えてみました。

・プレビュー画面(Rootボーンの伸縮が確認できます)

・エクスポートしたアニメーションシーケンス

例によって、エクスポートするとRootボーンが動かなくなってしまいました。

UE5マネキンはエクスポート後も正常にアニメーションしていたため、VRMモデルに原因があると考えられます。

Rootボーンの動かし方について何か分かる方がいらっしゃいましたら、ご教示いただければ幸いです。

Root Snap Bone Name に 「Root」を指定すると、Rootが求められると思うのですが、霊夢にRootってありますかね?
マネキンはRoot直下にPelvisがあります

解決しました。
原因はUnreal Engineではなく、DCCツールであるVroid Studioにありました。
そのため、もしこのフォーラムにおいて記載することが不適切であれば消します。

まずご指摘の件ですが、スクリーンショットだと見切れていましたが、Pelvisボーンの親にRootボーンがありました。
ボーン構造については特に問題は無かったようです。

結論から述べれば、Vroid Studioでキャラクターのモデルを作成する際に、"新規作成"ではなく、"サンプルモデル"を開き、それを上書きする形でキャラクターを作る必要があります。

・経緯
霊夢に対するリターゲティングについてはこれ以上打つ手が無かったため一旦諦めて、他のVRMモデルで試してみることにしました。
インターネット上で配布されているVroid Studio製VRMモデルをインポートしてリターゲティングを試したところ、うまくいきました。
よって原因は自作のVRMモデルにあると判断し、Vroid Studioの"新規作成"で適当なキャラクターモデルを作成し、エクスポートしたものをUnreal Engineにインポートしました。
そのモデルにリターゲティングを試すと、以前と同様にRootボーンだけが動かない現象が発生しました。
一方で、Vroid Studioのサンプルモデルをそのままエクスポートし、そのリターゲティングを試すとうまくいきました。

私はVroid Studioにも詳しくないため、もしかするとキャラクターの作成時に、Unreal Engineで動かすための設定等があるのかもしれません。
対処療法的ではありますが、サンプルモデルから上書きする形で作成したキャラクターモデルであれば、正常にリターゲティングされることを確認しました。

・エクスポート後のアニメーションシーケンスでRootボーンが動いている様子

いくら検索しても分からず、諦めかけていたところでしたが、kiruru002さんのお陰で解決することができました。
本当に感謝しております。
ありがとうございました。

3 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.