Howdy, Stranger!

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

YL2 Update June 2018 - Areola & nipple customization!

odesodes Administrator
Hi all!

Hope you've had a great start of the summer!

I feel good about this month. We've been experimenting with so much cool stuff and I'm quite excited by all the possibilities. So lets jump straight into it!

Wobble experiment

First off - I've got a confession to make. I didn't work on the character creator the first week of the month. Something I've discovered in my life is that if you feel like doing something, it's usually much better to just go with that feeling than forcing yourself to do "what you're supposed to". In this case, I was supposed to work on the character editor, but I just couldn't get something a fan told us out of my head. The comment I had in mind was this:

I've had ideas for how to implement fat simulation for months, and this comment triggered me to really wanna pursue it, right then and there. So I put my ideas to the test, and started working on a solution.

The idea was to use the same calculations than govern "jiggle bones", but instead of using them on a per bone basis and let the skinning handle the mesh deformation, I wanted to see if I could use them on each individual vertex by using the offset to the closest bone to get the origin of rotation. Because of the amount of vertices in our models, naturally this would have to be accomplished using a computer shader. A body mask could be authored to tell just how much each part would be allowed to wobble.

(A mask representing how rigid the surface is, so in this case black means wobbly and white means firm.)

Here are the results of this experiment (we recommend the video links because of higher framerate):

https://gyazo.com/adec7f3b09128b17bd94dee8640901d2

https://gyazo.com/6daf6c66dc609dfcdeb95b82b0cddf5f

All this jigglyness is accomplished solely by this tech. There are no jiggle bones or physics running here, other than this custom Wobble component.

The results aren't quite what I was hoping for. Deformation around ass and thighs look OK, but there's some undesirable artifacts in other areas (especially the back). We had to disable wobble on the arms because it looked really bad. Perhaps it could be mitigated by better masking, but unfortunately I think it is for the most part a consequence of the technique used. In areas that have multiple bone influences, it was difficult to come up with a satisfactory method of calculating the bone offsets in such a way that no artifacts would be produced.

Even though we'll probably not end up using this particular tech displayed here, it goes to show you that we are definitely interested in fat simulation and are investigating how such tech could be implemented. This was also a really good exercise for me. I'm starting to feel very confident about working with and writing compute shaders, so I don't think the time we invested into researching this technique was wasted. Hopefully we can work out something better in the future.

Areola & nipple problem backstory

Trying to figure out how areola and nipple customization is supposed to work in YL2 has been a huge headache for us. Enabling you guys to truly express yourselves the way you like is at the heart of our philosophy, and in YL2 we're really trying to take it to the next level. Coming up with a tech that can honor these principles while at the same time being efficient, light-weight and adaptable has been a mind-bending problem for us to solve. Obviously there's a ton of different ways one could go on about tackling this problem, but each time we thought we had a solution, it meant we would either impose some limits on the user or that we would have to do an extreme amount of extra work to cover a satisfactory amount of customization (and in the end it still would be limited).

This problem is made even harder due to the way our character shapes work. For our different body types, we're using a technique called "wrapping". Essentially, when we author a body type, we sculpt a high poly model in Zbrush and then we "wrap" our low-poly mesh around it. Unfortunately, this process can cause some distortion in certain areas - the breasts being one of those more distortion-prone ones. This wouldn't necessarily a problem, if you'd work on areolas and nipples after the wrapping was made. But how could we pre-author different areolas for the breasts, if that content would get distorted on certain body types? Both blend shapes and maps would get distorted if the body shape was changed.

(Example of how a pre-authored texture gets distored if the shape is changed.)

https://gyazo.com/70d92d85abf7d1086c764140f0f4760e

Obviously we could start authoring custom areola content on a per body type basis, but that would just increase the amount of work required each time we introduce a new areola type or body type, as all previous areola content and body types would have to be adapted to this new content. It wouldn't be a viable long term solution, and this time around, we're all about the long term.

To solve this problem, we started thinking in terms of projecting pre-authored maps on to the model. That way, there wouldn't be any distortion, as the projection would adapt to whatever shape the breast currently has.

(Example of projection. The texture remains the same even as the surface changes.)

https://gyazo.com/74211c2c4bfb4f998542a5f5a4c4a845

However, this approach does come with other problems. Even if there isn't any texture distortion, differences in shape between body types means that it would be impossible to pre-bake these maps (height and normal maps), because those maps are baked against a very specific target. So if the shape of the low poly mesh is changed, those maps would no longer look right on that new shape.

We still liked the idea of projection though since it solves the distortion problem, so we decided to continue researching in that direction. But instead now we had a new problem - how can we generate height and normal maps inside the app at runtime that fit the current user authored breast shape?

Curve projection

Curve projection is our attempt to solve the height and normal map generation and projection for areola and nipple customization. It's a custom technique we have researched and developed ourselves.

The idea behind the curve projection technique is simple - we take a user-defined curve and project it onto a surface. Each surface texel then gets its own location on the curve, that we can use to offset it (height map). The area beneath the curve represent the height, the left-most position represents the areola border, and the right most position represents the center of the breast.

Here's a visualization of the idea curve projection idea:

https://gyazo.com/a135131bb25252d1368f3af2d4c04720

https://gyazo.com/3aa72a41cacd8a30393c3ef566374141

(Note: no mesh is generated, this is just a visualization. Instead, a height map is generated.)

So using a curve, you're able to essentially sculpt your own shape for areola and nipple.

Let's see this tech in action!

(By using a curve, you're able to sculpt areola and nipple the way you want.)

https://gyazo.com/b80f2691416d011e43bdf48b34e4b7cd

(Further proof that this is an actual projection and not some fakery. NOTE! The projection is stored in a height and normal map, and only needs to project once during character creation process to generate the maps.)

https://gyazo.com/7c49c5879211cc7d1007cf681a725aa2

Naturally, you will be able to change smoothness and colors individually for the areola. (A mask map is generated in the projection, allowing us to color the areola separately.)

https://gyazo.com/fe0e876e8b15da898da35b1bff428e50

We intend to make the areola possible to fill in with a gradient, meaning you can blend it in more easily with the base character color, and also create smooth color transitions. This is just a simple color test we did.

You might be wondering what's behind the areola if none is projected? You'd be right if you guessed that it's completely featureless!

(This is what the breasts looks like w/o projection.)

We think this is good because I've seen characters that don't have areola or nipples. So it adds even more versatility to the character creator. (Areola projection will be optional.)

There's a lot more to the development of this tech than we are writing here, but that would be an essay of its own, so we decided to focus on the most important stuff - the results! Just know that this was VERY HARD to figure out and implement, lol. :)

Things left to be done

Right now, there's no way to fold the nipple in more ways than circularly (using curve sculpting). But we want to support more folds than that. An idea we have is to use yet another projection after the areola & nipple projection, in this case a texture projection, than make the nipple fold in many different ways (essentially a reversed height map). So for each fold, we'd have a pre-authored texture that gets projected into the nipple, and causes the fold. So far this is just an idea however and more research and experimentation is required.

Another idea we have is to use a vector shape in the projection, so you can create more forms than just circular ones, for example a heart shape. This is however just an idea at this stage and I'm not even certain it can be combined with the curve tech or if it needs to be a system of its own. It's definitely worth investigating though.

Curve editor

Naturally, the user needs to have some way to create these curves for the areola projection (curve sculpting) inside the app. So we've begun implementing our own curve editor:

https://gyazo.com/cb52ea43335a18a58651af9fa272db33

(Double click to add more points.)

https://gyazo.com/9a14fe883d0f687f795bd68394ac6fcc

(Double click between points to add more between them.)

https://gyazo.com/de063b5f1a68b877be51b4f06bcb1ab2

(Horizontal sorting.)

https://gyazo.com/32addd20b3c875c064acd537df26bf3c

(Click + drag to box select. Drag multiple points. Points' values are clamped.)

https://gyazo.com/0757a5a04f512effe8770f38a1d6c25b

(Right click points to get more options. Set values directly.)

https://gyazo.com/5d8231d082edb1ecf62274e2387e21b1

Right now we only support 2 different kinds of splines for the whole curve, but we want to enable each point to have its own interpolation. Essentially we want to try and mimic the behaviour in unity editor, so more work is still required.

This curve editor will be useful for more things than just areola and nipple sculpting. We intend to allow you to use it for fluff shape authoring too, and I'm sure we can think of more uses along the way.

Texture projection

This is more of a side note than anything, but I felt like bringing it up because it does affect our project.

In YL2 we're using plenty of texture projection. Previously, that was accomplished using a 3rd party library. Unfortunately, this library is lacking in many ways, and since the source code is unavailable, there's no way to fix it directly. We had to make so many hacky work-arounds to make it function properly for our project, which is undesirable because that extra code virtually doubles the amount of time it takes to perform a projection. And to add insult to injury, that 3rd party lib is also abandonware.

Texture projection has always seemed like magic to me. I didn't have any idea how it actually worked or how to implement it. Somehow, curve projection was a lot easier for me to grasp, but after having made it I was like - "Hey, wait a minute. Couldn't I just make these and these modifications to the curve projection, and then I'd have texture projection?". And sure enough, after having made those modifications, we had our own texture projection system!

This is great because now we have full understanding of how texture projection works and can alter it exactly the way we like it. No need for hacky work-arounds to get all the features we need, all being carried out super efficiently!

https://gyazo.com/8c689a80fc73115ff39eb6a4b55842a0

(Demo showing off our custom texture projection system projecting a texture in realtime against a surface. NOTE! Projection is baked into map, and would only have to be done once.)

https://gyazo.com/dc0deac081c7c5f36cfea3b308f99830

(The same system, here with an angle falloff, all being carried out in a single shader pass which previously would have required hacking and multiple passes with the 3rd party lib.)

New balls mesh + model changes

While Dogson has been occupied with preparing for a relocation, he's still managed to get some good stuff done this month. After much thought and iteration, we have come to the conclusion that the shaft socket needs to be moved into the same mesh as the balls. The reason for this is that in order to give the balls the right feeling of weight, they need to be able to pull and stretch the mesh farther up. There simply wasn't any good way to make the balls deformation look good if they were completely separated from the rest of the mesh and perineum. So instead now we've chosen to merge the socket and ball meshes into its own mesh.

This means we've also had to remove the socket from the body mesh (the socket used to reside there previously). As you might imagine, this has required some rework.

(The socket and balls have merged into its own mesh.)

https://gyazo.com/50d0331786a12209cd45258a8326ea09

With the help of our depth fading tech that we showed off in our previous update, the meshes blend in nicely with eachother and create a seamless transition.

New feet models

All welcome Nomistrav, our newest addition to the team!

Nomistrav is helping us by providing artistic feedback on our work - improving the look of our models. One of the first tasks Nomistrav did was to suggest improvements on Dogson's feet models. Here are some before and after images:

These comparisons aren't 100% fair since claws are missing from the older ones. Still, as you can see the shape is much more well defined and detailed in the later iterations!

What happened to the shape layering system?

You might remember that we talked about a shape layering system months ago that was just around the corner, and then seemingly nothing happened. So what's going on there?

Well, the system is still here and is more or less complete. It's still missing content though. The thing is that the content is something that can only be authored late in the character development process, when the characters and body parts have been finalized. Right now we're still in a process where we iterate on the content, and come up with new and better methods of implementing them. For example, the areola projection tech was something we had no idea how it would work prior to researching and implementing it, and so we couldn't possibly have adapted our characters to work with it. Now that we have it, we're adapting our models to fit it. Same goes for the shaft socket, which is being moved from the body mesh into its own ball + socket mesh. Each time we make changes like these, it affects any shape we author on the model, which is why we wanna finalize this stuff first before we start going all out on creating content for the shape layering system.

Update on current schedule

So, there's no easy way to say this, but... as it looks right now, a release of the character creator during the summer seems highly unlikely. This isn't the first time I've been far too optimistic about release dates, and at this point I'm starting to feel very reluctant about giving any more estimates that we'll probably just end up going past anyway. It certainly doesn't feel good giving you guys the hope of a release date that we then fail to meet, and it certainly isn't having a good impact on our morale either. It feels dishonest, which is very tough for us because that is absolutely not our intent.

I think the reason why it's so hard to give a good estimate comes down to mainly two things for us. Firstly, we don't know exactly how long or how complicated a task will be to implement until we start really diving into it. Take this areola projection tech for example. We had no idea this would be the solution to the areola problem and that it would require so much time and research to develop. In the end, I'm super happy about this tech and think it will be a huge positive addition to the character editor, so I definitely consider that time to have been well invested. But it did take time to research, and it isn't even finished yet! More things will still need to be added, and the curve editor (which is a small project of its own) is gonna take time to implement fully too.

Secondly (and I suppose this connects to the first point) - in YL2 we're really reluctant to take shortcuts. We want to create something that is truly unique and that will last for a long time. There have been so many times where we could have cut corners and just used some existing half-assed solution to get something out quicker, but that undoubtedly would have left you guys with fewer options in the end. We don't wanna develop ourselves into a corner. If we think that going down an uncharted path can potentially offer a better solution, we're very keen to explore it! Even it it means it'll cost time. It will pay off in the long term. With YL2, we're on a personal mission to change the furry community, and we take this mission very seriously!

The best date I can give right now is "2018", and given our recent estimation track record, even that date is making me anxious. I'm really starting to understand why game developers are so reluctant to share dates and why "when it's done" is such a thing. All I can say is that we're working hard and making great progress, as you can see from our updates. At this point YL2 is a personal quest for us that we will finish no matter what.

Summary

This month we've been experimenting different techs. The areola projection tech (curve sculpting) seems very promising, and we think it will be a huge positive addition to the character creator in YL2. Using this tech, you'll be able to sculpt circular areolas and nipples exactly the way you like, directly inside the editor!

We've also been experimenting with a "wobble" tech (fat simulation), but so far the results haven't quite been what we were looking for. It looks good in some areas, but not in others. It's definitely something we want to continue researching though when we have more time for it.

Dogson has been occupied with a relocation, but has still managed to get some great work done. He's been working on updated feet models, and also a new ball + socket mesh that we decided is a better way to go than having the socket forcibly included in the main body mesh.

As it looks right now, unfortunately it seems unlikely that there will be a release during the summer. When there are so many unknowns in a project such as this, it's very hard to give a good estimate. We feel bad about giving dates only to let you guys down. It definitely isn't our intent. Making a tool like YL2 is a very difficult process, but we're making great progress all the time as you can see from our updates and we're determined to finish it no matter what!

Comments

  • Is there an estimate on YL2's release date ? 
    Is there info I can read on that?
  • Super interesting stuff. I find it amazing that you guys are trying to balance cool features while making them user friendly!
  • "Wobble tech" and areola sculpting are cool features for sure, they adds way more realism and variety, but I feel like you've just tried to tackle a long term goal during alpha development.

    I'm a bit concerned because it's not the first time I've seem something like this happen during development of games and apps.

    Developers begin with a somewhat modest and achievable goal and along the road they come up with cool new features and stuff that would be great to have, but instead of adding them after the first development circle they try to add them during early development and the thing quickly snowballs, dragging development, making things more and more complicated, pushing deadlines and of course, the more stuff, the more problems seem to pop-up. Which brings us to the Malcom in the middle gif from the previous development update.

    You have something very promising here: the universal mesh and the blend tech. With those 2 techs you have a solid foundation. Just a few parts and sliders and you have almost unlimited customization.

    I think you've made the right call separating genitalia from the universal mesh, the more universal the better. In that sense you're working hard now to work less in the future.

    There are tons and tons of things that can be added to increase variety and I'm sure the furry community, as diverse as it is, will be more than happy to help once modding comes to YL2.

    People are gonna want so many different things, but you don't need to create them all from scratch by yourselves. The universal mesh and the blend tech allow people to contribute with their own authored body parts.

    Head shapes, hair styles, muzzles/beaks/mouths&noses, ears, eyes&eyebrows, tails/abdomens, genitals, hands, wings, horns/antennae, feet.

    And it won't stop just there, there are way more things people are gonna want.

    -Bioluminiscence
    -Tail genitalia
    -Multiple genital support.
    -Non-biped bodies (taur, naga, mermaid...)
    -extra appendages and body stuff (spikes, fins, carapace/bone plating, shells, tentacles, quills, more than 2 arms...)
    -Feathers

    But those are long term goals as well.
  • odesodes Administrator
    Is there an estimate on YL2's release date ? 
    Is there info I can read on that?
    We literally wrote a whole section discussing this topic in the text above. Short answer is - we don't know, but we're aiming for 2018 release regarding the character creator.

    @TheBiologist 

    I understand what you're saying, but I don't think that's what's happening in our project. There have been (and still are) many unknowns, and in trying to solve these unknowns, we've given it our all in order to come up with something that we think will last for a long time. It's not like areola and nipple customization was ever were up for debate whether or not they'd be included, but rather how they'd be. If we'd lessen our ambitious and used some existing solution, naturally we could've solved this quicker, but it would leave you with fewer options in the end. We really, really don't wanna go down a path that we're going to regret later on. Once you've started developing in a direction, it can be hard to undo it or alter it, which is why we wanna "get it right" the first time.

    You might argue then that we could've tackled the areola and nipples later on, but that's not the case either. This implementation directly affects how the meshes need to be modelled, and thus, would require rework. The code would require refactoring as well. It's better to know how everything is supposed to fit together before you start putting it together. We can't know this until we try to solve each individual problem, which is why it's such an iterative process. We simply don't know until we try, and there are still many things left to try.

    Also, just some notes here. It seems like you have a slightly wrong perception of what this character editor will be, at least initially. For the most part, what you will do is combine different pre-authored parts together, and choose a pre-existing body type (with some parameters, for example height). You can also blend different body types together with a mask if you want to.

    Initially, there will be no way to import custom body types (although it's something we want to explore for sure, we just need to let things mature a bit first as many things will change during the development). The only custom content that you will be able to import is masks, maps and appendage models (like spikes). The rest is essentially a combination of your choices in the editor, and the texture builder system which let's you pretty much color your character in any way you like.

    Note that everything we develop for the YL2 character editor is meant to be cloud friendly, which is why we can't allow just any type or data-size of custom content. We need these things to be small, so they can be stored efficiently and downloaded fast, which is why we've invested so heavily into procedural content creation techniques.

    You have something very promising here: the universal mesh and the blend tech. With those 2 techs you have a solid foundation. Just a few parts and sliders and you have almost unlimited customization. 

    I think you've made the right call separating genitalia from the universal mesh, the more universal the better. In that sense you're working hard now to work less in the future.

    It's only the male genitalia and socket that is separate - the female genitalia is still "hard-coded" into a variation of the universal mesh. This part would be very difficult to move out into its own mesh. I'm not sure it can be accomplished, and we have no such plans atm. I'm not sure how or if we will offer multiple variation of female genitalia. Perhaps with time we could implement more, but for the first release, there will only be 1 variation.

    - Bioluminiscence
    Emission maps will be possible to author from the first release.

    - Tail genitalia
    No concrete plans, but thanks for bringing it up. It's a challenge I'd enjoy trying to solve.

    - Multiple genital support.
    No plans. It would be difficult to write a sex solver for this scenario. If an extra shaft is just essentially a decoration however, it would be more doable, naturally.

    - Non-biped bodies (taur, naga, mermaid...)
    No plans, but I supposed it could be hacked using a future clothing system.

    - Extra appendages and body stuff
    Simple appendages like spikes and stuff will be supported, but not extra arms. At least not if you mean that they'd be movable with IK.

    - Feathers
    The appendage system will have a variation that allows for "Fluff" - custom authored (in the editor) items that could be made to resemble feathers.

    - Head shapes
    Heads need to be set up in a specific way, and is not something we're going to support custom import for, at least not initially. Perhaps later as the project matures.

    - Hair styles
    We haven't gotten to it yet, but it's definitely something we want to have support for. It could be done as static model import.

    - Muzzles/beaks/mouths & noses
    Simple, static models could be added I suppose, but skinned stuff - no.

    - Ears
    Sure, if they're static.

    - Eyes & eyebrows
    Eyes is not something we have started working on yet, but we will try to make them as customizable as possible inside the editor itself. I don't think importing custom eyes is a good idea if we intend to make things follow an art direction.

    - Tails
    Tails require skinning and skeleton - things that we won't offer support for regarding custom models, at least not initially. We will however offer different pre-authored tails.

    - Abdomens
    I'm a bit confused about this. An abdomen is part of the main body, and should not be a part. Therefore, this should be part of the body shape and texture. If you'd want a custom abdomen, your best bet would be support for custom body types.

    - Genitals/Hands/Wings/Horns/Antennae/Feet.
    These things need to be set up in specific way, and also require skeletons and skinning. We won't offer support for that, at least not initially. 
  • I meant arthropod abdomens, basically like a tail, but static.
  • Heh, reading this update was like watching my old calculus homework being used for porn.  
  • odesodes Administrator
    Calculus finally proven to be useful for something important!
  • edited July 2018
    @odes
    I see lots of tech stuff for 4-5 months, this is actually amazing how hard from scratch make something. But what about main course? Better poses IK? New features with custom "animations"? What's new about interaction overall? 

    Or you just gonna move everything from YL1 without changes?

    And still isn't clear properly, what will we have in early YL2, Character Editor + Interaction (Like Yl1) Or just Character Editor, just for play around?
  • @JackM from what i understand, they want to soley focus on the character creation for now, since the framework used to make the interactions heavily relies on how the characters will be made. if i recall, they want to make interactions based on keyframes and not snapshots, basically making it work similarly to SFM. this should allow way more creativity with interactions, since it won't just be restricted to vaginal/anal sex or tricky manipulation of invisible characters. what they want to release is less of an early version of YL2 and more of a character creator, meaning that you can create your character, possibly pose them (by themselves), but with very little interaction. i could be wrong on a lot of this, so feel free to correct me, odes.
  • odesodes Administrator
    @JackM
    The character creator will be the first thing to be relased for YL2. Interaction systems like IK and animation will be implemented later on.

    YL2 is a completely new project, and shares none of the code from Yiffalicious, other than some minor functions. 
  • The nipple curve projection tech reminds me a lot of a technique in Maya where you create a NURBS curve and rotate it to create a NURBS plane. Is that where you got the idea to implement this tech? It's a super cool solution. To be honest, I came (lol) here for the porn, but at this point I'm staying for the interesting solutions to problems you guys come up with.

    I kind of feel like that's something that sets this project apart from other furry porn games. Y'all are putting a lot of effort into the tech itself. I really appreciate that. You guys are gonna make something truly special, and I'm stoked to be here to see it develop. YL1 got my feet wet in 3D animation, which led me to start learning 3D modeling and animation myself. I definitely have a much greater appreciation for the work you're doing now than I did a year ago!

    So I guess what I'm saying is: keep up the great work ahaha
Sign In or Register to comment.