modular-avatar
modular-avatar copied to clipboard
Merge Armature及びBone Proxyで位置がずれる
Modular Avatar 1.9.13
体型調整のためにスケールと角度を調整したボーン(胸ボーン等)において、Playすると位置がずれる。
- 素体ボーン側
- スケール調整
(1.24, 1.08, 1.24)がされている
- スケール調整
- Merge ArmatureまたはBone Proxyで結合する衣装側
- 素体とは異なるスケール
(1.26,1.11,1.24)になっている - 素体と一致しない回転がある
- 素体とは異なるスケール
少なくともこの場合、エディタ上とPlayで位置がずれて結合される。
逆算しがたいのでユーザー側では修正が困難です。
スケール調整はScale Adjuster?それともTransformに直接いじった?
非均等のスケールは回転次第でシアーが発生して位置がずれたりすることがある(ボーンを移動した場合は移動してないのと同じ挙動を再現できない)。回避するためにはScale Adjusterで調整することを推奨しています。
Transform直接いじりですね。 少なくとも素体ボーン側をTransform直接いじりで長年やっておりこちらは今更修正困難なんですが、衣装側のみにScale Adjusterを使用する場合1,1,1からやるべきか、あるいは素体ボーンと同一スケールから差分をScale Adjusterで調整すべきでしょうか?
拙ツールではオブジェクトをネストして回転やスケールがかかる逆順に逆変換をかけて戻すみたいなことを行ったりしました https://github.com/Narazaka/BreastPBAdjuster/blob/master/Editor/BreastPBAdjusterPlugin.cs#L48 が、Merge Armatureはそういったオブジェクトを追加したりせずにボーンを結合するだけなので困難と言う感じかな……
あと別件ではあるんですが、Scale Adjusterでの調整はTransformでの調整と結構挙動が違うと感じます。 場合によってはほとんどスケールが変えられない場合もあり、Transformでの調整でないと再現不可能な場合もあります。 なんというかこの乖離は何によって生じているんでしょうか?
実際今回もScale Adjusterでは満足な調整が出来ない気がします……
またユーザー的には挙動がちょっと自明ではないので、ズレるケースについてドキュメントに書いてあったりすると良いと思います
Scale Adjusterは子オブジェクトに適用されないのが主な違いですね・・・
しかし「Merge Armatureはそれぞれのボーンを入れ子にする(と同等なことをする)」という仕様なので、その挙動からずれているかが気になるところです。渡せるプレハブで再現できますか?
Scale Adjusterを親から全ての子につけて同じ値を設定しても同義にはなってない気がします……?
ならないですね・・・
ん…? これPR紐づけでcloseされてますが別issueでは? (偶然気付いた)