Scripts: collisionWithEntity and Avatars


#1

Been fiddling around with this:

How come Avatar is not considered dynamic? Avatar by it self does not trigger collissionWithEntity event, even if it constantly is colliding with an entity. It is not triggered unless the avatar collides with a dynamic entity.

Same thing with an entity script: an entity that is static and has a collissionWithEntity is not triggered if an avatar walks upto it an bumps it. it also isnt triggered the entity is the the one moving and bumping into an avatar (a static entity with forward velocity)


#2

Amazing, all last week I was quietly playing around with physics to see what I might be able to accomplish. I had my pinball machine prototype, little dynamic pinball (0.027m) rolling on a surface hitting proto- bumpers. Bullet did OK but, no collisions reported to the bumper and plunger scripts. I assumed it was my issue.

The I made some steps, and of course the avatar could not climb up them, so I made an invisible ramp, and though the avatar could slide up the ramp (the traversal looks awful, very low-FI), it would slide downhill once I stopped pushing it forward. This happened no matter how high the friction. So, I thought I’d ditch the ramp but add a script to each step such that when the avatar collided on a step side, the script would kick it up a bit. Well, no collision reported. Now I know why.

BTW, avatars are often implemented as kinematic entities and a character controller simulates dynamic motion. This is often done because avatars are special in the sense that their friction behavior is very different when they are being moved by the player/driver versus when they are still. Things like climbing steps require additional system adjustments, so a character controller performs those actions. There can be hybrid approaches too. In some systems, an avatar is kinematic until they stand from sitting, or if they are hit with a strong force. Then they are made dynamic for a while (many ways to help make the reactions look realistic). The problem with making an avatar dynamic all the time is that it means a ton of physics actions go on all the time. For example, we expect ourselves and or avatar representations to know how to stand vertically (against the local gravity field gradient). You can implement that using a vertical attractor, but inevitably, vertical attractors cause a perceptible wobble. We do not like our avatars to look inebriated. We also do not expect our avatars to rock horizontally just because they bumped into something. This would happen if it is modelled as dynamic.

Nonetheless, an avatar, no matter how modelled, needs to create collision events.


#3

you could try parenting an entity to your avatar and then seeing when that entity collides with things… as long as you can make it not collide with yourself… i’d love this functionality too


#4

Even if you do this, you wouldnt trigger anything without the parented child being dynamic.