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

Transform系変更のUndo/RedoがSync Bones in Edit Modeによって壊れる #839

Open
Sayamame-beans opened this issue May 4, 2024 · 0 comments

Comments

@Sayamame-beans
Copy link

(恐らく衣装/アバターのボーンのScaleが一致していない場合(衣装だけUnity上でArmatureのScaleが100など)や、Rotationが揃っていない場合などに起きていそうな感じがあります。)

Sync Bones in Edit Modeが有効のとき、衣装ボーンに対するTransform系変更処理(MAだとMove IndependentlyやMA Merge ArmatureによるボーンPos/Scale変更など)に対しUndo/Redoを行うと、衣装の位置がズレたり回転したりといった現象が複数回/複数人で観測されています。
再現の一貫性が微妙なのですが、ローカル座標系などの取り扱いに問題がありそう…?

例えばMerge Armatureでは場合、アバター=>オブジェクトの片方向追従が有効の状態で、衣装ボーン(HipsやSpineなど)の位置を動かしたり、回転させたりしたものをUndoすると正しくUndoされなかったりします。
衣装のArmature Scaleが100,100,100の場合にHipsボーンを動かし、Undoすると、Undo時にHipsのScaleが100,100,100に変更されたり…(元のHipsは1,1,1)
位置の場合はそれで、回転をUndoしようとした場合は回転自体はUndoされず、ただただScaleがおかしくなるように見えます。

(このような現象は"位置を~リセット"の実行によるTransform変更に対してのUndo/Redoでも発生する場合があります。)

この現象は、Undoを続けていって最終的に当該コンポーネントの付与がUndoされてコンポーネントが無くなったタイミングなどに正しいTransformに戻ります。
逆に言えば、コンポーネントの付与がUndo出来ない状態であると、Undoによる復元が不可能になる可能性があり、これは非破壊性の観点で大きな問題があります。その衣装以外に変更した箇所があった場合、その進捗を捨てて保存せずに再起動するか、その衣装GameObjectを消して入れ直すことになり得ます。

ref:
https://misskey.niri.la/notes/9svrt461q6
https://misskey.niri.la/notes/9slz3776gn
https://misskey.niri.la/notes/9su6g9c5jg

env:
Unity 2022.3.6f1
NDMF 1.4.0
MA 1.9.12

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

1 participant