Implement custom "global" physbone colliders
available in future release
a
alareis
Currently physbone colliders have a fairly rudimentary implementation that is rather restrictive. Considering that prior to the introduction of EAC dynamic bones had a third party patch to allow cross-avatar interactions, you should finish this feature. Contact system is already there.
Right now "global" colliders are only referenced from hands and fingers, as per the documentation, but avatars can have more objects that may need to collide: from anatomy to props and VFX. This is needlessly restrictive, and there exists no viable solution.
Thus, here's a draft of requirements:
- Implement the ability to mark a physbone collider as a global contributor: use a separate property to define global contribution status
- If current implementation allows for it, implement runtime property updates to allow colliders to be promoted to (and demoted from) global status outside of build process
- "Global" colliders' permission model should follow that of the ones already implemented in hands and fingers
- Add a safety option that'd allow users to disable (or limit total count of) custom colliders on a per-user and/or global scales; the feature should be enabled by default, the limit is up to you to decide
- If count limiter is implemented, also implement a uint8 (single byte) priority property in colliders, which essentially would copy AudioSource's priority's behaviour (same priority objects can be non-deterministic, based on client's stack), starting at 255 (lowest)
- Add a boolean "{parameter}_Colliding" animator parameter to physbones themselves that is set upon a collision with anycollider, global or listed
- Add a boolean "{parameter}_CollidingWithListed" animator parameter to physbones themselves that is set upon a collision only with colliders listed in the component's collider whitelist
Log In
Dexvoid
marked this post as
available in future release
Thanks for your feature request. We'll be introducing global collision for up to four PhysBone colliders per avatar in a future release of the SDK.
We have not implemented every feature you've suggested in your post as this version focuses on the core aspect of the request which is allowing global PhysBone colliders on avatars. Once the feature is available, please feel free to open new feature requests here on Canny if you feel it could be improved further.
Smash-ter
Dexvoid I feel that 4 might get a bit limiting for PC players, especially for those that want to mimic additional limbs. It might make sense for mobile devices though. Would this solution also include something like collision tags akin to the contacts for additional permissions?
Dor․
It would be nice if colliders could also be listed as tags (and tags added to colliders) to define what sorts of objects they should collide with, instead of being all or nothing.
Additionally, right now we can disable interactions with pre-defined colliders by disabling the "allow collision" toggle on physbones, but maintain collision with listed colliders, it would be nice if the options were expanded to "Allow humanoid colliders" (pre-existing behavior) and "Allow global colliders" (all, tags, off), to support the above, so that we could opt out if necessary/desired. For existing uploads/components "allow global" should be all/off and inherit from "allow humanoid".
Example use case: A lot of avatars define colliders for additional body parts, like limbs, with standardized tags these could allow those sorts of colliders to also collide with your features, without necessarily opting into all of them (for performance reason or otherwise)
Some props may also only wish to collide with certain things, like one prop with another version of itself.
Fax
marked this post as
in progress