I wanted to come up with Lattice version, because there is not a way to adjust wave shape inside modifier in a shape I would like to. With Lattice deformer it is possible in some limited way, also with lattice you can completely fix snake's head position ... the biggest issue here is material.
- Instead of curve objects you can go with mesh object, because with mesh you can set a vertex group to be affected by Wave modifier.
- Add Lattice like resolution U 12 / V 6 / W 1 and transform basic shape in object mode to cover wavy strip
- To make final bended waves less spiky go to edit mode select middle controls points and with proportional editing enabled scale on X axis t move grid closer to sides.
- Add Simple Deform > Bend modifier to Lattice object
- As final step - create mesh Snake object and with all modifiers of wavy strip disabled add Surface Deform modifier > Target – wavy strip and Bind it.
Notes:
- use Subdivision modifiers as many you need
- you can also move lattice vertices in snake tail part closer to head - like that bended tail became closer to fat part of snake body (same in your reference)
- the biggest issue is shader that calculates texture coordinates before lattice ...
The biggest issue is shader that calculates texture coordinates before lattice ...