alloystorm / dvvr

A versatile character model viewer and motion player that supports a range of model and motion formats including PMX (MMD) & XNALara/XPS models, as well as VMD/BVH motion formats.
http://vrstormlab.com/
76 stars 2 forks source link

Changed behavior of Motion Settings->Pose Adjustements since 2024.8 #359

Closed AlexECX closed 6 days ago

AlexECX commented 2 months ago

(I'm going to post a couple of issues, so I just want to add that I really like this app 😊)

Bug: Changed behaviour of Actor->Motion Settings->Pose Adjustments since 2024.8

Previous post #### Center Position and Center Rotation Before this setting would adjust the center body position of the model without moving extremities (hand/feet stay in place). Now it seems to do the opposite. Move everything (not practical) except some parts like butt cheeks, boobs, skirts staying behind and getting stretched. This current iteration, even if it wasn't bugged, just does what Scale&Offset does and isn't useful. To Reproduce: https://github.com/user-attachments/assets/315f42b6-d83a-41de-a38d-749e071449ca #### Limb Rotation Moving an upper part of a limb used to move every lower parts of it (ex. moving shoulder also moves arm+forarm+etc, moving forarm also moves hand). Now it only move that specific part of the limb while leaving the rest static. This doesn't work well on some models where I guess the target bones for rotation have gaps between them. ![image](https://github.com/user-attachments/assets/d9a24919-d87b-4850-819e-73bcaa81d562) On models that don't have the gaps, it won't create those weird bends but it's still not ideal and can result in weird twists. Also since fingers also are a lower part but don't have an adjustment slider, they will always point in their original direction and won't follow the hand adjustment

(Edit post access to multiple versions)

Center Position/Rotation

Before this setting would adjust the center body position of the model without moving extremities (hand/feet stay in place). Now it seems to do the opposite. Move everything (not practical) except some parts like butt cheeks, hair, boobs, skirts staying behind and getting stretched. This current iteration, even if it is intended, just does what Scale&Offset does and isn't useful.

Limb Rotation

When using a VMD motion, moving an upper/parent part of a limb used to move every lower/child parts of it (ex. moving shoulder also moves arm+forarm+etc, moving forarm also moves hand). Now it only move that specific part of the limb while leaving the rest static.

Motion + model used: zip.zip

Screenshots (2024.7 vs 2024.9)

https://github.com/user-attachments/assets/931f0695-a650-4c0c-aa20-49495b230646

https://github.com/user-attachments/assets/2f1dc316-a165-4a4c-8e97-773eab330042

Desktop (please complete the following information):

Additional context I first found this problem this problem after updating when I tried to load a scene I had just made (before updating). Models were not in their adjusted position and different parts/limbs were stretched/crooked. If this implementation stays then all of my saved scenes need to be reworked :/

alloystorm commented 2 months ago

Can you upload the model and motion so we can verify if this is fixed in 2024.9?

AlexECX commented 2 months ago

@alloystorm any model will do, heres a Miku model you can try.

Just load the model, use any motion (including default idle) then in the actors panel change Motion Settings->Center Position->X to a non-zero value, or any Motion Settings for that matter.

alloystorm commented 1 month ago

Thanks we'll take a look.

With the new motion system introduced since last release some of the old settings are broken. But we might not fix everything because some of them might no longer be needed.

The settings here was originally designed finetune the model's standard pose to allow animations to work as intended but we now think it's better to these adjustments in the motion settings (for the animation) instead. There you can choose to switch to T pose or specify a custom arm angle. And there's center position adjustment too.

AlexECX commented 1 month ago
Previous reply, not really relevant post edit Do you mean either of those settings tab? ![image](https://github.com/user-attachments/assets/4e35288e-eee8-481a-a76f-3c5f75f40052) ![image](https://github.com/user-attachments/assets/63d7bb20-ceef-47c2-8c7a-4b6c1e8e8496) Because it allows maybe 10% of the movement that was possible to achieve in the actor's Pose Adjustment before the change. ![image](https://github.com/user-attachments/assets/9c673eae-6b92-445e-abf4-fdf1a377299d) Also, the Center Position setting in the animation does not have the same controls and doesn't seem to do anything? Maybe I'm missing something. https://github.com/user-attachments/assets/0237342e-44d1-4092-a586-4aea94107e40

Edit post access to multiple versions: Going back to prior version 7 and 6 I don't have the Center Position/Rotation issue and I do not have the issue with the arms when using a VMD motion, but I do have the arms issue when using the default Idle motion so that is not new.

Comparison 2024.7 vs 2024.9

https://github.com/user-attachments/assets/931f0695-a650-4c0c-aa20-49495b230646

https://github.com/user-attachments/assets/2f1dc316-a165-4a4c-8e97-773eab330042

AlexECX commented 1 month ago

The Pose Adjustment tab was pretty useful when the height/size of the model used by the VMD motion was different than the actor, I could use it to make corrections to the actor's pose. If the Pose Adjustment tab is now deprecated I don't know how to do this in DanceXR, and I'd rather not have to do it in MMD.

AlexECX commented 1 month ago

Edited main post with new information and model + motion used.

alloystorm commented 3 weeks ago

This part has been polished in 2024.10, please give it a try and see if there's any pending issues. More specifically, 1) shoulder angle adjustment introduced and the custom standard pose adjustments are much more accurate now. 2) it is recommended to adjust pose in motion settings, instead of actor pose settings. The way it works is that the motion is first applied to a "standard pose" skeleton and then copied over to the actor skeleton. We've fixed a few issue with the motion transfer accuracy so as long as the motion standard pose is correct, you don't need adjustments at the actor level.

AlexECX commented 6 days ago

I think I'll close this issue, I've learned to use Actor->Pro->Motion Override to replace Actor->Motion Settings.