Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VRMA] 指のロールについて #2095

Closed
TokageItLab opened this issue Jun 23, 2023 · 4 comments
Closed

[VRMA] 指のロールについて #2095

TokageItLab opened this issue Jun 23, 2023 · 4 comments

Comments

@TokageItLab
Copy link

VRM 1.0 では親指のロールが 90 度というように定義されています。

ただ、この 90 度というのは人体としては無理のある姿勢であり、アイドルアニメーションのような状態において、ロールは 45 度程度になるかと思います。これはモデリングの時も同じで恐らく最初からロールが 90 度の状態でモデリングを行う事はほとんどありません。

VRM 1.0 としては自然な親指の角度——例えば 45 度のロールでスキニングを行い、エクスポート時にのみロールを 90 度にした状態をレストポーズとしてモデルをエクスポートすれば定義を満します。ただしこの時、親指の根本のメッシュが乱れます。

glTF アニメーションを再生する事を考えると、レストポーズの親指のロールが 90 度でも、アイドルアニメーションの親指のロールが 45 度であれば親指のロールが再度 45 度になり、崩れた根本のメッシュが元に戻ります。

これらについては、以前記事を書かせて頂いたのでそちらも一読下さい。


問題となるのは Unity Humanoid Muscle では指のロールをアニメーションさせる事ができないために、このロジックが利用できなくなる事です。

Unity に合わせて glTF が本来表現できる指ロールのアニメーションを VRMA として破棄する事は考えられず、かといって、親指のロールを 90 度の状態でモデリング・スキニングするというのは先程も申し上げた通り人体的には自然ではなく、デザイナーからしてみるとかなり無理のある注文になります。また、glTF アニメーションで親指のロールを自然な状態にした時に逆にメッシュが崩れる事になってしまいます。

以下に Unity で指ロールをアニメーションさせるという記事がありますが、ControlRig 等にこのような指ロールの機能を持たせて提供する事が可能か(もしくはアニメーションシステムを独自に Uni-VRM の中に実装し、 VRMA は Unity Humanoid Muscle を利用しないようにする事が可能か)検討できないでしょうか。

@Santarh
Copy link
Contributor

Santarh commented Jun 23, 2023

UniVRM 実装において VRM は Humanoid による操作を必須としていません。
ただし、多くの Unity ユーザにとっては Humanoid を利用してリターゲットするのが慣れており、便利な手段です。
Humanoid で機能不足である場合、ご自身のユースケースに合わせたリターゲットシステムを選択または開発し、ControlRig を操作してください。
ControlRig は単なる Transform であるため、どのような回転操作も可能です。

既存のリターゲットシステムとしてたとえば Final IK が挙げられます。
https://assetstore.unity.com/packages/tools/animation/final-ik-14290

@TokageItLab
Copy link
Author

インポートされた VRMA アニメーションのトラックは、Humanoid トラックに変換されるのではなく全て ControlRig に対するトラックとなり、また指のロールも適切にアニメーションされるという事でしょうか。

アニメーションシステムを独自に Uni-VRM の中に実装し、 VRMA は Unity Humanoid Muscle を利用しないようにする

こちらが既に実現されているという認識で間違いないでしょうか。

@Santarh
Copy link
Contributor

Santarh commented Jun 23, 2023

はい、glTF アニメーションは HumanPose のアニメーショントラックには変換されません。
Transform のアニメーショントラックに変換されます。

VRMA はまだ実装途中のため変更される可能性はありますが、HumanPose のアニメーショントラックは Runtime に作成することが難しいため、おそらくその点でも HumanPose のアニメーショントラックになることは無いと思います。

あくまで Humanoid との関わりとしては
「Transform がアニメーションしたモデルから、HumanPose "も" 取り出すことができる」
という形になるかなと思います。


Unity の Animation システムの利用となるため「独自のアニメーションシステム」と呼べるものはないという認識です。

アニメーションシステムを独自に Uni-VRM の中に実装し

前述のとおり、利用することもできる、ということになると思います。

VRMA は Unity Humanoid Muscle を利用しないようにする

@TokageItLab
Copy link
Author

Unity の Animation システムの利用となるため「独自のアニメーションシステム」と呼べるものはないという認識です。

確かにそう言えますね。Humanoid を介さずにボーンへ Transform を適用できるのであれば問題ないと思います。

ご説明ありがとうございました。開発頑張って下さい!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants