I decided to randomly import a model I had to be a hilarious set of nipple pasties. I used the mirror to flip it (and while the text is backwards, oh well lazy) it worked great.
The problem came after when I entered pose mode to jiggle them at maximum volume...
Comments
raw outputlog file https://cdn.discordapp.com/attachments/493875471231090693/662364917877440523/output_log.txt
character file https://cdn.discordapp.com/attachments/493875471231090693/662365079794352129/BunnyPastiesMirror.yl2c
Object (.dae) file https://cdn.discordapp.com/attachments/493875471231090693/662365356987383813/Volume.dae
This first one was with how the routine for finding a mirror bone worked. It worked fine for things like head and pelvis, but for arms, legs or tits (as was this case), it would not be able to find a mirror bone and instead return itself. (It used to work, but our relatively newly implemented bone scaling caused errors here.) This routine has now been fixed.
The second problem was with load. When you loaded this file, you'd see the parts spawn in the right location, only to be offset a moment later. This was a tricky problem to find the cause of, but eventually I figured it out.
In order for the breast bones to be offset by inflation, we need to calculate their positions both in flatchested, default and inflated states. This is quite a heavy operation though, so it's scheduled to run after a while, so it doesn't interfere with authoring (otherwise it would be very laggy and annoying to use sliders). After this routine is completed, the bones will be offset according to the currently configured inflation. That means, however, that if anything was parented to the tit bones, then those things would move along with the tit bones, causing them to appear in the wrong spot. This has now also been fixed, so whenever this routine runs, it also updates the position of any items parented to the tits.
https://gyazo.com/526a3ce29744c6eee34071277c9bde4e
However, it is bad practice to parent things to the tits. Because of how inflation works, and because any parts are parented to bones directly (even a part snapped using surface point will still translate to a bone), it would be much better to use an appendage group instead. Unlike parts, appendage groups use a special shader and rendering technique, which means they will always stick to the surface point they're attached to, regardless of what has happened to that point (whether it be skinning or something else).
Here you can see what happens when using parts together with inflation:
https://gyazo.com/b0ffe780f8a52ecb7b7a7de01776202c
And here we're using an appendage group instead:
https://gyazo.com/d6f25e6e173d9d7a082c37a1cb6f9b19
NOTE!
Since appendage groups don't give a damn about model scale, only the raw mesh data, it means the model in this case became "long" (or rather, it didn't become short, since the model was scaled down in the source file). You'd have to apply (or "freeze") the transform before import if you want them to display the same way.
I also had to rotate the model 180 degrees so they'd point upwards. I did this with the sculpt tool.