build後にvrm4u(vmc)の表情が変化しない #9

Closed
opened 2024-08-23 00:55:27 +00:00 by syui · 1 comment
Owner

修正

こちらのcommitで修正されたみたいです。

ba0c6a88ae

概要

editorでは動くのにpackage build後にvmcの表情が動かなくなる。vrmはあらかじめimportしておいたものを使用するゲーム形式。

なお、表情自体を動かせることは可能。mapのVRM4U_runtimeloadをbuildして確認。ただし、vmcで動いているかは未確認。また、runtimeloadとimportでmorph targetの処理が異なるかは不明。

editorで動いている通りに動くことを期待。

#408

環境

  • vrm4u 20240823, 20240516
  • ue 5.4.4
  • windows 64bit(AMD)
  • nvidia
  • vrm0, vrm1, 標準モデル(pixiv公式配布)
  • webcam motion capture(webcam) -> vseeface -> vrm4u(vmc)

手順

vrm4uでvrmをimportするとABP_Pose_$nameがついてくる。基本的にSKにセットされているので、編集すると反映される。ここにvmcの処理をいれる。vrmをimportしてできたmeta objectもセットします。なお、vrm0の場合はIgnoreLocalRotationにチェックを入れます。

なお、auto searchも入れておかないと表情がeditorでも動かなくなることがあるみたい。

手順の補足

やったことをまとめます。

  • vrm0とvrm1, 標準モデル(pixiv公式配布)で試してみた。全部表情は動かなかった。
  • vrm4u(vmc)にある様々な項目のチェックを外したり色々
  • ABP_Pose_$name以外のABPに書いた。でもABP_Pose_$nameで表情以外の動きは反映されているので意味はない。つまり、vmcの処理は行われているということ。
  • vmcはeditorとstandalone(or exe)の両方が起動しているときは動作しません。どちらかを落としましょう。

--> vrm4u(vmc)

name body face
vmc(client) 🟩 🟥
webcam 🟥 🟥
vseeface 🟩 🟥
xr-animator 🟩 🟥
webcam --> vseeface 🟩 🟥

webcam(vmc) -->

name body face
vmc(client) 🟩 🟩
vseeface 🟩 🟩
vrm4u 🟥 🟥
  • vmc(client) = virtual motion capture
  • webcam = webcam motion capture

動いているっぽい人

その他の問題

vrm4uのvmcはwebcam motion captureのvmcを直接指定するとなぜか動かない。vseefaceを介して送信したものを受信して動かしています。

vmc4ueのpatchを書いてue5.4でbuildしてみたところ、vmc4ueはwebcam motion captureのvmcを直接指定しても動きました。なお、表情は動きません。 #21

webcam motion captureがおかしいようにも思えますが、vseeface, virtual motion captureの2つを試してみたところ、正常にvmcを受信し動きました。

また、以前はXR Animatorで表情の動きを確認していましたが、新しい環境ではeditorで動作しなくなってしまいました。ただし、これはauto searchの有無と他pluginの影響らしいので、LiveLink, ARKit, AppleARKitFaceSupportあたりをいれると良いかしれません。確認は取れていません。

vrm4u 20240516でも確認してみましたがbuild後に表情が動きませんでした。

これは#406, #392を受けての確認となります。#406の修正でmorph target curveが動作するようになったので#392では修正されていなかったかもしれません。だとするとmeta objectを入れると動いたように見えるのは矛盾しています。このことから当時は動かせたのではないかと思いversionを戻して確認してみました。

#422にて、livelinkを使って表情を動かす方法を使っている人がいました。この方法は#livelinkに記載しました。

用語の解説

#406で修正されたのはランタイムロード、つまり、ゲーム起動後にvrmファイルをゲーム内にD&Dして読み込む形式だと思われる。つまり、ゲーム後に読み込むVRM4ULoaderとあらかじめインポートするVRM4UImporterは違うのではないかと思われる。

追記

20241001に情報を整理しました。いらない情報は一旦削除します。

waidayo, VrmPostingDesktopで動作確認できている模様。私はこの2つは使ってないので未確認。

ref

## 修正 こちらのcommitで修正されたみたいです。 https://github.com/ruyo/VRM4U/commit/ba0c6a88aedc0372841da1caa533de82d806e441 ## 概要 editorでは動くのにpackage build後にvmcの表情が動かなくなる。vrmはあらかじめimportしておいたものを使用するゲーム形式。 なお、表情自体を動かせることは可能。mapの`VRM4U_runtimeload`をbuildして確認。ただし、vmcで動いているかは未確認。また、runtimeloadとimportで`morph target`の処理が異なるかは不明。 editorで動いている通りに動くことを期待。 [#408](https://github.com/ruyo/VRM4U/issues/408) ## 環境 - vrm4u `20240823`, `20240516` - ue 5.4.4 - windows 64bit(AMD) - nvidia - vrm0, vrm1, 標準モデル(pixiv公式配布) - webcam motion capture(webcam) -> vseeface -> vrm4u(vmc) ## 手順 vrm4uでvrmをimportすると`ABP_Pose_$name`がついてくる。基本的にSKにセットされているので、編集すると反映される。ここにvmcの処理をいれる。vrmをimportしてできた`meta object`もセットします。なお、vrm0の場合は`IgnoreLocalRotation`にチェックを入れます。 ![](https://git.syui.ai/ai/ue/raw/branch/main/issue/screenshots/issue-9-0004.png) なお、`auto search`も入れておかないと表情がeditorでも動かなくなることがあるみたい。 ## 手順の補足 やったことをまとめます。 - vrm0とvrm1, 標準モデル(pixiv公式配布)で試してみた。全部表情は動かなかった。 - vrm4u(vmc)にある様々な項目のチェックを外したり色々 - `ABP_Pose_$name`以外のABPに書いた。でも`ABP_Pose_$name`で表情以外の動きは反映されているので意味はない。つまり、vmcの処理は行われているということ。 - vmcはeditorとstandalone(or exe)の両方が起動しているときは動作しません。どちらかを落としましょう。 ### --> vrm4u(vmc) |name|body|face| |---|---|---| |vmc(client)|🟩|🟥| |webcam|🟥|🟥| |vseeface|🟩|🟥| |xr-animator|🟩|🟥| |webcam --> vseeface|🟩|🟥| ### webcam(vmc) --> |name|body|face| |---|---|---| |vmc(client)|🟩|🟩| |vseeface|🟩|🟩| |vrm4u|🟥|🟥| - vmc(client) = `virtual motion capture` - webcam = `webcam motion capture` ## 動いているっぽい人 - https://github.com/ruyo/VRM4U/issues/406 - https://github.com/ruyo/VRM4U/issues/392 ## その他の問題 vrm4uのvmcは`webcam motion capture`のvmcを直接指定するとなぜか動かない。vseefaceを介して送信したものを受信して動かしています。 `vmc4ue`のpatchを書いてue5.4でbuildしてみたところ、vmc4ueは`webcam motion capture`のvmcを直接指定しても動きました。なお、表情は動きません。 https://git.syui.ai/ai/ue/issues/21 `webcam motion capture`がおかしいようにも思えますが、`vseeface`, `virtual motion capture`の2つを試してみたところ、正常にvmcを受信し動きました。 また、以前は`XR Animator`で表情の動きを確認していましたが、新しい環境ではeditorで動作しなくなってしまいました。ただし、これは`auto search`の有無と他pluginの影響らしいので、LiveLink, ARKit, AppleARKitFaceSupportあたりをいれると良いかしれません。確認は取れていません。 `vrm4u 20240516`でも確認してみましたがbuild後に表情が動きませんでした。 これは[#406](https://github.com/ruyo/VRM4U/issues/406), [#392](https://github.com/ruyo/VRM4U/issues/392)を受けての確認となります。`#406`の修正で`morph target curve`が動作するようになったので`#392`では修正されていなかったかもしれません。だとすると`meta object`を入れると動いたように見えるのは矛盾しています。このことから当時は動かせたのではないかと思いversionを戻して確認してみました。 [#422](https://github.com/ruyo/VRM4U/issues/422)にて、livelinkを使って表情を動かす方法を使っている人がいました。この方法は[#livelink](https://git.syui.ai/ai/ue/wiki/vmc#livelink)に記載しました。 - [vrm0とvrm1の最近の事情](https://git.syui.ai/ai/ue/issues/23) - [vrm4uでbuild後に髪の毛が動かなくなったときの話](https://git.syui.ai/ai/ue/issues/24) ## 用語の解説 `#406`で修正されたのはランタイムロード、つまり、ゲーム起動後にvrmファイルをゲーム内にD&Dして読み込む形式だと思われる。つまり、ゲーム後に読み込む[VRM4ULoader](https://github.com/ruyo/VRM4U/tree/master/Source/VRM4ULoader)とあらかじめインポートする[VRM4UImporter](https://github.com/ruyo/VRM4U/tree/master/Source/VRM4UImporter)は違うのではないかと思われる。 ## 追記 `20241001`に情報を整理しました。いらない情報は一旦削除します。 waidayo, VrmPostingDesktopで動作確認できている模様。私はこの2つは使ってないので未確認。 - https://x.com/ruyo_h/status/1842347337647325498 ## ref - https://github.com/ruyo/VRM4U/issues/406 - https://github.com/ruyo/VRM4U/issues/392 - https://note.com/vistan/n/n50bb8ea271f0 - https://help.vicon.com/space/Unreal5Plugin16/14713547/Install+and+set+up+the+LiveLink+plugin
syui closed this issue 2024-08-23 23:34:31 +00:00
syui reopened this issue 2024-08-24 01:20:12 +00:00
syui closed this issue 2024-08-24 01:21:04 +00:00
syui reopened this issue 2024-08-30 02:11:53 +00:00
syui closed this issue 2024-09-22 11:49:24 +00:00
Author
Owner

コードを見てみることにした。ポイントとしてはeditorでは動くmorph target(curve)がbuild後に動かなくなるというもの。

#if WITH_EDITOR
// エディタ専用のコードをここに記述
#endif

#if UE_VERSION_OLDER_THAN(5,4,0)
// UE 5.4.0より古いバージョンで実行されるコード
#else
// UE 5.4.0以降のバージョンで実行されるコード
#endif
コードを見てみることにした。ポイントとしてはeditorでは動く`morph target(curve)`がbuild後に動かなくなるというもの。 ```cpp #if WITH_EDITOR // エディタ専用のコードをここに記述 #endif #if UE_VERSION_OLDER_THAN(5,4,0) // UE 5.4.0より古いバージョンで実行されるコード #else // UE 5.4.0以降のバージョンで実行されるコード #endif ``` - https://github.com/ruyo/VRM4U/commit/2909a96ab1b66e02a210f1e8070c2829a294fb3 - https://github.com/ruyo/VRM4U/commit/27c92c686079e5499569c6175cd38ecaba324c59 - https://github.com/ruyo/VRM4U/blob/cfc04c88db119e50ca006c9da9b9c3337a37f9bc/Source/VRM4UCapture/Private/AnimNode_VrmVMC.cpp#L138-L164 - https://github.com/ruyo/VRM4U/blob/27c92c686079e5499569c6175cd38ecaba324c59/Source/VRM4UCapture/Private/AnimNode_VrmVMC.cpp#L97-L283
syui reopened this issue 2024-09-26 04:32:36 +00:00
syui closed this issue 2024-10-07 00:54:12 +00:00
Sign in to join this conversation.
No Label
No Milestone
1 Participants
Notifications
Due Date
No due date set.
Reference: ai/ue#9
No description provided.