rhinoman@Posted: Sat Nov 20, 2004 6:09 pm :
hello people...

I'm working on a cinematic, and thus I need to have control over the characters.

I've learned how to use path nodes for commanding them around, but I still don't know how to give them a specific walking animation. I want the marine (as an example) to run instead of to walk to the next path_corner.

he walks as a default... how can I make him run to the path_corner?



rich_is_bored@Posted: Sun Nov 21, 2004 3:29 pm :
Okay. I've toyed with path entities for a short bit and here's what I've come up with.

The path_corner entity is the foundation of getting an NPC to move from point A to B to C, ect. You layout the path you want an entity to traverse by placing and targeting each path_corner to the next path_corner in the chain.

All other path entities instruct an NPC to do something as it traverses a path.

path_waitfortrigger causes the NPC to stop at the previous path entity in the chain and wait till it is triggered before it continues.

path_anim causes the NPC to play an animaition once as it traverses the chain.

Now, what you'd like to do is tell the NPC to run along it's path. The problem is that while the run animation works it also affects the position of the NPC.

The best way to explain this is for you to take a look at the run animation for marscity_security_machinegun in der_ton's modelviewer. Notice how when the animation plays the character moves forward?

This means that whenever the run animation is triggered on a path the character is going to run for 1 animaition cycle in the direction the NPC is currently facing.

This could be a problem for two reasons.

One, if the distance between the path_anim and the next path entity is shorter than the distance the character covers during the run animation, he will run clear past the next path entity. Then when the run animation has completed he will have to turn around to go back to the next path entity in the chain.

Two, if the distance between the path_anim and the next path entity is longer than the distance the character covers during the run animation, he will run for 1 animation cycle and then walk for the remainder of the movement.

As you can see, neither case is acceptable if you want the NPC to run the entire path.

The only way to make this work using the existing animations is to avoid the above mentioned problems. This means you must make the distance between nodes in your chain of path entities the exact distance the NPC covers during 1 cycle of the run animation.

Sound like fun? Hell no.

The only feasable alternative is to create new animations that are taylored to the layout of the map and since you've got to animate them manually you might as well animate the whole damn sequence in a 3d modeling package and save yourself the trouble of path nodes altogether.



rhinoman@Posted: Sun Nov 21, 2004 5:16 pm :
thx for your long answer!

I've thought about the cycle_anim pathnode...

you might be able to play with the angle and wait keys. Angle for the direction where he has to run to, wait is for the time he has to run. unfortunately, it's still a quirky solution. I don't have experience with 3d programs, and even less with 3d animation. Is there any good and easy program (for free of course) where I can import my map and make the animations... and some useful tutorials out there?



bladeghost@Posted: Thu Oct 04, 2012 10:42 pm :
I know this is an old topic and wanted to share my findings, I simply found out that if you put in run for the key and 1 for the val in a path_corner the npc will run to the next path corner, and to keep running just add the (key:run val:1) on the path corners needed and it will run until it doesnt have that entry anymore in the path corners.

while working on my prometheus doom 3 mod, for the npc team members I needed them to chase the running holograms and this worked for me.
thought I'd share that with the community for those still trying to make their npc's run in their maps. :wink:



The Happy Friar@Posted: Fri Oct 05, 2012 2:30 am :
That's a good tip, thanks!



rhinoman@Posted: Sat Nov 20, 2004 6:09 pm :
hello people...

I'm working on a cinematic, and thus I need to have control over the characters.

I've learned how to use path nodes for commanding them around, but I still don't know how to give them a specific walking animation. I want the marine (as an example) to run instead of to walk to the next path_corner.

he walks as a default... how can I make him run to the path_corner?



rich_is_bored@Posted: Sun Nov 21, 2004 3:29 pm :
Okay. I've toyed with path entities for a short bit and here's what I've come up with.

The path_corner entity is the foundation of getting an NPC to move from point A to B to C, ect. You layout the path you want an entity to traverse by placing and targeting each path_corner to the next path_corner in the chain.

All other path entities instruct an NPC to do something as it traverses a path.

path_waitfortrigger causes the NPC to stop at the previous path entity in the chain and wait till it is triggered before it continues.

path_anim causes the NPC to play an animaition once as it traverses the chain.

Now, what you'd like to do is tell the NPC to run along it's path. The problem is that while the run animation works it also affects the position of the NPC.

The best way to explain this is for you to take a look at the run animation for marscity_security_machinegun in der_ton's modelviewer. Notice how when the animation plays the character moves forward?

This means that whenever the run animation is triggered on a path the character is going to run for 1 animaition cycle in the direction the NPC is currently facing.

This could be a problem for two reasons.

One, if the distance between the path_anim and the next path entity is shorter than the distance the character covers during the run animation, he will run clear past the next path entity. Then when the run animation has completed he will have to turn around to go back to the next path entity in the chain.

Two, if the distance between the path_anim and the next path entity is longer than the distance the character covers during the run animation, he will run for 1 animation cycle and then walk for the remainder of the movement.

As you can see, neither case is acceptable if you want the NPC to run the entire path.

The only way to make this work using the existing animations is to avoid the above mentioned problems. This means you must make the distance between nodes in your chain of path entities the exact distance the NPC covers during 1 cycle of the run animation.

Sound like fun? Hell no.

The only feasable alternative is to create new animations that are taylored to the layout of the map and since you've got to animate them manually you might as well animate the whole damn sequence in a 3d modeling package and save yourself the trouble of path nodes altogether.



rhinoman@Posted: Sun Nov 21, 2004 5:16 pm :
thx for your long answer!

I've thought about the cycle_anim pathnode...

you might be able to play with the angle and wait keys. Angle for the direction where he has to run to, wait is for the time he has to run. unfortunately, it's still a quirky solution. I don't have experience with 3d programs, and even less with 3d animation. Is there any good and easy program (for free of course) where I can import my map and make the animations... and some useful tutorials out there?



bladeghost@Posted: Thu Oct 04, 2012 10:42 pm :
I know this is an old topic and wanted to share my findings, I simply found out that if you put in run for the key and 1 for the val in a path_corner the npc will run to the next path corner, and to keep running just add the (key:run val:1) on the path corners needed and it will run until it doesnt have that entry anymore in the path corners.

while working on my prometheus doom 3 mod, for the npc team members I needed them to chase the running holograms and this worked for me.
thought I'd share that with the community for those still trying to make their npc's run in their maps. :wink:



The Happy Friar@Posted: Fri Oct 05, 2012 2:30 am :
That's a good tip, thanks!