How to you animate a character along the surface of a moving object?

I like how this spider always sticks to whatever surface it’s on no matter what direction it’s going.

How can I accomplish this same kind of sticking except with animating outside of game mode? I want to animate a bug walking across moving objects, but shrinkrap is no good and paths are no good because the tilt changes every frame, it never stays tangent to the mesh. How does this person do it?

The game engine gives you tools that the classic animation system does not have. My best bet (without investigating inside the blend file, which you should do already if you haven’t) is that the spider has some kind of dynamics. What’s your environment like ? Is it really so uneven that the shrinkwrap constraint doesn’t help at all ? Is it a long animation, so long that animating everything by hand (or through a looped set of keyframes) would be too strenuous ? Tell me more about the situation, post a screenshot if you’re able.


It’s not that surfaces are uneven, it’s that they aren’t flat, I want to be able to animate on any object like a sphere or a tree or a car.
So no, shrinkwrap tends not to work even with a projection. Really someone needs a constraint for objects and armatures that’s simply “track to object” or “stick to object” that makes another object or bone always on the tangent surface of another object.

Might want to take a look at this post. Not sure is this is what you want, buy it may help you get going.

I did consider paths already and the problem was that the tilt kept changing not only frame by frame but within the curve itself. I haven’t tried it with the mesh deform modifier, but I’ll see if it works, thanks.

No luck, mesh deform didn’t do anything. My approach was to hook each point on the curve to a vertex on the mesh. It’s very tedious. But, it almost worked, with the only problem being that the curve became severely mistitled with every frame of animation. I would spend 10 minutes adjusting the tilt of 30 vertices, and then everything would be ruined in the next frame.

What are your needs exactly ? You mention a sphere, a tree or a car, but what are you working on at the moment ? What’s the environment like ?

Sorry, but in my experience getting blender answers, I can say I would only get answers that are loopholed for that specific niche circumstance that are wholly useless in all other circumstances.
For all blender users, there should be a single clear answer that works for any surface, so it shouldn’t matter what the specific environment anyone has. In that BGE file I provide, you could throw in any random surface and the character would stick to it. That’s how it should be for animating and that’s the only answer that should suffice. This kind of animation has been an issue for a long time now, it should be settled once and for all.

Editing the tilt takes very little time (all your mesh editing tools like proportional editing are available) and you can see the result in real time. Granted an automated way to align curve normal’s to another objects surface normals would be nice, (or some form of surface constraint) but it’s not going to give you a perfect result anyway. I like having full control of how an object follows a path.


path ani.blend (500 KB)

Editing tilt doesn’t take much time. However, you can’t keyframe tilt, making it pointless to use paths on any dynamic surface in an animation.

Goddammit, I am trying to help you and you say “no thanks, I don’t need your answer”. How far do you think this is going to get you ? Bye !

I’m sorry you got frustrated from your own choice to comment, but I warned that I already considered using paths and that this particular animation issue has plagued users for a long time. No one said “no thanks” to the idea of you posting, the answers simply aren’t helpful enough because they assumed too specific a solution, which I also warned against, and have already been proposed by others in other threads or stack exchange.
I think it would be beneficial for people to simply have a modifier for this kind of animation. I’ll see if the blender foundation will create it or how much it would cost to employ someone for it.

Re-read your posts and I believe this is more what you want??


path.blend (643 KB)

That looks pretty awesomely smooth. I don’t quite understand what I’m looking at because for some reason I can’t click on the surface and I don’t see the path anywhere even after pressing ult+h, but if that would work not on just a waving plane, but any deforming surface of any kind like a globular sphere, then yeah, that’s the real deal.

Here’s a fancy version with the bug seeming to transfer between multiple surfaces. Some item’s are not checked as selectable in the outliner.

Both files use paths that are followed by a “follow” patch. The object is then constrained to the patch with a “copy transform” constraint.


path1.blend (637 KB)

What exactly do you mean by the follow patch? When I try to use paths for animation via follow path, my problem is the tilt of each part of the path doesn’t stay tangent to the mesh on every frame as the mesh deforms, which in turn causes the object constrained to the path to rotate wildly every frame. How are your files able to rectify that?
And when you said follow patch, do you mean follow path?
If you could combine your two files such that there was a spherical wave with the bug moving along a deformed Susan without any unusual rotations or translation, that would be the final step.

OK, here’s the file with the Monkey/plain animated through scaling and rotation. Also works in some cases if animation is by a distortion modifier. The shrink follow object is what aligns to the surface normal’s of the underlying model. Tilt is dealt with by adjusting the view to be directly over the surface that you are snapping the path to as you create it. Then doing any quick adjustments necessary. Hope this helps… Out.


path3.blend (674 KB)

See scaling is one of those loophopes I was warning about, you’re trying to make it work for any circumstance, not just one specific circumstance, and scaling is not near the same complexity as a wave traveling through the surface, scaling can be accounted for easily with any number of ways. If the entire susan can undulate due to bone or wave motion AND the bug can travel on any part of it while remaining tangent, not just a projected shrinkwrap, that’s the final step. Really the trick is to keep the tilt either always perpendicular or always tangent to its closest vertex on the mesh no matter how it deforms.