saturday06/VRM-Addon-for-Blender

要望: VRM0→1.0への変換でBlendShapeをExpressionとして変換する

Bancho29 opened this issue · 2 comments

#435 でissueを作りましたが、#435 (comment) で指摘されましたので、
改めてissueを作成いたしました。

バグじゃないけどアドオンの動作でなにか困ってることがあれば

VRM0から1.0への変換が実装されて時間が経ってますが、
VRM0のBlendShape が1.0のExpression として変換されない。

新たに設定する形になるので、結局UniVRMで変換したほうが早い状況になっています。

どう動いてほしいかをどうぞ

標準のBlendShapeはそれに合わせたExpressionに、
ユーザーが追加したBlendShapeはそのままの名前でExpressionに変換して欲しい。

イシュー分割のご協力ありがとうございます。また、ご要望ありがとうございます。

標準のBlendShapeはそれに合わせたExpressionに、
ユーザーが追加したBlendShapeはそのままの名前でExpressionに変換して欲しい。

VRMのバージョンを0→1に変更した時に0のデータを1のデータに変換して欲しいと言うご要望という認識です。

このアドオンでは、0のBlendShapeと1のExpressionを両方のデータを同時に保持しています。0→1に変更した際、すでに1のExpressionのデータが存在した場合、素朴な実装だと元のデータは上書きすることになると思いますが、それだと1固有の機能を使ったExpressionが勝手に上書きされて使えなくなる感じがして厳しめです。

また、VRMのバージョンを変更した際に毎回「BlendShapeをExpressionに変換しますか?」っていう確認ダイアログを出す方法も考えられますが、それもちょっとユーザーからすると、「ボタンを押し間違えるとせっかく設定したExpressionが消える可能性がある」というダイアログを毎回見せられるという意味で負荷が高いと思います。

そのため、UI的にひと工夫が必要だと思うのですが、何か良いアイデアがあれば教えていただきたいです。

VRM 1系ではExpressionのオーバーライドがあるもののVRM 0系には無いため、BlendShapeを異なった値に調整する場合が確かに起こりえると思います。

提案

アドオンでのVRMバージョンを変更した際に変換ダイアログを発生させるのではなく、VRMバージョン間の値のコピーを行えるボタンを用意しておくと良いのかなと思いました。