Unexpected problem spawning morphs on prop parented to scaled figure
I've just applied a smartparented hair prop to a scaled figure, which works exactly as expected, then decided it needed a morph or two to fit the particular character morphs I'd dialed up on the figure. My normal morph creation workflow, when working with deformers, is to adjust all the base, magnet and zone setting till I'm happy with the shape, then zero the deformer channel on the prop/actor, and spawn a morph which captures the current state of any other currently applied morphs and set the new morph (which I call "zero") to -1, before setting the deformer channel back to 1 and spawning the new morph created by the magnet, and excluding any other morph influences.
Normally, that all works exactly as expected, whether the base figure is scaled or not. Today, Poser has decided that it will now include the inverse of the inherited scaling in every morph I create on that prop (Or that's what it looks like)! So, when my currently applied deformer is only inducing some X-scaling in part of the prop, it is completely unexpected to find the new morph moves the prop back to the position (and size) it would be if the prop were not parented to a scaled figure!
[Initial Post without attached images, then Edit to attach images. What a pain!... Hmmm, well, actually, it's only one more step, but the frustration usually stems from failed attempts to upload an image, which I didn't do this time. Just have to remember not to try.]
OK, piccies for illustration's sake:
Initial state of parented prop with deformer not applied:
And with deformer applied (cheeks wider)
Then the (not normally necessary step if no previous morphs) zero morph spawning (and set to 1 to show the effect)
What!!! WTH is it up there? (Where it would be if not parented or scaled to 94% by the figure) This zero morph should have exactly nothing in it (all deltas 0,0,0), since the prop had no previous morphs. BROKEN!!!
Next, set the zero morph to -1 (should be having no effect with zero deltas, but it puts the prop where I expect, given the deltas.
and set the deformer to 1 and spawn the CheekWidth morph
which seems to have failed to include the negated zero morph.
So, are the two morphs identical?
No, they're not! The hair prop is now lower than it was originally! WTVF?
So, as I had to do before I tried again and found it still broken (despite restarting Poser), I will have to load the prop, unparented, in an empty scene, apply the deformer (which I saved to the library) and create the morph again, before saving the prop to the library with it's new morph and applying this to the scaled figure.
I have absolutely never [thank you, hyperbolically selective memory] had to resort to such ridiculous workarounds to spawn props on morphs before! What gives?
@anomalaus OH SHII..... Without having restarted Poser Pro 126.96.36.199764, in a new, empty scene, loading the prop with it's child deformer and spawning the morph again gives me...
Obviously [Sarcasm] I didn't pay enough attention to the fact that the prop loads in with a tiny x-rotation and a tiny z-translation, which are now being recorded in the morph spawning. That's not how it's supposed to work! Choosing Spawn Morph Target... from the Object menu never used to include transforms in the morph deltas!!! THAT's riddikulus! Begone, Boggart!
Oh, and it's ignoring the deformer's effect, too!
[SIGH] Time for a reboot... I shouldn't be surprised, having just bounced Poser to fix the library ignoring double-clicks to load.
A complete reboot and it still does exactly the same thing. Boo hoo, my Poser Pro 11.1 is broken.
It still works exactly as expected in PPro2014, and at least I can have an instance of that running at the same time as PP11, so, it's not a dead loss... NO, wait, yes it is! That's absolutely awful to break things required to do any useful work in Poser.
@anomalaus Not sure if it will solve the problem, but on the settings panel of the morph, click on "Match Centers to Morph" and see if that works.
@Glitterati3D Wow, I've never noticed that before. Must read up on it...
Errr, no. This is a prop, so no joints, and it's completely borked in a scene with no figures at all and only the prop, one child prop (which looks like a cherry on a cocktail fork, and the deformer props. That feature is for adding valueOperations to the joint centre locations based on a morph changing the joint geometry.
This is just completely inexplicable behaviour.
[Edit] Now that I think about it, lots of subtle things have been broken in this release, like a complete crash if you even select the Universe object in the hierarchy editor, what? Why? Now I can't even have the only guaranteed object in a scene that I can have a python script add configuration parameters to. No fair, SMS.
@anomalaus OK, well perhaps I misunderstood.....I thought the morph you created was on the head of the figure. That is where you would add animated joints (that's what Match Centers is referred to).
Set subdivision on the hair to 0 before using the magnets and spawning morph.
You can reapply it after creating the morphs and everything works fine.
@rlowens68 thank you [Face Palm]. I normally do that, and certainly have to when I'm creating morphs with the morphing tool, lest there be milliards of deltas. I forgot that I had pre-prepared that prop with subdivision enabled. I'll go an confirm whether that eliminates the weirdness...
Still, I can't believe that morph creation with subdivision enabled is just so wrong! How on earth are you expected to create subdivision morphs using deformers, then? Or while scaled and parented? Surely the process should be identical to that for unsubdivided props. (I suppose it is new code, though, when subdivision is involved)
@rlowens68 Yep, that was it. I'm so used to having the base figures and their conforming clothes subdivided, and their props not, that I completely forgot about turning off subdivision on the prop before spawning morphs. Whew!
Still, the subdivision deformer morph spawning is just so egregiously wrong that I'd better lodge a bug report.
@rlowens68 I think I can actually guess what's going wrong here. With a morph spawned in the subdivision space, it's deltas are calculated relative to the unsubdivided morph deltas. If there is no unsubdivided morph, the fallback for vertex positions is (incorrectly) the original geometry, so the morph incorporates the inverse of all the current transforms of the prop, including inherited scaling from a parent figure's origin, where it should just be deltas from the transformed world space vertices of the unsubdivided prop.