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

コンストレイントをサポートしてほしい #6

Closed
m-sigepon opened this issue Aug 5, 2019 · 8 comments · Fixed by #188
Closed

コンストレイントをサポートしてほしい #6

m-sigepon opened this issue Aug 5, 2019 · 8 comments · Fixed by #188
Assignees
Milestone

Comments

@m-sigepon
Copy link

m-sigepon commented Aug 5, 2019

VRMの仕様に関する議論が分かれたようなのでこちらに移します。
vrm-c/UniVRM#50

現在、VRMではSpringBoneによる揺れ物をサポートしていますが
それと同じように、拡張情報としてVRMでコンストレイントをサポートしてほしいです。
すでに、頭部などでLookAtとして特定の部位に対して実装されていると思います。
これを、セカンダリのように任意のジョイントに設定できる機能が欲しいです。
例えば、使いたい場所として体の、肘ボーンや膝ボーンやねじれ防止のツイストボーンをコンストレイントで追従させるというような箇所です。
それ以外にも、衣装の一部を連動させて動かしたいなどにもコンストレイントが可能になるとウェイトのみで処理しないといけない部分の問題が解決します。

サポートしてほしいコンストレイントとしては、Unity標準でサポートされているような以下のコンストレイントになります。
https://docs.unity3d.com/Manual/Constraints.html
・方向コンストレイント(Aim Constraints)
・位置コンストレイント(Position Constraints)
・回転コンストレイント(Rotation Constraints)
・スケールコンストレイント(Scale Constraints)

@hiroj
Copy link
Contributor

hiroj commented Nov 29, 2019

VRM1.0にてConstraintを追加する予定です。
詳細仕様や実装についてはこれから検討致します。

@hiroj hiroj added this to the v1.0 milestone Nov 29, 2019
@ghost
Copy link

ghost commented Nov 29, 2019

コンストレイントサポートありがとうございます
宜しくお願いいたします。

@m-sigepon
Copy link
Author

m-sigepon commented Dec 11, 2019

#71 (comment) でコメントしたのですが、コンストレイント制御は動的にアクセスしてその設定を変更できる仕様になっていてほしいです。
例えばアタッチ先などが動的に変更できなどの仕様となります。

@hiroj hiroj added this to In progress in VRM Working Group May 12, 2020
@hiroj hiroj moved this from In progress to To do in VRM Working Group May 12, 2020
@s-iwaki-d s-iwaki-d moved this from To do to Next Discussion in VRM Working Group May 21, 2020
@hiroj hiroj self-assigned this May 21, 2020
@hiroj hiroj moved this from Next Discussion to In progress in VRM Working Group May 21, 2020
@hiroj
Copy link
Contributor

hiroj commented Jun 3, 2020

VRMとしてはhips以外は移動せず回転しかしないため、回転コンストレイントのみを仕様として組み込むのが良いかなと思うのですが、想定されている用途としては回転のみだと不十分でしょうか?
#71 (comment)
こちらのコメントに書いていただいた、武器を持たせたりアタッチ先を動的に変更する等は、VRMの仕様というよりもアプリケーションの実装に任せた方が良いかなと考えています。

@ghost
Copy link

ghost commented Jun 4, 2020

用途を整理してみたいと思います
以下は、アバターを作る上でほしいコンストレイントになります。
よく使うコンストレイントですね。
■回転コンストレイント
・肘、膝ボーンなどを、中間位置に向かせるために利用、ねじれ回避ボーンなども
■Aimコンストレイント(LookAtからAimに訂正)
・Tシャツの袖にボーンを設定して肘をターゲットにして向きは追従するけど袖そのものは回転しないのに利用

■位置コンストレイント
例えば、アタッチはアプリケーション毎に実装するというのは分かるのですが、
共通規格としての、位置コンストレイントが欲しいなと感じます。
例えば、Unityの位置コンストレイントを使って鞘を越しにつけたり刀を手に持ったりするアバターがいたとして、それをUE4に持っていったときにそのアバターのコンストレイント情報はVRMに保存できなかったら、コンストレイント情報を復元できません。
UE4でも、同様のコンストレイント情報を元に刀を持たせることができる。
そのために、キャラクターそのものに位置コンストレイントの情報をもたせれるようになっていると、プラットフォームやアプリを跨いだ情報の同期が取れると考えております。
如何でしょうか。
■スケールコンストレイント
こちらも同様になります。
情報として同じ情報を保持できるという目的です。

回転、位置、スケールはトランスフォームの基本要素なので、セットとして考えて頂けると嬉しいです。

その上で、その情報をどういうふうに扱うかはアプリによると思います。

@0b5vr
Copy link
Contributor

0b5vr commented Jun 4, 2020

回転・LookAtについて、実現可能性を検討の上、次回再び議論します。
位置・スケールについて、社内で議論した上、次回再び議論します。

@ghost
Copy link

ghost commented Jun 5, 2020

LookAtコンストレイントは、Z軸固定という仕様を見逃しておりましたので上位互換であるAimコンストレイントに訂正しました。

https://docs.unity3d.com/ja/2018.4/Manual/class-LookAtConstraint.html

Look At は、Aim Constraint の簡略バージョンです。Aim Constraint では、ソースゲームオブジェクトを照準する軸を選択できますが、Look At Constraint では常に Z 軸です。

@0b5vr
Copy link
Contributor

0b5vr commented Nov 17, 2020

スキーマ #144 がマージされました。引き続き、仕様についての議論を #188 で進行しています。

VRM Working Group automation moved this from In progress to Done Mar 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging a pull request may close this issue.

3 participants