(3ds Max) Exporting an animated spring ?

hi! it is my first attempt at animating anything. I used 3ds max to model a weapon on wich there is an exposed spring, and altho it works in 3ds max it does not export properly.

Any ideas of what I might be doing wrong?

Spring in 3ds max is an internal system exclusive to max only, in order to export it you have to create a rig with bones for it.

To do this you need to do the following.

Make a copy of the spring model as a simple editable mesh.

create bones going all the way up following the spring shape.

Create ik handles for the bones on every bone link.

create attachment constraints on the original animated spring on specific vertex points where the ik handles meet.

link ik handles to the attachment constraint dummies or points and finally skin the editable mesh spring to the bones.

You should be able to now animate the original spring and have the skinned mesh follow.

A simpler method would be to create a series of morph targets for the spring and run through those. The other method is to export it as alembic. But I’m not a fan of such setups as it limits control and could be buggy.

Good luck.

well its a recoil spring, meaning the animation is going to happen almost too fast to be seen. What would the simplest method be? The bone method seems like a pretty long and redundant method unless I understood it wrong…

Just create two bones, one at the start one at the end, weight the thing evenly from start to end. Youll have spring shrinking but its fast and if you dont need to pay attention for details, its a very budget option.

Right, with the speed nobody should notice the wire forming the spring getting thinner. I guess this would be the most easy xD Thanks!

also if you weight correctly you can have the wires preserve volume perfectly.

well, for some reason it still does not work -_- I have a bone for the spring, with its lenght un-frozen, then the next bone it for the bolt. in max it works, then inside the ue4 the spring does not compress. Its like the animations contained position information but not scale information. If I scale the spring bone inside ue4 it expand and compress the spring as it should, wich also move the bold at the end of it like intended. Am I really gonna have to do this simple thing trough mathematic and animation blueprint? Seriously? x)

It is not that simple to hit export for stretchy bones, the max stretchy bones work in 3ds max because again it is made only for that system and wouldn’t export the information out of the box for you. In order for it to export the stretch correctly you need to do the following:

The solution is to link up the stretch bone with the scale transform of another bone which has position and orientation constraint following the original bone, then assign scale float script controller and use the following expression on that bone after picking the original bone as a node, with a variable (in this case I named it “Scaler”):


[Scaler.stretchTM[1][1], Scaler.stretchTM[2][2], Scaler.stretchTM[3][3]]

Hope this helps.

Edit:

Found this tutorial would be helpful: Ivan Ramadan's production blog: Tutorial - How to export stretchy bones from 3ds max to unity

Also if you don’t want to go through all this just use 2 or three bones and move them instead of scaling them.

Edit02: The bone method i described above is not a redundant method in case you want to have for instance slow motion shots and in that case you would notice the spring and may require that detail and so on, i just gave you the best case scenario. Of course all the other suggested methods perhaps work better for your cause.

Hey guys, finally used the morph modifier for the spring an it works wonder! Thank you all for taking the time to answer :slight_smile: