How do you make *armatures* move in response to mesh collisions?

You have a mesh parented to an armature and the mesh has soft-body physics. Let’s say they get punched by another character.

How do you set up the physics so that when one character punches another that their first slows down on contact, and further that the other character’s armature moves backwards some amount in response to the two meshes coming into contact?

In reality? By keyframing it.

But you can make bones track physics if you want. It just won’t be as good, and will be just as hard to tune your physics.

Yes, I can confirm that would be keyframe animation.

How about the graph editor instead? That seems more sophisticated, are there add-ons to simulate collisions and stuff like that?

Also, why does blender even bother with a physics engine if you have to keyframe physics animations yourself?

Yeah, the graph editor has lots of tools to act on keyframed animation.

Right, what good is a tool that can do something if you can’t use it to do everything?

Physics for what you’re talking about-- a character recoiling from a blow-- are complicated. They are more complicated than scattering cubes or pendulums. They are complicated enough that you’re better off using keyframed animation than using physics.

You’re going to have to learn some patience, as 3D is generally frustrating, I mean at least when learning the ropes. It’s makeshift work, a lot of tweaking, hardly anything works automagically.

The graph editor is just a way to visualize values that change over time. What I’d do to simulate a slo-mo punch to the face is animate it first, get it approved (be it by yourself), then work on the collision itself, because only then will it be set in stone where it lands, how it slides over the face, etc. For this I’d probably go for a sequence of shapekeys, or maybe warp modifiers, or a mix of both.

That’s incredibly condescending and I will now report you and ignore all your future replies, I’ve literally spent several days on trivial animations and half of it was just setting up the proper rig after already failing a few times. Do not post in my threads again, you have not been helpful in the slightest.

Oh, literally days ! I can’t imagine that. :slight_smile:

Look no, really it’s not. I am giving you friendly advice, from one animator to another, knowing from experience that tinkering with 3D software can be frustrating. Your messages on this forum are mostly cold and hostile, and they show great impatience. You are not getting anywhere with this. :frowning:
I think everyone has been quite tolerant with you so far, and I will stay out of your way until you feel better.

Peace & love,

Hadrien

6 Likes

Not gunna read it, just reporting again as I implied previously since it is now spam.

That was very cold and hostile. I’ve never seen this man be condescendent towards or berate anyone in all the time ive used this forum. Saying “3d is hard and takes patience” is simply stating a fact, and should not be seen as an attack against you. You are over reacting.

4 Likes

You’re literally caming here just to berate as proven by the content of your post, you’re not addressing a single bit of technical information. I’ve been using blender for years, and instead of simply admitting it’s not perfect, they’re wasting their own time, my time and the community’s time with their harassment.

No one was berating you. That was the point of my post. You are acting hostile right now for no clear reason. I’m not saying you are being hostile as an insult, I’m simply saying that this is the way you come across right now.

@bart is the owner of the forum lets get his take on this. From my viewpoint folks here were trying to help you, but you chose to act defensive in response to some non offensive words.

Again, you’re still off topic. If you wanted to contribute to anything about physics or animation then you wouldn’t keep trying to shove your personal opinion in someone else’s face, that’s the bottom line. You chose to come here, I didn’t make you.

Hard also sent me a PM, not gunna read it, waste of my time.

No one should have to report this thread to the moderator team, please …

The advice that was very-candidly given is quite valid. Physics simulations will not give you a believable rendition of someone getting punched in the face. Both the assailant and his victim are acting, and the entire fight-scene must be choreographed. The action might be “filmed” from several different viewpoints, and the final scene cut together by the cinematographer and the editor. It’s much, much more complicated than a “bouncing ball.”

1 Like

OK. So here’s the deal.

@AskBlenderQuestions you are reacting poorly to the advice that was given here, which is generally accurate. Furthermore, frivolously flagging other people’s posts is only going to make it more difficult in the future for moderators to take your flags seriously.

1 Like

Now… responding to the actual question posted, there’s no way to directly affect armatures bones with physics simulation as, in reality, they have no geometry. That said, all hope is not lost. If you absolutely need an armature to react to physics simulations, you can have real mesh objects work as a proxy. Some examples:

  • For cloth simulation where you need the armature to be affected by the cloth, there have been rigs in the past where you vertex parent empties to strategic vertices on the simulated cloth. Then you can constrain the heads and tails of armature bones to those empties. This technique can also work for soft body physics.
  • For cloth simulation where you need the cloth to be affected by the armature, the solution is much more simple. You don’t react to the armature… you react to the mesh that has the armature modifier.
  • For rigid body simulation, you can use mesh objects (typically scaled cubes) as stand-ins for your armature bones. With clever use of rigid body constraints, you can get a hierarchy chain that matches your armature rig. Then you parent your armature bones to your stand-in mesh objects.

That covers most of the collision based scenarios you may run into. Did I miss any?

1 Like

Sorry but it’s not for you to dictate whether someone else finds “advice” insulting. If you blatantly disregard those negatively impacted because of the way you allow the site to run, what does that say about you and your role in why it’s even happening in the first place?

I’m aware of those basics but aside from keyframing the influence of a child-of constraint targeted at a vertex group, then at list start with a rigid character acting on a player. Let’s say you don’t need both characters to react to force, you just need one character to react to the punching. Some combination of both soft body and rigid body should be reasonably expected able to accomplish that. Not a cloth, because a character is not a cloth, not just a rigid body because a character isn’t a rock, but some combination.

so I spent a minute on it, is this about what you want to achieve? just with the armature going backwards after the punch? cause honestly just keyframe it bro.

2 Likes

I don’t want you call you a liar but I have spent painfully many hours manually keyframing shockwave distortions like that and even just setting up the shape keys with all the vertex groups up took a hell of a lot more than a minute.

Are you sure you don’t mean you’re also using cloth physics?

The problem with relying on some simple little keyframe is you can’t compound it with more sophisticated actions at all. Maybe, in very very convenient circumstances, you can have it as an action and use an action modifier, but in a practical situation a character getting punched is just one possible event of a much larger sequence.

Some of you guys out there asking a lot of questions these days seem to be in sore lack of a researcher’s attitude, patience and also - sorry to say so - the willingness to think by themselves.

The very scenario you’re using as an example here provides a lot of answers on why it cannot work, if you care to use your brain that is. Because a person receiving a punch will not react on it like a mindless softbody without a neural system, instead its reaction will be a mixture of passive, physics-driven movement and counter-acting driven by her neural system to avoid falling down (at least if she’s not out cold immediately). How the heck should any Blender physics sim achieve that? It is obvious that this would require a different class of simulation tools, more like an AI with knowledge of human anatomy and biomechanics, something like Boston Dynamics uses to make their robots walk and do backflips.

A bit more of thinking would tell you that it is very difficult if not impossible to “just” take care of the passive, pure physics part and keyframe the active side, because that would mean feeding back the simulation result to the very armature driving it, which obviously would lead to a dependency loop. You probably could try to struggle with the pair of armatures you’d be bound to use for such a character, and keyframe both of them … which would be nasty to manage, you’d be better off keyframing all of it in the first place.

Oh, that’s really bad. Professionals do it in about an hour, so maybe you should just give up. :slight_smile:

Jokes aside: better get used to the idea that setting up an advanced rig for a character can keep you occupied for a while … hint: weeks. Concerning your personal progress: learn to think in years, not in days. And don’t expect others who got used to that kind of timeframe, aquired the patience and still are dealing with their frustrations on a daily base … don’t expect those others to be overly patient with your laments here.

@NiklasWerth probably used dynamic paint waves to set that up quickly, and indeed it shouldn’t take more than adding a canvas to the head, a brush to the sphere and setting up the canvas as “Waves”.

Except all that: please learn to be accurate about terminology, because it matters when discussing complicated topics like this one. There is no ‘action modifier’ in Blender.

2 Likes