vrm-c / vrm-specification

vrm specification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

TokageItLab opened this issue · comments

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 を利用しないようにする事が可能か)検討できないでしょうか。

どちらかと言えば Uni-VRM 側の問題なので vrm-c/UniVRM#2095 に立て直しました。