Parenting a bone in an armature to a vertex or object?

I need to be able to have an individual bone in an armature parent to a vertex on a mesh that’s parented to the armature, or an object that can be parented to a vertex on the mesh.

I’m trying to make unique characters from a single base mesh by morphing it with shape keys. It would be a lot like Makehuman but it would be done entirely with Blender’s tools. I want there to also be one armature for the base mesh pre-loaded with basic animations.

The problem is when I morph the base mesh into different shapes, the bones do not follow, thereby making the origins of the bones useless. For example, if I morph the middle of the head, the eyes and eye sockets will move up but the bones won’t. I don’t want to have to go into edit mode and manually manipulate all the bones every time I morph
a new character.

Is there a way to do this with a modifier or some other trick? This would speed on game development for my team and possibly others in the future. Any help would be extremely appreciated. Thank you!

Edit: I would also need to be able to make the translation of the individual bones permanent, i.e., applied by a modifier so that I won’t have to carry any extra modifiers or constraints into the game engine (performance reasons).

You can parent to a vertex, yes, or three vertices if you want to keep the orientation of the child as well.
However this bone, once parented to a vertex, can’t be used to deform the same mesh, because with the current state of the dependency graph, it would create a dependency cycle (mesh affects bone that affects mesh that affects bone, etc.) and erratic behaviour (you should try it yourself to see exactly what happens). I actually had a very similar request a while ago and Bastien (developer) told me about the dependency cycle thing.

To “apply” a bone, use “apply pose as rest pose”.

I tried it and it says “loop in parents”. I think I understand what you mean with the dependency cycle, but I have gotten warnings for that in the game engine console and nothing bad happened and the cycle was permitted somehow. I had a camera parented to the armature and a bone in the armature with a “copy rotation” constraint targeting the camera, but it worked fine.

Are you sure it’s not possible? I also don’t want the whole armature parented to the mesh. I need them to move in edit mode somehow maybe, so that I can move individual ones as I morph the vertex it’s following.

Also I am to able have another mesh follow my morphing mesh via the deform mesh modifier, and then I can parent the armature controlling the morphing mesh to to the mesh with the mesh deform modifier. It lets me do that, and it works! Wouldn’t that also be a dependency cycle? I’ve gotten no warning this time. But like I said this is still not what I’m looking for. Edit: when I start the game engine it does give warning of a dependency cycle in the console, but nothing bad happens.

Sometimes a loop is permitted because it’s only a potential cycle but does not actually go round and round. For instance (off the top of my head so don’t actually assume this will work) an IK target can copy the rotation of a bone in the chain. Now you might think that’s cyclic and Blender might warn you but since IK uses position it’s possible that the IK target can copy the rotation without changing the position of the bones in the chain, and the solver comes to a rest. just an example! in the case of the bone parented to the vertex it might be allowed if those vertices are in a group not affected by the bone.
Regardless it’s a very very bad idea to allow these. Sooner or later they’re going to take your project down.

Makehuman does what it does by having only a few meshes and some 200 MB of code to make sure that armatures and mesh stay in sync through all the morphs and scales. It’s all Python so you can take a look at it anytime you have a year or two to spare. if it could be done in Blender with builtin tools they probably would not have gone to all that trouble!

You can’t get around a causal loop - programmers have been trying for at least 50 years. My favorite one is in the movie The Sting - the whole con was based on convincing someone that they had found a way around it.