Random root object assignment upon upload of multi-object DAE file
tracked
Nyx Onyx
I have not tried this on the SL viewer, and if asked to I will certainly do so, but with the current release of Firestorm I have found that the root object assignment upon uploading a DAE file with multiple objects the resulting linkset inworld will be random, where I would expect it to be either the last or the first object listed in the DAE file, preferably the first one since in Blender that's the "Active" object.
My testing as follows:
- Select to upload a DAE file that contains multiple objects, in my case where the object "Cube.nnnn" is the first listed one.
- Set LOD settings and pick one of the LODs to serve as Physics too.
- Complete the upload, and rez the object.
- Find out the root of the linkset.
- Repeat the steps a bunch of times with the same DAE file.
Whenever the cube is not the root, the object that becomes the root gets the name of the cube, losing its actual object name. The cube itself keeps its name, resulting in two objects in the linkset with the same name.
Attached is an image showing three of my attempts (out of maybe ten uploads of the same DAE).
So, why is this important? Well, my case is that I am building a full region terrain with my wife, which requires splitting the mesh up into 64x64x64 chunks (or less). It also requires fitting them together exactly inworld. We found that the way to do this properly, we'd enclose the component meshes in 64x64x64 cubes, which can easily be aligned to each other, and in relation to the region of 256x256, a total of 32 cubes for one layer covering the whole region, it's easy to place them on the grid by way of calculated offsets.
We can also automate the placement of the cubes using scripts, by having the script look at the name of the root object and then move the cube to a predetermined position based on that name. None of this works however, if the cube isn't the root object. It's easy to change it to be the root object, if one has one or two linksets, but dealing with a multitude of them it's quite a lot of extra work, especially during testing (on the beta grid).
If it's needed for testing, I'd gladly send the DAE file, and I can send the already uploaded cubes (displayed in the attached screenshot), they are on the beta grid not on the main grid.
Thank you!
Log In
Celestine Ghiardie
This has been kicking me for months too. I can't for the life of me figure out what determines link number and root assignment? its not selection order at dae export or any kind of conventional object name alphabetic sorting for sure. Perhaps it truly IS random, although some of my many...many...maaany test uploads to beta and to the main grid suggest that is actually not the case. There is some sort of pattern. Possibly when an object was created in Blender? Which might change mid creation if two objects are merged together or split. For a while i had a consistent root on the same linked object. Then something changed during my work in Blender - probably me splitting or joining stuff and the result was that the root jumped to another object in SL. This has happened so many times on the same project over many months that I lost count now and surrendered to a script sorting this for me. It would be nice if there was a pattern in this that we knew, so we could create with that in mind without having to implement extra scripts.
Nyx Onyx
Celestine Ghiardie It is already confirmed that the root is random upon upload, you will see this more clearly if you upload the very same DAE a bunch of times, even more clearly if you have many objects in the same file. Whichever becomes root will then be named the same as the first object listed in the DAE file, which is the active object in Blender upon export (unless changed in the exporter settings somehow). You can open the DAE in a text editor to find this out. My guess is that on the server side each part object gets assigned a UUID, and then the objects are sorted by UUID and either the highest or lowest gets to be root... Something we actually could test, I might do that today.
Atlas Linden
This issue appears to also sometimes occur for uploaded GLTF models in the new Alpha viewer. A new GitHub issue has been created to address this here: https://github.com/secondlife/viewer/issues/4294
Nyx Onyx
A script can be made to unlink and relink the intended root object, which works in my case where I can read off the size of the component objects in the linkset to determine which is to be root, but this will often not be the case if the usecase is different.
SL Feedback
Hello, and thank you for your detailed report regarding the random root object assignment upon uploading a multi-object DAE file. This issue has been brought up in the past and is currently tracked. We understand how crucial it is for your project, especially when dealing with precise placements and automation scripts. While we don't have an estimate for when this might be addressed, please keep an eye on future updates. We appreciate your input and your commitment to improving Second Life. Thank you!
SL Feedback
tracked
gweha Resident
SL Feedback it is really important to know if we can have an ordered DAE export on which prim will be primary also about how we create phys files