Apply spring effector or jiggle to other deformations of motext like bend, twist, etc


#1

I can’t seem to find a way to get springy fx added to motext motion caused by deformers so that a bed overshoots and rebounds a bit after the keyframe ends, for instance.

I understand generally that there’s an issue about the points not actually BEING in the positions in which I see them, but rather that they are subject to the deformation, and I vaguely remember a trick with editable items about using the post deformed positions, but I don’t think that will work here since it’s motext, and I need to keep it that way as it’s a template where the text will continually be swapped out.

Just thinking out loud, but is there maybe some way to apply a spring delay to a simple motion like cube moving, then xpresso those post-spring values to the deformer so that, for instance, instead of setting keyframes for the twist from 0 to 100 degrees, I set keyframes for the invisible cube from zero to 100 cm, and the post-spring final position of the cube drives the input of the twist transformer?

Open to any other suggestions too. Just the first possible solution that popped into my head.


#2

use a delay effector in deformer mode… motext_springy.c4d (196.3 KB)


#3

Oh, I see now. I had tried those options several times, but very one of the things I tried over the past day was using the delay in one of the effector slots for the motext (all / words / letters), etc. or in effector slot for a parent dummy mograph element. I don’t think I tried the particular combo of it as a child WITH the deformer tab option enabled.

I see now too that it also works with the delay as a child of a null containing the motext object AND with that same setup, but the other deformer applied to the parent null rather than the motext directly. That’s going to be SUPER helpful as I have dozens of motext objects and growing within a few nulls where all the motion is happening.

thx


#4

I’ve got that much working for the case where primative motext parent null is moved by deformation, but not when the movement is the result of direct translation of the parent null.

The only way I’ve found to cover both cases is to drop the parent null into a dummy mograph element like fracture object, apply the delay in the fracture object effectors tab, and place the delay as child of the fracture object like so:

SPRING TEXT.c4d (281.9 KB)

It works, but even with this simple test, there’s an obvious performance hit, so I’m wary of rolling this method out into an already bogged down larger project. Is there some simpler, more efficient way to do this that avoids seemingly unnecessary nesting of mograph elements?

Jiggle deformer is turned off, and only there because I was trying every way I could think of to apply it, but it seems to need to be applied to editable objects, and to each object directly. I tried variations on applying it post correction deformer with no luck… though I would think the jiggle deformer would generally be preferable due to the added controls.


#5

After spending some time with it, I’ve come to a few conclusions. Not entirely sure they’re right, but it seems to me that:

  1. Jiggle deformer requires editable objects. Even with correction deformer, etc, I haven’t found a workable solution to this, though it would be helpful since it has more options than delay spring.

  2. The same spring applied to translation and deformations will be highly exaggerated for the deformations, so a more natural balance between the two requires one spring for each task with different settings.

  3. Making this work in situation where translation and deformations occur in nested objects requires parent be a mograph object with both springs applied. The translation spring (no deformation mode) needs to be activated in the effectors tab of the mograph object. The deformation spring (points mode engaged) does not. Oddly, but conveniently, in this config, the deformation spring seems to ONLY apply to deformations, so there’s no overlap between the two .

  4. Using the mograph object as a parent is a significant system hit, but by simply unchecking it, the hit is gone, so you can do everything you need EXCEPT for the spring without being slowed down, then check it again when ready to dial in the spring.

  5. Deformation springs work on subsequent children, but translation springs do not. Transformatioon springs applied to the mograph object work on that object and the direct children of that object, but not subsequent children. So, in the example here, the twist applied to children 2 generations down (frame 30-40) has the deformation spring applied, but the translation of those same objects 2 generations down (frame 50-60 )does not get the transformation spring applied.

Since the last child is a motext object, I could apply the transformation spring or another spring to it’s effector tab, but doing so causes all translations of parent object to be effected by BOTH that spring and the one appled to parent, so what’s needed is a way to apply the single translation spring equally to all subsequent children of fracture object.

If there is a way around this (apply to all subsequent children), it would be helpful to know. as I have a much more complex project with a similar structure in which I need to find a workaround. Here is the basic example showing various translations and deformations ad different levels in the hierarchy with separate springs per type of movement for most natural behavior.

NESTED SPRING TEXT.c4d (251.5 KB)

  1. One way around this would seem to be flattening the hierarchy a bit by ditching the intermediate parent (cube), and making the text objects direct children of the fracture object, but that brings up the following question:

What is the simplest way to effectively delete an intermediate parent/child object such that all of it’s children, translations, and deformers are applied directly to it’s parent object? Alternatively, is there a way to just switch what that object is? For instance, in this case, rather than making the cube the child of a fracture object, then transferring all it’s children, etc to the parent fracture object, then deleting the cube, is there a way to simply turn the cube into a fracture object with all of it’s children, translations, and deformations intact?