Yes it's something that should be possible (I've done it in other game engines) but for the life of me I can't figure out how to do this in A7.
Here's where I'm at right now:
while(1)
{
player_x = player.x;
silver_x = silver_surfer.x;
silver_pan = silver_surfer.pan;
ent_animate(me,NULL,0,0); // reset all bones
ent_bonereset(me,"joint13");
ent_animate(me,"idle",skill_1,ANM_CYCLE);
vec_set(temp,player_x);
vec_sub(temp,silver_x);
vec_to_angle(silver_pan,temp); // now Silver Surfer looks at Player
temp1 = silver_pan;
if ((vec_dist(silver_surfer.x, player.x)) < 200) {
ent_bonereset(me,"joint13");
ent_bonerotate(me,"joint13",vector(temp1,25,0) ); // rotate neck bone
}
I'm not sure if I need to reset the bone in the "if" statement.
Also explain what you mean by splitting the task in two?
When the player walks near an NPC, the NPCs head should track the player based on a vector distance, not a key action, if that makes any sense.
I know I'm close, but the problem right now is that it seems the bone rotation is not being updated every frame, only once, and then that's it.