how can I animate multiple characters, which of course have all an own armature, so that they interact with each other? like in tekken (or other fighting games) where one character blocks a kick of another one, and he doesnt just play his block animation but even places his arm (or whatever) in the right direction and location. or another example: one fighter picks another one up and throws him away.
is this achieved with constraints or parenting or another method?
if someone could post a tutorial or a link to one would be great.
I imagine you would have an empty (NO COLLISION OR GHOST!! :D) parented to, say the hand bone, then when you need to, use the parent actuator to parent your interacting object to the empty.
what would I do when animating multiple characters? (In a game of course)
It depends in what way, for your picking up another player idea, you would have an emptymesh in the hand of your “picker-upper” :D, then parent this to the main bone in the hand, make an action for the picking up of the “victim/pickee”, then use the frameprop box with a property (I find calling the property “fr” is obvious and simple) to activate a parent actuator with a property sensor (or perhaps using messages to eliminate dependencies) at the right moment (you don’t want it immediately, in most cases). That would then move the “pickee” with the hand of the “picker-upper”. You could also have a squirm animation on your “pickee” to make it a bit more dynamic.
I would use an iterative script/function to set the orientation of the “pickee” (only word I could think to describe the character being picked up) to the correct orientation, this could be done quickly (3-4 itertions) so as to give quick yet somewhat smoother movement.
I hope that explains it well.
You need to synchronize the objects. There are multiple ways.
- They need to know each other.
- That can be done by “hardcoding” or
- as a result of a sensor (radar, near, colsiion etc.)
- They have to react on the action of the other.
- That can be done by senors again (property, message etc.)
Example:
- one object starts its animation -> it sends a message to the other object (or sets a property)
- the other object start it’s animation receiving the message (or notifying the property change). Obviously it is one frame behind! But both animations play synchron.
Monster
what do you mean with “hardcoding”?
he means setting the object in a script.
Nice question and answers, i will make sure of using this
As agoose77 wrote.
Example:
nameOfMyObject = "OBCube"
is hardcoded. The name implies you need to change the sources for any other configuration.
That is usually not wanted but possible.
Monster