I want to create simple animation where cylinder gets deformed into figure eight. I can do this by proportional editing turned on and moving both edges to the center, but animation keyframes won't "capture" that. Moreover, it would be better if parts of the shape were more "circle-shaped" - imagine 2 invisible cylinders and our cylinder wrapping them around when deforming. Maybe I could really simulate that with some physics modifiers? Thanks in advance!
Shape keys do a reasonable job here? The morph doesn't really involve obvious rotations...
- Make a model of the end-state shape as as simple edges, possibly from 2 circles with a few vertices deleted, and the ends of the arcs F bridged over. Take a note of the number of vertices in the result
- Create a circle with the same number of vertices, for the start-state.
- There's a gotcha: you have to reorder the vertex-indices so the two shapes correspond, vertex to vertex. This can be done by deleting corresponding edges in each loop to give a starts and ends, converting to Curves, and converting back again.
- Now, in whichever you decide is your master object, with the other selected, hit 'Join as Shape Keys' in the dropdown next to the Data tab > Shape-Keys panel
- If you extrude the Basis, the shape-key will extrude, too.. and then whatever modifiers you need to complete, ( Here, Solidify, Bevel, Subdiv. )
- If the move is a bit dull, you can make a new key from a suitable mix, and edit it to give youself a new in-between.
You can do it the other way around:
- Create your 8 shape:
- Once you are good, in Object mode, create a basic shapekey and a second shapekey:
- Keep the second shapekey selected and in Edit mode, select all and right click > LoopTools > Circle:
- Back in Object mode, use the shapekey Value to morph from the circle to the 8 shape:
Then press this [+] twice to generate 2 shape keys.
With Key 1 selected go into edit mode and model your 8. When you get out of edit mode, the 8 will change back to your cylinder and you can use the value slider to blend between them.