Home Artists Posts Import Register

Content

Hi all!

Last month, we showed off experimental work on a custom soft body physics engine. While the results were interesting and fun, we couldn't find a way to make this tech work for our specific purposes. Having poured so much effort and energy into the pursuit of achieving soft bodies in YL2, we didn't want to give up just yet. This month have been exploring other ways to implement soft bodies. We are happy to say we now have a feasible method.

Previous tech addendum

Before we jump into our new method, we want to share some research we made regarding the other one.

In our previous post, we mentioned the challenge of combining soft body physics with animated characters. After doing some more experimentation, we have discovered a method that works to mitigate undesirable behaviour on a skinned soft body character.

Here's an example showing the difference.

Old method:

https://gyazo.com/fb62507bdc08732a9adc810c116ae779


New method:

https://gyazo.com/807fbedfeba313025c51a7a64571f28c

The way this mitigation tech works is by disregarding any movement and rotation that occurred outside of the simulation, which does make it much more stable. Unfortunately, this also means swinging motion that you'd expect from said movement is also lost:

(Despite moving the character around, the belly and tits don't swing in the way you'd expect.)

https://gyazo.com/bcd3773226fb32ef6b94e35112a43c49

It seems that when you solve one thing, another thing is taken away.

With the mitigation tech shown above, we'd essentially limit the soft body tech to only interact with colliders. Swinging motion for belly, asses and tits would have to be implemented elsewhere. Perhaps this tech could be combined with regular jiggle bones. However, even if that's the case (and that would also require much more experimentation), there are many other challenges, especially in the performance and stability areas. While we are happy we invested time into exploring this tech, we feel more confidence in taking another approach for now.

New tech

Our new tech isn't really new. Rather, it is an expansion on our "fake" method described in our previous post. I.e., rather than actually simulating soft bodies, we "fake" the deformation using a simple algorithm and shader tricks. While the method is completely bogus from a scientific point of view, the results are quite appealing and the benefits to our previous method are many. For starters, this technique works completely independently of frames and animation. I.e., it is stateless and simply acts more as a post processing step on skinned vertex buffers. This makes its behaviour very predictable and comparatively stable. Furthermore, what would take several hundreds of gpu compute invocations to achieve in our older method, can be achieved using just single digit invocations in our new one. This makes it much more performant, as in an order of magnitude. With our previous method, we feared we'd have to limit characters to 2 per scene, but with our new one, we can have a full 8 characters and still render at plus 500 frames on modern systems.

While we do think "real" soft bodies is the future, perhaps this "fake" method can act as a migratory step towards it. Then, in the future when hardware is more powerful, soft bodies will become more feasible to do in realtime in scenarios such as ours. Hopefully, 3rd party libraries will have evolved more by then too. Because while we do love getting our hands dirty exploring these technologies ourselves, it's inevitable that any soft body engine we'd make would eventually never be able to keep up with the thousands of not millions of man hours put into 3rd party libraries. So maybe a simpler library that's more performant and easier to maintain (new tech) is the way to go for now?

Adapting this new technology from working solely on simple objects to working on fully rigged characters has been a huge challenge. While the idea behind the tech is at its core the same, everything around it has been completely re-imagined and reworked beyond recognition to its original implementation. We use many more steps and advanced techniques to achieve the results below. It is with great pleasure we are sharing them with you!

Results

PLEASE NOTE!

In all examples below, characters are missing drivers for chest. This means the tech that handles this issue is not active. We are happy to say that our soft body tech works regardless of what deformation stack has been applied before it, so it will be compatible with drivers. We simply haven't gotten to implementing them into YL2 yet. Keep that in mind when looking at the images below. Drivers will be implemented eventually.

We will go through each example here in the same order as we implemented them.

We started with simple spheres, as that is the most simple form of collision. As with our previous method, we use a mirroring script to apply the collision on both sides simultaneously.

(Applying sphere collision on both sides of the ass.)

https://gyazo.com/8132df7d0121df0ab8286bc8a1967bce


(Another view while applying sphere collision on ass.)

https://gyazo.com/549e751a524400a4cc02e69a7109a56b


(And a third view, applying the same collision.)

https://gyazo.com/1584becd6a28b7909dfcf462c8c1b8c4


Next up was collision against planes.

(Plane collision against ass.)

https://gyazo.com/24b6018abb30844e1b10bb38d3c66e8f


(Another view.)

https://gyazo.com/da3ae929c6ac1508e29305de6e392f4a


This tech was designed with inflation in mind from scratch, so of course it works with that too. From the techs point of view, it makes no difference what deformation stack has been applied before this effect. It solely acts as a post processing filter on the vertex buffers.

(Belly inflation being applied while obstacle is in the way.)

https://gyazo.com/7b68db410112c88fe3b1b7de165dd268


(Moving collider to influence belly and tits.)

https://gyazo.com/91deed9f70ea167ffbc2accb3f668ad3


(Inflating titties while obstacle is in the way.)

https://gyazo.com/c8903ac9e7f0c230dadebc757d592a52


You might have noticed that the belly was slightly affected as the titties were inflated. Let's have a closer look at that without any obstacles.

(Inflated parts react to eachother.)

https://gyazo.com/9e84f893b7477be409be413bd72a0c63


(Jiggling boobs affect belly.)

https://gyazo.com/ad62c40c568446c570b89f9c557061ed


(Strongly jiggling boobs against eachother in slow motion. Belly is affected as well.)

https://gyazo.com/4e3f9e07e51e4bf50b5bf50cfab7fe4c


(Older iteration but thought I'd include anyway. Jiggling boobs against eachother in slow motion. Note that all this is just jiggle bones, and soft bodies are applied as a post processing step to skinning.)

https://gyazo.com/2fe66671a01c90f92aae1b6e09a9f663


(For comparison - here's what the deformation would look like using solely skinning (no soft bodies)).

https://gyazo.com/354e35a4839cc87e0d2d6acfb4cfa3f8


(For comparison - here's what it would look like using rigid body collision instead of soft bodies.)

https://gyazo.com/bd4597aac7c6467b49413d1cf4f2d862


This tech works on soft bodies intersecting with eachother too. It was challenging, but we made it.

(Inflated bellies of two separate bodies reacting to eachother.)

https://gyazo.com/30cf00e82e8417fdd4cf67ac9fae2e73


(Inflating boobs of two separate bodies reacting to eachother.)

https://gyazo.com/73f4197b93c36b79a5c86adccdbef455


(Moving 1 body to examine soft body vs soft body collision response.)

https://gyazo.com/b0ff1e66e691152d80362b2597140b53


Note that all of this is completely fake. Since the algorithm has no concept of intersecting surfaces, we had to fake friction between them.

Of course this tech works between asses being pressed against eachother as well.

(Asses being pressed together.)

https://gyazo.com/3b3a3f2e3ed11859cd3f73f2f9b3459a


(Examining ass collision response from different angles.)

https://gyazo.com/525bf775e9bad6fa9716627145b2d324


(Ass collision response from side.)

https://gyazo.com/507ba47ab680daab553a8f917955d5f6


(Ass collision from side when facing the same direction.)

https://gyazo.com/282ec07a88d5541ae4d9117fd0d11f6f

None of these results are necessarily perfect, but given the flexibility and performance of the tech, I'd say we're pretty happy with it!

Limitations

Right now, this tech only works on spherical shapes. By that I don't necessarily mean we use proxies, but rather that the actual algorithm itself operates on a reference point in space and on a radius. These points and radii can of course be fed into the algorithm using "live" data rather than proxies, but acquiring this live data is only performant to do on spherical shapes. For tits and bellies this isn't a huge issue, as they can be considered spheres. Neither is it a problem for asses. However, the thighs are problematic, because they're elongated shapes. We did try to come up with tech to handle this in a performant fashion, but so far have been unsuccessful in achieving something satisfactory. The solutions we managed to produce would indeed make the thighs deform in desired ways, but at the cost of making the ass deformation look worse. While we think thighs are important, we think asses are even more important, so for now we have prioritized asses over thighs. There is currently no deformation on thighs other than the ass affecting thigh when being deformed. This isn't necessarily a big problem as long as authors are aware of it and can work around this limitation when setting up interactions.

Also, again - this tech is solely a post processing filter on the vertex buffers. It doesn't affect environment, and it isn't physically realistic. It only works on environment -> soft body, or soft body -> soft body.

What's next

I must admit I feel a little bit guilty, having spent these two months doing something else than working on the character creator.  After the crunch, I just felt I needed some time off and do something different for a while. We all have our indulgences, and exploring new technology is mine.

When we missed the 2018 mark for a release of YL2, it actually took me harder than I've been letting on. I felt quite depressed and disappointed in myself. I think working on these soft body technologies has been a way for me to cope, just to get my mind off things and do something different.

When looking back at all the effort we've put into YL2, I realize now that this missed mark doesn't have so much to do with lack of work or engagement, but more about just having misjudged the amount of work required to get where we want. That isn't necessarily a bad thing - it just means we are ambitious... and suck at predicting dates LOL.

With all this tech explored and implemented, I finally feel ready to start working on the character editor again. While this little journey may have delayed the character editor a bit, I don't regret for a moment having invested this time into it. With this tech in our bag, it feels like we have something truly amazing that will greatly set us apart from other projects.

Let's wrap this up and get a release out there!

Summary

After much hard work and experimentation, we believe we finally have a feasible method for doing soft bodies in YL2. The tech is hardly perfect, but it is very performant and flexible, and the results are fun and appealing - much more so than not having the tech!

After having taken this journey of exploring soft bodies, we feel ready to work on the character editor again.

Files

Gyazo

Take screenshots, screen GIFs, and full page captures you can instantly share now and search later. Get the free app for Windows, Mac, and mobile.

Comments

tim yuki

Loving what i see

Mobius Scarf

THE POSSIBILITIES!

Fox of Ages

Even in AAA game development, engineers are still bad at predicting dates. Very clever idea to use your original implementation but cut external transforms out of the soft body simulation! Sometimes (oftentimes) the best solutions are the ones where you remove variables and code. It’s been a treat watching you work on creative solutions to develop tech for Yiffalicious. The new tools you develop and remixing of old tools is fascinating for a lover of technology like me. Feel no guilt for putting time and energy into making this great software - the results you’ve been getting have been awesome, and you’re proving yourself quite a resourceful engineer. Kudos!

Drak Drake

Every prediction is wrong. The reason isn't because you're bad at predicting, because no matter how much you sandbag it, the goal date will still never be met. The reason is because you use that time on extraneous things that greatly improve the end product or help with organization (maybe, for example, you spend a little more time commenting your code because you padded the schedule up front). Wow, fun fact, you can't newline on a phone... anyway, what I'm trying to say is don't let it get you down. What you're doing is incredible and every update you guys send makes me more and more excited to see the end result and happier and happier that I'm supporting it. Keep up the good work, take your time, it'll really show in the end that you didn't rush it just to meet a schedule.

Drak Drake

Also, I hope you end up getting deformation working on cylindrical things, because I'd really love to see the effect of a thick cock being squeezed by a tight tailhole. But if it doesn't happen it doesn't happen, and no big deal, that cock will be hidden most of the time anyway =P. Though I am disappointed that the last several updates have had pics focusing on females... a part of me wonders if Male bodies and features will end up being ignored in favor of female interaction, but that's just the paranoid side of me talking. The actual reason is probably that females are a better representation of the tech you're trying to demo.

Bixxx

I really just hope this lives up to the year + hype that this has. The mis-management of patreon has had me skeptical. However, the technology breakthroughs have been pretty nice.

Horsie

Impressive results, as always.

Horsie

Also, about predicting software release dates, this often works: do your prediction, then double it, then quadruple it, and then add 5 minutes.

Pusspuss

Looks really good. Can't wait to try all this in the new game.

PseudoSamurai

This is amazing progress. It's understandable to feel that way too, about missing a date, but looking back at it, that was when you started without this amount of work to show. Those feelings are still valid, but it must be a bit relieving to see what progress you've actually made and to keep going strong. We're all rootin for ya and we're hoping you guys keep at it and remember, please continue to keep tabs on your mental health and well-being! That's one of the most important parts!

ryu lee

I really wanna try this now. :(

lothkafas

This is God's work. The progress is amazing and I love that you guys are focusing on such details, I downgraded due to financial issues but when I catch up I will return to my higher tier.

Ken Taylor

Just out of curiosity, are you using the bones from the skeletal system as localized constraints for the soft body? Wouldn't that help reduce the floppiness of the model a bit if you aren't?

yiffalicious

I'm not entirely sure how you mean. The soft body is but a post processing filter after skinning (bones). Right now we simulate friction between soft bodies by applying a force on bones in the opposite direction of the swinging motion using bone proximity (with threshold) and linear falloff.

Bazzal

Wow Just wow!

Dragonisser

Oh boy, im really looking forward to just fiddle around with the character editor.

Dark Sura

Every time you update, you leave me more excited, you have something very big here. I know it's still early to think about this, but the physics technology that you have created would be incredible to have your hands in virtual reality, to be able to interact with soft bodies, just to imagine that it moved me ^^ Currently you can only interact with the breasts and maybe the ears. But here you could squeeze any part of the body ... Excuse me, I'm raving XD

william whittington

this looks great guys! cant wait to mess around with all of that in the character creation!

Bolt

As someone who is in the sort've pre-production/research phase for a lewd game that also aims to be technically impressive, this stuff was pretty interesting and validating. I also experimented with the obi stuff and found it really finicky and limiting. It had a lot of bugs/issues and in the end didn't perform anywhere near well enough that we'd have been happy using it. not to mention the collider restrictions what with the obi system requiring its own colliders. At that point i just felt like it would be infeasible to implement any actual simulation in real time as its too much of a performance hit when you have so much else going on in your game. But it's pretty reassuring to see someone else delve into that much further and prove fairly definitively that the tech just isn't there yet really. And none of this even begins to touch on the concept of character clothing and all the challenges of making that not clip with the body! I assume the reason you guys can get away with this tech at all is because you don't intend to have clothing with this game. Never the less i'd be really interested in your algorithm for the deformation and the systems to drive it if you're willing to share. Might come in handy when developing some systems of our own. I've already experimented a bit with using vertex shader based deformation for small, localized skin deformations by fingers so that running your fingers along skin creates slight impressions. Anyway, thanks for the really interesting post and keep up the good work. And try not to feel too down about missing release windows and taking time to work on stuff like this. This stuff is very good and i'd be hard pressed to think anyone would be upset you worked on all this.

Petus Leekus

I'm blown away by this project with every post. After YL1, I'd wait forever at the tier i'm in to see 2. I cant believe the progress...