Won't fix CUAs .dll staying loaded even if you remove the object or change scenes (even if not fixed in vam 1.x this needs to be adressed for 2.x)

Earthplayer

New member
Messages
19
Reactions
3
Points
3
Hello there,

If you don't want bone physics on a CUA you can disable the "load .dll" checkbox. For example because a hair asset you are using clips too much because CUAs don't interact with the body like "real" hair does. Here is the issue with this: If you load it once the .dll stays loaded for the entire session even on scene change. If you for example want one object you add to have movement and the other to have no movement/physics but they both use the same assetbundle you have to load the object you don't want movement for first (with the .dll checkbox unticked) and THEN load the other object with the checkbox marked. If you do it the other way around both object will have movement because even if you delete CUAs they apparently stay loaded for the entire session (or at least the dll does).

1) Make the .dll load per object you create in the gameworld instead of per assetpath/name (many CUAs are a single file with many assets you can switch through and loading all you dont want to move first becomes rather tedious especially because you need to restart the entire game if you mess up the order). This would allow someone to add CUAs with the dll loaded and afterwards load some with the dll not loaded which currently is not possible (as both will have the dll loaded regardless if you do it in that order).

2) Give us a button unload all CUA/.dll which currently have no object in the opened scene - instead of holding all assets cached no matter if they are in use or not if you load them once in your session. Or even better unload them if you remove all objects using them.

3) Make the .dll checkbox load/unload the .dll on the selected object even if you already loaded it. Currently you have to check or uncheck that box BEFORE you load the asset and if you ever load the dll the unchecked box won't work anymore even if you load it in a different CUA object you created. Basically allow us to do a PROPER reload of an asset with or without dll no matter if it has been loaded before in that session.

4) Give us a toggle to give CUAs with bones used for physics actually collide with the body like hair does. Currently you can add collider boxes (as CUAS interact with those but not with the body they are attached to) but most reasons to not load .dll would actually vanish if CUAs with moving parts actually interacted with the actor bodies, too.


I would love to see this in 1.x but in 2.x it's a must have. CUAs with .dll to use bones for custom physics and/or movement is used a lot for specific styles of hair which can't be reproduced properly with the "normal" hair (like characters from games, stylized characters, anime characters, anything with added ears, etc.) and many other things use this feature for things like moving tails. (Vega from OniEkohvius is a good example as it uses a tail, hair and ears)

The easiest method to fix all of this would be to simply create a new instance for each loaded asset/assetbundle no matter how many times you already loaded it this session. This way someone can create a new CUA and load the exact same assetbundle with the checkbox for dll load unticked and it will work as intended even if the same asset was loaded on a different CUA object with dll enabled already. This might have a very slight impact on performance but would fix all of the above issues and wouldn't require too many extra buttons, workarounds and bugfixing to be done. Pair it with unloading all CUAs on scene change and unloading all unused CUAs when you load a new CUA (for example because a game object using the CUA was removed) the performance issue should be gone, too.

Best regards
Ep
 
Last edited:
Back
Top Bottom