Home Artists Posts Import Register

Content

Hi all!

We hope you've had a great May!

This month feels like we bumped into all sorts of different unexpected obstacles that required time and effort to solve. In last month's update when we mentioned the "seamless tech" we were working on, we thought it was more or less complete - all we needed was to assemble some content to try it out. Well, as it turned out, there was a bit more to it than we anticipated...

In case you don't know, essentially what this "seamless tech" is all about is eliminating seams* between different parts of the body. The head, hands and feet in YL2 will be possible to choose from an ever increasing selection of different models that you can combine in any way you like. For example, we won't just be providing one type of hand, but several different ones, from different species, of different shape and with different skeletons, and more will added with time. Likewise with the heads, they too will come from different species etc. However, as you might imagine, having separate models in this fashion inevitably creates visible seams where they connect with the body. This is a huge problem that what we've been trying to solve.

(* Seams between parts, not UV seams which is a completely different problem.)

This problem comes with several different challenges. The first one, or the most basic one, is perhaps the problem of actually making the meshes themselves (the models) look like a single one. This can be accomplished by making them appear to be "welded" together, and this is something we already showed off in a previous update.

(Making mesh seamless in neck area.)

Another problem is how skeletons are supposed to be merged together in such a way that all the different parts are water-tight regardless of how the bones are deforming the mesh. Furthermore, we wanted to have flexibility in how we can author skeletons to allow parts to have different numbers of fingers or just have completely different shapes (for example, the feet of a crow is completely different from those of a wolf). This, too, is something we've already created tech for previously (although we will probably need to tweak it a little bit once we get to creating more versatile content for it).

Lastly, we need to make the maps (textures) appear seamless where these different models connect, because even if the meshes appear seamless, the maps can still give them away. This is a difficult problem to solve due to the complex setup of all the possible combinations of models. It would be a nightmare to manually make each map fit with the other, so we wanted to come up with a tech that allows us to bake maps for each model individually while still having perfect seamless results. And this is what we've been working on this past time when we've been talking about the "seamless tech".

To solve this map problem, we need several different components working together. The content (mesh) has to be authored in a very specific way and then rendered using a custom shader. Or at least, those were the two components we thought would be sufficient to solve it. For these two things - the content and shader - we had an elaborate plan how they could be implemented, and we followed this plan meticulously. But once we actually had implemented the shader and created all the content and started testing, it didn't work! Or rather, it would have worked, if it wasn't for the fact that we had forgotten to consider a very important trait of how normal maps operate - you cannot blend normal maps across different tangent spaces! This was an utter failure on our part, forgetting to include such an important property into our plans, and so is where we encountered our first big obstacle for the month. And from this point onward, it felt a bit like this gif from the "Malcom in the Middle" show, as we had to spend time implementing several systems we hadn't originally planned for:

The first step to solving this map problem was figuring out a way to blend normal maps across different tangent spaces. In short, the way we ended up doing it was by feeding the shader with additional custom data that we baked into the mesh, so it would have enough to parse each normal map properly. This did however come with some other consequences, as it would mean we would have to feed this data each time the mesh is changed (for example, when blend shapes are applied), meaning we had to come up with a way to calculate the tangent spaces in a fast and efficient manner.

As with the mesh normals that we've talked about in previous updates, we ended up implementing a GPU powered tangent space calculator. Normally, recalculating the tangent spaces would take undesirable amount of time on the CPU, but by creating a GPU implementation, the results are near instant. Naturally, it did take some time to implement this system though.

Ok, so now that we are feeding the shader with this additional data with the help of the custom tangent space GPU calculator, surely we have enough to make this work? WRONG!

Well, wrong for characters meshes at least. For regular meshes, it would be sufficient. But characters are of a special type of mesh, called a skinned mesh, that does additional processing before rendering it, namely deforming the mesh according to the location and orientation of the bones. This process is known as "skinning". Unity provides a "Skinned Mesh Renderer" which automates this process. During the skinning process, not only are the vertices moved, but also the normals and tangents of the mesh are deformed as well. Since we are feeding our shader with additional mesh-specific data, we needed that data to be skinned too, but unfortunately, Unity's skinned mesh renderer doesn't support skinning of custom data. So in order to solve this problem, we ended up writing our own custom skinned mesh renderer, that skins all the mesh data - both the basic one and our own - and feeds it into the shader.

So yeah, in pursuit of trying to solve the seam problem, we ended up on a journey, not only implementing a GPU tangent space calculator, but also a custom skinned mesh renderer. It took time, effort and energy, but finally we made it to the finish line at last.


Seamless tech

Here's the result of our research.

https://gyazo.com/86209fcf2010986308ab2f00bca72162

(Seamless tech on)

https://gyazo.com/4c7c7638a131f0669b9b46e2877ac84b

(Seamless tech off - for comparison)

As you can see, the seamless tech makes a huge difference where the hand connects to the body. Other areas of the body - where the head connects to the neck and where the feet connect to the legs - will receive the same treatment.

We're super excited about this tech, as it puts us a step closer to making the characters look like actual, real models rather than something that was just assembled in a character editor.

YL2 genitalia options

One fan by the nickname "Accenture" posted some suggestions in the forum regarding genital options for the character editor in YL2, which you can read about here. Essentially, "Accenture" suggested that characters should be possible to configure to have no genitalia, and that balls should be possible to toggle on or off as well on any model.

In our original model, the balls were a forced part of the character mesh and wouldn't allow for such customization, but upon reading this feedback, we reevaluated our plans and took measures to accommodate these suggestions. The balls have now been moved out of the character mesh, and exist as a separate model. We like this idea, because it does make things a lot easier for use regarding shape authoring and transfer between models. Furthermore, it will also allow us to create many different kinds of shapes for the balls, improving customization and versatility, all while reducing complexity. We are so happy these suggestions were voiced!

Since the balls are a separate model, it also means you'll be able to add them to any character, even those without shafts, or without any genitalia at all. (We haven't gotten to implementing a genderless model yet, but we intend to in time. A genderless model is far easier to model than one with genitalia.)

There are some drawbacks with this type of setup however. By having the balls as a separate model, there is inevitably a visible seam/clipping where the body and the balls intersect. While we do like the increased customizability and reduced complexity that comes with moving the balls to its own mesh, we weren't happy about this clipping issue. So this month we've been researching different methods of trying to mitigate this problem.

Screen space clipping relief

We have implemented a shader that operates in "screen space" to blend models together with eachother. It is our attempt at reducing clipping between intersecting models, for example balls clipping with the body they're attached to. Below are images of our research:

https://gyazo.com/149fc3f72bc124814eeb41d62f5682df

(Clipping relief on.)

https://gyazo.com/8099c36a33a800f1943472a2e44c64e8

(Clipping relief off.)

https://gyazo.com/8011db88f9ead7f2b72df270ba8f4558

(Toggling tech on and off.)

What's cool about this tech is that we could use it for other things too, such as ears on the head.

https://gyazo.com/afab21285dc85518627bdec8be90c783

https://gyazo.com/4873d46a0cb1c098bb6e9d06a34fc3cd

We also produced a variant of this shader that uses the G-buffer to blend the meshes. The benefit of using the G-buffer is that we can blend each channel individually. Here's a comparison of that technique vs the one above:

https://gyazo.com/7ae3e904c9aa4656874b561f31b0b62e

(G-buffer vs simple blending.)

As you can see, the G-buffer one does produce a more "correct" looking surface where the models intersect, due to the normals being blended separately in their own layer.

However, the G-Buffer version doesn't play so nicely with shadows:


Here's the simple blending for comparison:


The G-buffer also come with other drawbacks, namely that it is a bit hacky and requires much more custom code in order to operate properly. Maintenance is an issue here too, as new versions of Unity might break the shader. This is especially a concern as we intend to move over to the HD Rendering Pipeline of Unity at some point in the future, which most likely has a completely different buffer setup, and that might even change more over time as the HDRP is a WIP. Sometimes going with the easier solution makes more sense long term, and in this case, I think the easier solution might even look better.

Sex Godess shape

While dogson has for the most part been busy working on content for the seamless tech, he has also been working on shapes on the side. Here's a "SexGodess" shape he made:


In YL2 we intend to create many different "body types" that you can select from. Each body type will be possible to tweak in terms of belly and breast inflation. You will also be able to mask and blend body types individually in the shape layering stack.

Summary

This month we ended up on a longer-than-expected journey in our pursuit of creating seamless characters for our character creator. What we thought would be an easy problem to solve turned out to be a fair bit more complex than anticipated. In the end we finally got what we wanted, but not without a tremendous amount of time and effort, having us implement several techs we originally had no idea would be required.

We've also made changes to our characters, separating the balls from being forcibly placed inside the male variants. This opens up for far more customizability while at the same time reducing complexity for us. It comes with some drawbacks however, as separating models in this fashion does produce seams between them, but we have been researching a screen space clipping relief tech that looks promising in mitigating this issue.

We are as excited as ever about the development. Things don't always go the way you think, as there are always potential obstacles lurking in the shadows. But we relish the challenge and are determined to reach our goals!

 - odes 


P.S.

I know I mentioned a couple of texts back that I was going to start writing shorter texts. Well, it seems like that hasn't really been the case so far, haha. It's just that there's so much to each problem that we encounter and to each solution that we implement, that unless explained, they wouldn't feel so exciting. So as long as I feel there's a need for these explanations, I'm afraid we're gonna be stuck with these long texts!

Files

(No title)

Comments

lothkafas

I am so excited, I'm a character addict. :((

Anonymous

You are doing amazing work and put lots of effort in it, you can be proud. Keep it up :3

Anonymous

Pretty good job

Anonymous

Again, don't rush yourselves. Pace yourselves and try to keep the development fun for you guys.

Waves

Thanks again for another wonderful update! No rush of course, please please please don’t feel like you’re obligated to always have something to show if you haven’t fully completed the goal set! I know things like this aren’t needed to be mentioned but seeing such hard, amazing, and inspiring work, I just can’t help it either... <a href="https://m.imgur.com/a/U7UsjOA" rel="nofollow noopener" target="_blank">https://m.imgur.com/a/U7UsjOA</a> So will you use the same zaftig model(s) as you did here? Will characters with extra fat have extra ‘jiggle’ motions in the areas with extra fat? (like abdominal area, thighs, breasts, ass, hips, upper areas, etc?) This may be a bit much to think about this early on but will characters have different motion physics depending on the level of fat? Like smaller breasts jiggle and bounce quicker and have a shorter duration of after-motion effect and vise-versa as you increase the level of fat in an area like that? (so basically fatter tats having less motion speed and the motion lasts longer) Also regarding the link related, will modifying the models in general in areas like the calves/feet and forearm/hands be within their limits so we may create characters like link related? And will females/cuntboys or anyone with a vagina have an option for large clits? basically pseudo-penises? They’re a thing some animals have and of course it’s not ‘a’ penis but could act like one especially in sexy fantasies; all the benefits of the penis itself without actually being a penis. Even an ‘ejaculation’ feature can be possible but instead of the foggy white-yellowish goop it’s clear. Always excited and love getting ideas on what to expect; and I must say, that SexGoddess really is the ideal fine feminine sylphlike body type! Hourglass figure at it’s finest, like Haydee! Tackled the amazon women body, now you sculpted the celestial body! Can only imagine what’s next. I know you’ve always loved thicchicks since the beginning like with Maya and bun girl, wonder if you’ll honor your roots with a star thicc model... Great update and official in-depth posts are always good especially if you really do have all the more to tell; summaries are okay too but sure I’ll take more detail any day! Though I understand how being brief could be convenient for others too.

Anonymous

Walls of text are fine by me! Love the deep dives into the development. Go ahead and go deeper next time.

yiffalicious

Hi there Waves! We intend to include body types as those you linked, but it remains to be seen just how far we can push it before things start breaking down. We may have to reserve ourselves a bit. The idea is to make voluptuous characters jiggle more than thinner ones. We already have tech for that in Yiffalicious 1, where reducing inflation will make parts stiffer, and increasing it make them more jiggly. So we are confident we can get something similar going in YL2 and have some ideas how we could improve it even further. These systems will be implemented sometime after the release of the character editor though, as they're more connected to the simulation/interaction bits, which are scheduled for a later release. As for a more "full body" type of jiggly fat simulation - as you seem to be suggesting - is something we'll have to get back to you on. I have many ideas of how such technology could work, but nothing I have tried yet. It's something we're definitely interested in though and want to spend time researching once we get to it for sure. So the best answer I can give right now is - maybe! The layer stack in YL2 does offer a lot of freedom, so you could get very exaggerated shapes using it. It'll be quite easy to "break" characters in the editor, pretty much the same way it is easy to "break" animations in Yiffalicious 1. I'm hopeful users will exercise reason and respect the limitations to create characters that actually work to animate. So far the up and down voting system seems to be working in filtering out undesirable content, so hopefully that should work with characters as well. The only option we have planned right now regarding genital options is the possibility to choose a shaft from a list of shafts. We want to offer more at some point, but at the moment that's all there is... All the best. - odes

Waves

So the body that is pure thicc and all her estrogen-overflowing glory a thing? Now that’s some literal breathtaking news! Yeah, genital options like shafts make sense, something like that could just be another shaft that’s basically a long sausage shaped clit with no testicles by default; anything within the system’s limits! I know different types of animal penis’ are a thing, does this include a variety of different animal vaginas? Thanks for reply ^_^

Anonymous

Regarding genital options, will all penis models use a sheath type base? Not all species have them and it's certainly not a universal feature on OC's with male genitalia so having options for either more reptilian or human styles of penis base would seem like a sensible feature to have. Similarly, are there any plans for alternate vagina options, such as more accurate to nature options for various species or just different takes on the current fairly human design?

Anonymous

Hi, i'm really interested in the screen space clipping relief. Is there any chance you can do a more technical explanation at some point? I was working on something similar a while back and it'd be interesting to know if i was on the right track.

Anonymous

Hi there! Last time you probably heard from me was when I pitched the cum suggestions x_x but I have another! I understand that YL2 is still a work in progress, but I've noticed that the scrotum could use some improvement. If you guys already have plans for this then kindly disregard this post ^_^;;; Otherwise, here's my critique! <a href="https://i.imgur.com/O9wpYPk.png" rel="nofollow noopener" target="_blank">https://i.imgur.com/O9wpYPk.png</a>

yiffalicious

We want to experiment with more versions of female genitalia, but for now we only have shafts planned. Female genitalia is a bit trickier than male since it's a part of the body mesh rather than being a separate model, so there are some technical challenges regarding that.

yiffalicious

For now we only have sheath based shafts planned. More options may be implemented down the line, but we have to start somewhere... We want to investigate how we could implement more variants for female genitalia, but right now no concrete plans set into motion regarding this topic. Female genitalia is a bit trickier from a technical standpoint due to being a part of the main body mesh rather than a separate model.

yiffalicious

I invest myself so much emotionally in the work I do, that sharing the final solution feels like giving away a part of myself. I'm very careful about doing that. I can give you some hints however. From a theoretical standpoint, all that should be required to solve this problem is: 1. The pixel behind the current one being rendered. 2. The distance to the pixel behind. 3. The current pixel being rendered. That is all the data that is required to achieve this effect. The G-buffer naturally is a bit more sophisticated, but the idea is similar, just that instead of grabbing a pixel from the final render, you grab several pixels from the different G-buffer textures.

Anonymous

It wouldn't work for all female genitalia but for some species, primarily canines and equines, their vaginas are fairly "external" in nature and probably could be represented by separate models placed over the top of what's already part of the body mesh. Of course that wouldn't work for feline or reptilian vaginas but when it comes to accurate vaginas canine and equine are the most popular anyway so you'd still be covering most of your bases. Still it's just a suggestion.

Anonymous

The link is dead, is that intentional or not? If not I'm curios as to what you had to say.

Anonymous

As always, great stuff guys. Keep it up!

Anonymous

Question. Are you able to play Yiffilicious on Mobile?

Anonymous

Huh? Mid-tier gaming rigs? YL2?

yiffalicious

YL2 is the successor to Yiffalicious that we're currently working on. As far as recommended specs go, we're targeting mid-range gaming PCs.

Anonymous

I had a question. About YL2. In YL1 most model's penises would clip through surfaces and other models. In YL2 how are the physics for genitals?

yiffalicious

It's a bit too early to tell. Right now we're working on the character editor for YL2. Interaction systems will be implemented later on. We do have some ideas how we could improve physics, but until we actually have things to show, we prefer to not dive into any details.

Anonymous

I have a question about YL2. As a rough estimate, how long do you think it will take to get a version of the character creator out?

yiffalicious

We've tried giving estimates before, but so far they've always turned out to be way too optimistic. At this point I'm feeling reluctant to give away any more estimates that I fear we'll just end up going past anyway. It's not healthy constantly failing to meet those made up dates, and it certainly isn't good for the project if the pressure gets to us and we start feeling inclined to take shortcuts. We're working hard everyday to create a truly unique and powerful tool that we think will change the furry community. As you can see from our monthly updates, we have a ton of stuff going on, and we're super excited about all the things we are developing! We have lots of more exciting things to show and news to share at the end of this month. Part of the reason why it's so hard giving estimates is because we have such high ambitions with our project, that we've essentially been forced to come up with our own custom made technologies and workflows to meet this challenge. Where we're going and what we're trying to do is for the most part completely uncharted territory, so getting it right the first time is difficult (if not impossible). It's a process, and through our experimentation and iterations we reach insight, that help us come up with better solutions. All I can say is that the project is healthy and we're making great progress all the time. We're much closer to a release now than we ever have been before!

RagnaBlade

I had a look at the trello page for YL1 and, while I understand you were displeased with the way things were going, a part of me would have wished that you had stuck it out till a good chunk of what's still left to do was done. but what can you do I suppose.

yiffalicious

I appreciate you sharing this. From my perspective, moving on to YL2 was definitely the right choice. I still stand behind that decision 100%. We're having so much fun building this app from the ground up to be just the way we want it. I'm hopeful that once we get the builds going, more and more people will reach the same conclusion as us.