Home Artists Posts Import Register

Content

Hello all!

We hope you're doing well.

Let me start off by apologizing for the lack of updates as of late. I understand it's frustrating not knowing what's going on. Likewise, it has been frustrating and stressful for us not being able to put out updates at the pace we were intending. The reason for the lack of updates is simple - we haven't been able to reach the goals we wanted within the time frame we set. I was absolutely convinced we'd reach a certain level of completion several weeks ago, and now - when we still haven't - it's becoming clear I severely misjudged just how much time is required to get there.

Writing in this fashion almost makes it sound like everything has gone to hell or something, but that's not what I mean at all. I want to stress that this is not about us hitting a wall or being stuck. We're making good progress, it's just that I underestimated how much time it takes to iterate on the content and getting it into the app. It's frustrating, because the coding parts of the things we wanted to show off (regarding the shape layering system) were finished weeks ago, but preparing the content turned out to require far more iterations than I expected. I think I grew overconfident in our ability to put things out, having focused solely on my own work and the coding, forgetting just how much it takes to synchronize with another person and making sure everything works the way you intended. In retrospect, I don't know what I was thinking, believing all of this could be completed in the time I predicted. It goes without saying that our original plan of releasing a build in the spring has been pushed back to summer.

In any case, even though my predictions were wrong, it's not like we've lost time or anything. While Dogson has been iterating on the content, I've been implementing several features that were going to be implemented sooner or later anyway, as well as new features I hadn't even thought of implementing at first, in addition to going over the code, greatly enhancing and optimizing it. I've never felt as satisfied with the quality of my work as I am in this project!

And it is given these circumstances that I find myself in somewhat of a predicament. On the one hand, I want to lay down all cards on the table and show off everything that we've been working on... But on the other hand, so much content is still missing or not yet ready for public display. Most of these features would look sooo much more impressive if we actually had the intended content to go with it, so showing them off now would sort of ruin it. Some features are so dependent on content, that without it they become meaningless. For example, we've been investing a tremendous amount time and effort into creating a system for making models and maps seamless [where the different body parts connect], but in order for that to work, the content has to be prepared in a very specific way, in addition to the maps that actually have to exist [for the effect to be complete]. We haven't gotten that far yet, so showing off the seamless tech on something that is only half done sort of defeats its purpose.

It is for reasons like this that I've chosen to push showing off some of these features (like the shape layering system) to a later date, when we feel more ready and have more content to go on. I know some of you will disagree with this decision, and if that's the case we are ready to face the consequences. We are simply trying to do what we believe is best long term.

I can however offer you something else instead - a more in depth text about our vision with the character creator in YL2 - how it will work from a technical standpoint. You can see it as a form of promise we're making to you of what it is we're trying to achieve. It also acts as a summary of the work we've done so far. Most of these things have already been implemented. All we need is the content and final gluing, which we are working on as we speak. Hopefully our enthusiasm will brush off on you!

YL2 Character Editor - Feature dive

The character editor in YL2 is not one that you can really compare to that of other games. Not in the sense that it is necessarily better (because that comes down to a matter of perspective) but rather in the sense of how it works, and what it's trying to achieve. I like to think of it as more closely resembling a 3D authoring application than a traditional game-esque character editor. You'll have great freedom in creating very custom effects for your character, so if you're an artist, this will be a huge advantage for you!

Main character options

Starting with the basic stuff.

(Properties are distributed among different objects in a hierarchy. The interface is not yet ready.)

Inflation category

This one you'll probably recognize from Yiffalicious (1). Here you can inflate (or deflate) parts of the body to your liking.

Unlike other settings in the character builder, inflation options will be present during interaction authoring, meaning you can change inflation of a character during the course of an interaction (but not change the head model, for example).

Shape category

Height

Set the height of the model, i.e. make the model tall or short. Not the same as scale, as scale doesn't take body proportions into account.

Scale

Set the scale of the model (make it bigger or smaller).

Species category

Genitals

You will be able to select from three different genitals - dick, dick + vagina, or vagina. Any body type that you have selected in the shape layering system will automatically adapt to fit your genital selection, meaning that body type and gender are separate. (More on shape layers below.)

Head

When clicking the head property, a new window appears displaying all the heads that are available in the app. Currently, we don't have any images for any of the heads, but closer to release each item will have a picture associated with it.

You can also filter this window.

The window is endless scrolling through pooling (efficient use of resources).

Hands

Same behaviour as the head, but for hands instead.

Hands can differ greatly from eachother. They can have different number of fingers, be from different species and even have webbing for example.

Feet

Same behavior as hands, but for feet.

Items can be either digitigrade or plantigrade. If a digitigrade type foot is chosen, the body mesh will adapt to fit the digitigrade feet.

Shaft

Select a shaft to use for the character from an ever increasing selection of different shafts.

This one will probably get its own category in the future, where size is also possible to tweak.

This option will only be available if you've chosen dick or dick + vagina in the genital selection.

Color category

Instead of defining a color inside each and every layer (more about layers below in the texture builder section), colors in YL2 are defined in a single place. Layers reference an index from the color array property in the character object. This means if you change a color, all layers that are using that color index will be changed automatically. It also means you don't have to go inside each one of those layers and change their colors manually (for example if many of them use the same color).

Gradients are another type of color item in YL2 that can be used by gradient layers (more about them further down). They interpolate between colors, and they also use color indexes from the color array, meaning you get a single place to control all colors in the character file.

To add a color, click the plus sign:

To remove a color, right click it:

To add a gradient, click the plus sign:

Gradients reference color indexes, meaning if you change a color, the gradient will change too:

Use many (up to 20) colors in a gradient to achieve the effect you want:

Masking system

YL2 makes prevalent use of "masks". A mask is a single channel texture that acts as a selection upon a mesh. In YL2, they're utilized to apply colors and shapes to specific parts of a model, but also for special effects. You can combine them to create any type of mask you like, using the same blend modes that you find in Photoshop.

The problem with textures

Textures are huge resources. They take up perhaps 95% of all content in Yiffalicious (1). In YL2, we want to enable you to create very custom color schemes for your characters, while keeping the character files small so they're compatible with the cloud and fast to download. For this reason, we have implemented a procedural masking system that greatly reduces the amount of data required to create a certain mask. As an example, a radial selection theoretically only requires 2 pieces of data - a source point and a radius. In data terms, that would mean a Vector3 and a float, resulting in 16 bytes of data. Compare that to a 2048x2048 RGB texture that requires 12,582,912 bytes! (Uncompressed.)

You're free to use them as you want, or not at all if you so choose. Procedural masks exist solely to offer you more options while keeping the character files small.

Procedural masks

Radial gradient

This mask takes a point, radius and blend parameter as inputs. The mask is filled from the point source towards its radius, according to the blend parameter. It's a spherical type of selection.

Mask capsule gradient

The capsule gradient is similar to a radial gradient, but instead of originating from a single point, it originates from a line (defined by two points).

Mask linear gradient

The linear gradient is defined by two points. The first point means black, and the second one means white. Texture surface area in between the points will be blended from black to white, depending on where it is on the virtual line defined by the two points. Surface area beyond the points will be either completely white or black, depending on which end it is.

Mask operation

The mask operation mask is probably one of the most interesting ones. Instead of defining a mask itself, it takes two existing masks as input and performs a blend operation on them. It offers the same 18 blend modes supported by layers. Furthermore, because a Mask operation inherits from "Mask", it can be used as input to another Mask operation! This allows for some really interesting opportunities.

(MaskTexture and LinearGradient combined (multiplied) in a MaskOperation to create a gradually increasing emission (FillMask layer).)

Mask decal

Mask decal is similar to the Mask texture in the sense that it takes a texture as input. This texture is not a predefined selection, but rather an image that can be projected onto the mesh. You can of course tweak where this decal is projected, its size and rotation.

As other masks, this operation is performed on the GPU and thus is very fast. What you see below is texture generation performed in real time.

Mask select side

Selects left or right side of the model.

Mask texture

A pre-authored selection on a model, for example a teeth selection, nose or inside of ears. We intend to create such pre-authored selections to ease coloration of your characters.

Custom masks

We realize it's not enough to rely solely on these masks for many patterns and effects. For this reason, we will allow custom import of masks (textures). Since textures take such huge amounts of space, there will be a size restriction on the final character file, meaning you need to use custom textures with care to not exceed this limit. (We are still discussing what the limit will be.)

To reduce the size of imported textures, we have implemented a multi threaded wrapper class from the official 7-zip library, meaning you get top-notch lossless compression. Due to the way the 7-zip algorithm works, simple masks (for example, masks that are for the most part either just black or white in simple patterns) will take very little space, while more granular masks will take more space (like large gradients). For this reason, it will be good to use procedural masks for gradient effects, if possible.

You can import a custom texture by simply dragging and dropping it inside YL2. An import window will appear, allowing you to select which channels you want to import. If you have a single mask in the texture you're importing, you only need to import 1 channel.

(A WIP for the import window. Each square will show each channel respectively. In the input fields at the bottom, you can specify custom names for the masks, or leave them alone to get auto-generated names.)

A cool thing about the import system in YL2 is that it will remember where the files came from, so if you change them in an outside application, YL2 will detect the changes and reimport the new files' data and apply the changes automatically. This makes it very convenient to jump between different applications (for example if you're painting in Substance Painter or Photoshop).

Mask filters

In addition to mask themselves, we have also implemented filters that can be added to masks. So far we have implemented these filters.

Invert

Invert the mask (turn black areas white, and white areas black).

Flip

Flip the resulting mask, so right side becomes left, and left side becomes right.

Mirror

Mirror the mask. You have three different options for the mirror operation - add both sides together, mirror left to right, or mirror right to left.

Levels

Perform a photoshop-eque levels operation on the mask.

Edge blur

Blur the edge of the mask.

Texture builder

The texture builder is a system we have created to fill a character with color. It is made up by different types of layers that you can choose from when creating your stack of layers, that write into 4 different textures - albedo (color), emission, smoothness and metalness.

If you're used to Substance Painter, you'll recognize yourself.

Each model use its own texture builder. For example, the body, head, hands and feet use the same texture builder, the dick (if you model has one) has its own texture builder, and if you add ears or tails to your model, those will also use their own texture builders.

LayerFill

This is the most basic type of layer. It simply just takes a color input (index from color array) and influences (sliders) for how much it affects the different channels.

LayerFillMask

This layer takes a mask as input (in addition to color), meaning you only fill the masked part of the model.

LayerFillGradientMask

This mask takes a color gradient and two masks as inputs - one to decide where to fill the gradient, and the other mask to decide what color to use when filling the masked area (from the gradient). References a gradient index.

Part system

Parts are additional models that are not part of the main body, but that can be added to it. Examples of such parts are tails and ears. They can be placed where-ever and however you like. Options for mirroring exist too, so you only need to place a ear on one side, and it will be automatically mirrored to the other side.

Parts have their own texture builders.

Appendage system

Appendages work similarly to parts, in the sense that they are their own models that can be added to a model. However, they don't have their own texture builders.

Appendage group

To reduce draw calls, appendages are organized into groups. Each group references a model, while each appendage instance within the group contains data for location, rotation and scaling. If the model is changed in the appendage group, all instances will be affected.

Appendage group fluff

The fluff appendage group is special in the sense that it doesn't reference a pre-authored model. Instead you define a spline, along which a model will be extruded. Each spline point also references a color index, meaning colors are interpolated along the spline according to this selection. You can also sample colors from each instance's own attachment point, so it blends into the body's textures. Each instance can also blend into the attachment point's normals, making it seamlessly blend into the body.

(Turning blending on and off on a fluff instance.)

Fluff groups can also have a mask attached, to achieve a certain cut along the spline.

Shape layers

Shape layers is the way you define shape for your model in YL2. In addition to affecting the actual shape of the mesh, they also affect the normal and AO maps of the character. Each shape layer can be masked, so if you only want to apply a shape on a certain part of the mesh, you can do that. So far we have implemented three different shape layers:

Blend shape

This is the most basic type of layer and also the foundation of the shape layering system. Each blend shape layer can reference a pre-authored body type, complete with normal and AO maps. Like heads and other body parts, body types are selected from a browser with images.

Unlike some other character creators, we are not limited to small adjustments in these body types. These shapes can be absolutely huge, or small, and everything in between. This tech also handles seams between parts, making them seamless regardless of what shape is thrown at them. This means we are not limited by having to interface each body part to a specific shape. Taking the neck as an example, where the body connects with the head (2 different parts) - this area could be altered (for example be made extremely muscular) and they would still connect seamlessly.

Blend shape layers, like all layers, support masking. But masking a blend shape can look pretty weird, and not end up the way you wanted at all. To give you an example, have a look at this image:

This is a somewhat muscular feminine shape. Now, imagine we wanted to apply this shape solely on the arms by masking them out. Then you'd get something like this:

That looks... pretty bad. The shoulders are offset and it generally doesn't look good at all.

To fix this problem, we have invented our own tech that we like to call "shape correction". This correction works by "re-imagining" what the shape would look like if applied as an offset to the current skeleton, rather than as something that offsets the skeleton. With shape correction applied, this is the result we get for the scenario above (animation):

To give you a better idea of what it's actually doing, look at these two images.

Here's the default shape:

And here it is again, but with shape correction applied:

Notice how the skeleton is changed in the first picture, but remains in place in the second one.

Now, this system is mostly intended to work together with masks, so applying it on the whole model is a bit iffy. But just as a way to explain how the tech works...

We're really excited about this technology and hope it will help you create better models!

Inflate

This layer simply moves each vertex along its normal, either inward or outward. With masking, it can act as a way to make some parts bigger by default (for example muscles).

HeightToNormal

This layer is a bit special, and will probably be moved out of the shape layering system into its own system at some point. But regardless of where it will be located, we are super excited about this layer!

HeightToNormal doesn't affect the mesh, rather it only affects the normal and AO maps. It takes a mask as input (custom texture if you like) and converts it into a normal map that is combined with the normal maps in the shape stack. Since YL2 will offer native model export, this means you could export the model you're working on, sculpt custom details into it (for example dragon scales), bake them into a height map, and then import that texture into the app. Since it is a single channel texture (a mask), it doesn't take anywhere near as much space as a normal map, and you get custom normals, all compatible with the cloud! (Given reasonable texture size.) SUPER COOL!

It works exactly the same way and has the same properties as Substance's HeightToNormal node, so if you're familiar with that one, you'll know what to expect.

We can't wait to see what artists will create using this layer! We're super excited about it.

Things missing from this text

Face options

We don't know yet what the face options will be like. At least you'll be getting a feminine -> masculine slider, but other than that we haven't decided anything yet. We haven't implemented this slider yet, but doing so will be quick. It's mostly a content thing.

Genital options

We want to offer genital options. Dicks are easy, as it's mostly a size and length thing on a "contained" model, where as for feminine genitalia, they're placed directly on the body mesh, and shapes can be so different, so making all that work on all body types is a more complex problem.

Nipple & areola options

We have more tangible ideas regarding this topic, of how to create a large selection of different areolas and nipples to choose from, but nothing that we have started implementing yet. Only ideas.

Eye options

We will definitely have options for eyes, but we haven't gotten as far as to discussing what they will be just yet.

Detail textures

Detail textures are repeating patterns that you can use to create immense detail in models. We don't have a system implemented for this yet, but we have tangible ideas for how to make something like it accessible to users. This means you would, for example, get a way to fill your character with super high quality snake-like skin. Since custom textures will be a thing, you would be able to author your own detail textures to create the kind of effect you want.

We want to make it compatible with the masking system, so you get a way to only apply the detail texture where you want.

Summary

Game development (or rather app development in this case) can be a long and arduous process, and things don't always play out the way you thought they would. While we've made good progress, we haven't been able to reach the goals we intended to by this time. We haven't hit a wall or anything though, it's just that creating and integrating content has turned out to require more iterations than we anticipated.

While dogson has been iterating on the content, I've been improving old features and implementing new ones into the app. We are super excited about all different tools you will have when designing your characters, and hope they will help you express yourself in truly unique ways while retaining cloud compatibility and keeping relatively small file sizes.

We're super excited about the development and are working as hard as ever. We hope you still have faith in us!

- odes

P.S.

The submission picture at the top is of a feminine muscular body type that we've been working on. It accurately depicts what kind of detail you can come to expect in YL2 as far as shape, normal and AO maps go.

Files

(No title)

Comments

lothkafas

Happy to see an update ^^

Maot

good work!

Maot

when will it be released?

Anonymous

The new stuff looks really awesome. I hope you guys don't beat yourselves up too much over the time extension. It happens in projects when you have unexpected obstacles. I'd rather have carefully planned out content anyways than a hodge podge of sort of working stuff so take your time on it. Nice work so far

Anonymous

Sounds like you need to hire some more staff like a community manager, and a COO

Drak Drake

Don't despair! Code as complicated as this takes time. I, for one, will continue supporting until the end of time. Keep up the good work!

ryu lee

Looks nice. Really wish I can try this now. :(

Waves

Wonderful update! Beefy female looks great, everything looks like it fits well, even her breasts atop her pecks! Does texture detail include different shaders like fur, feathers, and scales, or is that something different? Will unguligrades still exist?

draeath

There's a whole lot of hard work going on with the backend stuff. I hope folks don't get impatient, taking time on this stuff *now* is critical.

Anonymous

I won't lie, paying every month for nothing but updates regarding stuff I'll never understand is getting frustrating. But you guys always deliver, which is why i'll keep waiting. It just sucks.

yiffalicious

Thanks Waves! For now we only have 1 shader. We are hoping the fluff system will be sufficient to give the appearance of things like fur and feathers, by placing the instances in critical locations (such as face, shoulders, elbows and chest). Detail textures are more like repeating patterns that you tile several times (rather than just once as with a regular texture). That way, you get super high quality details. Detail texture define the "feel" of a material, so they work great for things like skin details. Repeating patterns of scales and such could be created using a detail texture. For more custom scales in specific areas, you could sculpt your own in an outside application, bake them into a height map, and then import the texture. Unguligrade feet will definitely be a thing you can select at some point.

THe GERio

YL2 .... can we expect it this year?

yiffalicious

We're aiming to get the character creator part of YL2 out sometime during the summer.

Dark Sura

It is impressive all the work you are doing in reality that I do not mind waiting if the result is what is explained.

Dark Sura

It really looks like a 3d modeling editor with all those options and the possibility of using masks. It would be very interesting if you could also export the created characters. L'm fond of 3d printing and I see the potential of this character editor as a very interesting tool. Continue like this, you are doing great.

Vandorbelt

My thoughts exactly. Could be a powerful tool for people to make custom furry characters, e.g. fursonas and the like. I'm hoping they'll make a SFW version as well and, as you suggested, allow for exporting the 3D model.

Anonymous

The chance to create muscle furries? Sign me up!

Anonymous

Looks great! Keep up the good work!

yiffalicious

YL2 will allow model export. They would require some manual tweaking before being suitable for 3D printing though.

Yogoloth

One question I have is: Do you guys have any provision for feral body shapes? I'd love to see some proper feral dragons in this! I understand it's not a priority, but it would be an awesome feature!

yiffalicious

The character creator is built around a bipedal skeleton, so ferals wouldn't work so well with that. Perhaps they could be implemented if we introduced an additional skeleton archetype, but there are no such plans at the moment.

Yogoloth

That's fair enough. Once you're further along with the development, would it be possible to do a poll to see how many people would be interested? Not a yes/no vote, more like a head count of people who ARE interested?

yiffalicious

I suppose, but for now our focus remains on implementing our original plans. It's too early to say what will happen after that.

Anonymous

A lot of these examples use a blank featureless face model, do you intend to keep that in game as an option? I think it'd be a potentially useful feature to have.

Yogoloth

No problem, that makes perfect sense. I still eagerly wait to see what you guys come up with. Very exciting project!

yiffalicious

It wasn't something we were planning, but if enough people want it we might add an option to create a featureless model.

MudWolf11

The road may be longer than you had anticipated, but I'll be supporting you to go as far as you can as much as I can. Keep up the good work!~

MudWolf11

I agree that I would be very interested to see some feral character body options, speficifally equine. Though I understand it'll take some time before it can be implemented. Perhaps once the base build of YL2 is available, you may find someone willing to make some feral skeletons for use in the app.

Anonymous

I'd definitely like to see it, and I can't imagine it'd be as difficult to implement as other face models considering how few options there would be.

Anonymous

This can already be downloaded or even in development:?

yiffalicious

The character creator cannot be downloaded yet. We're aiming to have an early build ready sometime during the summer.

Anonymous

Okay so will all the characters already in Yiffalicious still be in YL2 or or we going to have to make or download our own?

yiffalicious

We intend to reimplement the original characters in some form and at some point in YL2. The first release will however only come with the character editor and perhaps an example character to learn from.

Tarak5557

Really liking everything I'm reading here, I have a couple questions though. First, on a topic unrelated to this, do you intend to have actors still bound to an orifice on placement as is done in YL1, or can we place the actors we want to use then link them to orifices after? (Allowing re-selection without having to remove and replace) Secondly, will shafts be race specific, or will they be blend-able? As in, can we select a base shaft type and blend in knots and different heads and the like? Third, Will expressions (assuming a remotely similar system to YL1) be separated or sort-able? The last couple models for YL1 has so many expression options that it can be a little daunting to find the one you want if you forget what the slider is called, so it would be nice if it was separated into categories (mouth, eyes, eyebrows, full face, etc.) or was sortable by certain criteria (emotional states for instance; fear, joy, etc.). Finally, an a personal curiosity, fuckable nipples? Maybe? :D

yiffalicious

Connections between characters exist as separate concept in YL2, so connections will be possible to define after characters have been placed. We will implement an ever increasing selection of different pre-authored shafts from a variety of different species that you can choose from when creating your character. Shafts are not bound to any one species, so you could use a shaft from one species on a character from another species. The shafts will be possible tweak in size and length, and will also be possible to color in any way you like (they have their own texture builders). In YL2, we have implemented a filterable properties inspector. Expressions, like other properties, will be possible to filter through. The properties inspector also allows for sub categories. We will try to organize expressions in a way that makes sense and makes them easy to apply. Penetrateable nipples wasn't something we had considered, but thanks for sharing that idea. We are discussing ways we could at least prepare the mesh to potentially allow for such interactions sometime in the future, but whether or not we'd be able to pull it off from an animation/implementation point of view remains to be seen.

Tarak5557

Sweeeet, sounds good all around, filters will be immensely useful. Glad the thought is something your team will consider. No worries if not, but I thought it could be interesting and was wondering if you *had* considered it. Keep up the awesome work! Thanks for the response!