Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Custom tool: Surface collision mapping.

Odes previously talked about making tools to fit their own needs, in a different thread. So I got to thinking. How hard would be, to create a type of "nav mesh", which can be placed directly on top of the mesh that makes up the characters, that is invisible once in game, but it acts as a boundary, so anything inside the "collision boundary mesh" would not clip into other items, covered in the same "collision boundary mesh". Then, if the user moved a hand close to a character, it would stop and not clip into any body part. Does this make sense to any of you, or should I go into more details?

Comments

  • edited 7:11AM
    It would be possible, the easiest way I could see it is to have a collision mesh around the bones mainly say fingertips, that lacks a mesh renderer. If nether of the models are a trigger area and if the other character has a collision mesh it will prevent them from clipping to some extent. That or you could use a trigger area and a central point  of the character, so if the bone is inside the mesh it will push it outward towards the surface, this then could be altered with sliders to position it within 2D space while the script handles the 3D by preventing them from entering each other. These are some ideas off the top of my head but I get what you are talking about. I will confess though I am not a Unity master so this is just with my basic understanding.
  • edited 7:11AM
    I am no master either, but it should be possible to copy al verticies from a character, expand them 1px and have this all covering boundary, so hips and bottoms does not clip into one another. Bouncing breasts does not clip into arms, legs, whatnot... I know it would be a big undertaking, programming wise, but if they could pull it of, the source code could, possibly, bring in some caps in other environments. 
  • edited April 2016
    And first now I see, that I have planted this in issues, when it clearly should have been in suggestions :/
    I thought I had selected it, but clearly I had not. Is there any way to move it?
  • odesodes Administrator
    edited April 2016
    Basically what you're talking about is a proxy mesh that acts as a collider (nav mesh is something entirely different). We currently use these for some objects, for example the male shafts (for the dynamic mesh morphing tech). Unfortunately, proxy meshes are heavy to update, and having one for an entire character kills performance. The alternative is to use primitives (spheres, boxes etc) that are really fast to update, but instead offer a very crude physical representation of the actual character. So crude, in fact, that relying on them to prevent clipping [in the manner you're suggesting] would be bad.

    I do want to reduce clipping for hands though, perhaps by implementing something like what CHT had going with their dynamic hand tech. As for clipping for the rest of the character - it's not that simple. Basically what we need is real time soft body dynamics - something unity currently doesn't have support for. But it's just a matter of time. Once it does arrive, we could possibly implement our characters in such a way that when belly or tits are pressed against another body or environment, they would squash and stretch realistically.

    Actually - while we're on the subject - here's some trivia. When I first started working on Yiffalicious it was entirely physics based similar to how my Lugia game worked. However, when I started getting to more complex scenes with multiple characters, I discovered PhysX really isn't meant to be used like that. While PhysX can handle ragdolls and rigid bodies, it starts falling apart when introducing constraints in a complex structure (hierarchies between characters). So I was eventually forced down another path. Generally I'm not a big fan of PhysX. My experience with it is that it works for simple things, but as soon as you add more complexity everything falls apart and it starts behaving weird and unpredictable.


  • edited 7:11AM
    I know nav mesh is a completely different thing, it was just meant as a crude analogy, so others might have ab idea what I was talking about :)
    What if it was applied to just some areas and not the entire body. Say covering 20%. How big would the impact be on performance?
  • edited 7:11AM
    I believe I saw a tech demo from Nvidia which was just a physics sandbox and the way they did cloth and water balloon rendering was where you had multiple points and the mesh was rendered between them. Same worked for water where instead of a solid mesh it was a load of spheres that rendered the texture so the water would splash around realistically. This kinda thing could work for a cum tech where the cum is a load of spheres that stick to characters or objects and especially with other spheres, and then you use those spheres to generate the texture. The consistency could then be edited with sliders to determine how strong the grip is between these spheres so you get it dripping ext. Though this would probably require an update all on it's own.
  • odesodes Administrator
    edited April 2016
    It's called nvidia flex, part of nvidia gameworks:


    There's a suggestion to bring it into Unity here:
    https://feedback.unity3d.com/suggestions/support-for-nvidia-gameworks-flex-unified-particle-physics-for-real-time-applications-in-unity

  • edited 7:11AM
    Okay, that looks cool. I don't think that it would be much of a discussion, since it would ramp up the possibilities.
  • edited 7:11AM
    Oh ya that was it thanks, hope it does get ported to Unity that will be so fun.
  • edited 7:11AM
    Just being lazy here, but what kind of resources does this require?
Sign In or Register to comment.