Jump to content

The C.A.N.S. (Cooperative Algebraic Node Sizing) Framework


Recommended Posts

This may be an ongoing concern with two or more mods that check for elapsed time after fast travel or sleeping so consider this:

 

Instead of scaling the breasts (or other nodes) right away when requested, wait a second or two for other requests to also be made and then scale them once.

 

Add a function that merely pauses a bit and then checks to see what the current size is vs the new size and if they are different goes ahead and changes the size. If the size is the same then some other instance of the call already made the change or the changes all balanced each other and therefore no change has to be made.

 

That way the mods all have time to register their changes before they are applied instead of having the "Amazing growing/shrinking" boobs.

 

Also the time for the pause can be made into a MCM selectable timeframe so people with really laggy computers can set it longer.

 

Incidentally, all the variables that get changed when a mod makes a request ought to be controlled via a locking mechanism so you don't have multiple threads modding those variables at the same time. Otherwise you're going to have the occasional "odd" bug when two requests clash.

 

Starting to write this right now, thank you

 

Edit: I should have a fairly functional thing for this in a day or two. But I may be delayed as I've just installed windows 10 and I'm still cleaning up a bit. In addition I'm currently in the process of moving lots of things (music, movies, pictures, possible a few installation directories) to my brand new external.

Link to comment

As a brief aside, I want to give a huge "thank you" to everyone in this thread for the testing, brainstorming, and contributions. It's true that Feliks is the one writing the mod, and that's awesome, but the difference between a good mod and a great mod is taking feedback and bug reports from the community and using that information to make your mod better. In other words...

 

You are the person responsible for C.A.N.S. getting better and better on its path to 1.0. Thanks!

Link to comment

Feliks,

 

I think I've found something else... (as long as you're in there touching things :) )

I'm trying to find a balance between large-breasted followers and small-breasted ones and that's what lead me to observe this.

 

Again... 2 mods scaling breast. MME and SGO

 

Melissa is a large-breasted follower

Jenassa is a lower weight so smaller breasted follower.

 

Melissa is gaining milk by SGO only (not a milk maid so no scaling from MME)

I have SGO set to a max breast size of 1.25 so Melissa doesn't get so big that her tits drag on the ground.

 

Jenassa is gaining milk by SGO and also by MME.

I have MME's max breast set to 3.0 right now as I'm trying to push this a bit and...

 

If I set a max size in SGO (to keep Melissa from tripping over her tits) of 1.25

and set a max size in MME (for Jenassa) of 2.3

AND turn off max breast in CANS

 

Using Highest Value Wins, I should see Jenassa scale to 2.3 at max (MME, highest value, she should go well over 2.3 quite easily to test) and Melissa should get no higher than a scale of 1.25 (as set in SGO)

 

It LOOKS like Jenassa is growing quite large and then popping back to what I BELIEVE is SGO's max of 1.25 even though MME's max is set to 2.3.

 

I tried turning ON the breast max scale in CANS and setting it to 3 just to see what happens, but Jenassa does the inflate/defalte thing still so I don't think CANS's max scale setting is involved. 

 

I don't envy you this project..... this looks like it can get pretty complicated. I'd shudder to think of what would happen if I tossed a third mod scaling breasts into the mix :)

 

 

 

 

Link to comment

Feliks,

 

I think I've found something else... (as long as you're in there touching things :) )

I'm trying to find a balance between large-breasted followers and small-breasted ones and that's what lead me to observe this.

 

Again... 2 mods scaling breast. MME and SGO

 

Melissa is a large-breasted follower

Jenassa is a lower weight so smaller breasted follower.

 

Melissa is gaining milk by SGO only (not a milk maid so no scaling from MME)

I have SGO set to a max breast size of 1.25 so Melissa doesn't get so big that her tits drag on the ground.

 

Jenassa is gaining milk by SGO and also by MME.

I have MME's max breast set to 3.0 right now as I'm trying to push this a bit and...

 

If I set a max size in SGO (to keep Melissa from tripping over her tits) of 1.25

and set a max size in MME (for Jenassa) of 2.3

AND turn off max breast in CANS

 

Using Highest Value Wins, I should see Jenassa scale to 2.3 at max (MME, highest value, she should go well over 2.3 quite easily to test) and Melissa should get no higher than a scale of 1.25 (as set in SGO)

 

It LOOKS like Jenassa is growing quite large and then popping back to what I BELIEVE is SGO's max of 1.25 even though MME's max is set to 2.3.

 

I tried turning ON the breast max scale in CANS and setting it to 3 just to see what happens, but Jenassa does the inflate/defalte thing still so I don't think CANS's max scale setting is involved.

 

I don't envy you this project..... this looks like it can get pretty complicated. I'd shudder to think of what would happen if I tossed a third mod scaling breasts into the mix :)

That sounds like an issue in the patch honestly, if I had to guess (just from the information provided) the scale check within the mod (not CANS) is reading the actual size instead of its own size. Are you using the patches TechBane posted earlier? I'll root through em and see if that's the issue when I get a chance

Link to comment

Yes using TechBanes patches as they're the only ones I know of that exist! :)

 

Is it possible the popping is coming from the patches as well?

 

Hmmmm.... not sure how that would work even trying what I'm trying. 

Like... Should SGO be "aware" of it's own limits separate from MME's? 

 

If SGO is max 1.25, when SGO does it's calculation for node change it should pass the node change to CANS but shouldn't be passing anything as far as a limit.... correct?

 

So SGO should be going, "ok, breast increase to 1.3. OOooopsie... we're already maxed at 1.25. So I should do nothing."

 

Very confusing, :)

 

Link to comment

Yes using TechBanes patches as they're the only ones I know of that exist! :)

 

Is it possible the popping is coming from the patches as well?

 

Hmmmm.... not sure how that would work even trying what I'm trying. 

Like... Should SGO be "aware" of it's own limits separate from MME's? 

 

If SGO is max 1.25, when SGO does it's calculation for node change it should pass the node change to CANS but shouldn't be passing anything as far as a limit.... correct?

 

So SGO should be going, "ok, breast increase to 1.3. OOooopsie... we're already maxed at 1.25. So I should do nothing."

 

Very confusing, :)

 

I anticipated this back in the alpha builds, CANS also features return functions that should bring back the scale passed by the mod specifically, so that they don't just check the actual scale and try to fix it, which is what caused the hilariously fluctuating breasts in the pre-CANS world. My guess is there's somewhere the return function didn't get inserted, probably in a script separate from the main one.

Link to comment

Just to bump the thread a bit, Milk Mod Economy has also started putting in native support for C.A.N.S., but it will remain inactive in the mod until C.A.N.S. is fully released, which I assume means the 1.0 version comes out. Ed86 mentioned this in the notes for the version he released today, so after C.A.N.S. makes it to 1.0, Ed86 will release another version to enable that integration.

Link to comment

Kickass. I'm finishing up rewriting a bit to handle multiple updates in quick succession, just need to make sure part of it is going to work as intended and then finish the copy/paste that is so prevalent in the development..

Link to comment

As soon as I have the script mechanic functioning as planned (surprising break in the function, have yet to track it down) I will send you the development build for 0.9.3 with the feature that should hopefully stop the popping visual.

Link to comment

Alright so 0.10 just went live with a few new things:

 

1: Nodes should no longer pop when loading a new cell or waiting or fast travelling or anything else

2: There will now be a slight delay in visual reaction to node changes, this is intentional and should help to prevent the popping issue

2a: This delay should be configurable in the MCM

3: Fixed a missing connection in the Creation Kit that should have stopped 100% of CANS in its tracks but for some reason didn't.

3a: Seriously, nothing should have been happening without that connection, what the hell

4: As long as everything is working I think it's done (I've said that how many times now?) unless the way papyrus multi-threads scripts causes some issues. This will become apparent as more and more testing is done. At the moment I don't think there is.

5: Oh and I need to finish that page on the MCM that still says it will be there in the next release.

 

Oh, we also passed the 1k downloads just recently, missed that.

 

Edit: Also I just realized the MCM has been showing the version from when it was created this whole time. I don't want to release a whole new update just for that though. But I will be paying more attention to that in future releases.

 

de7d58ceedb04e43ea5829b01f1ccde8.jpg

Link to comment

So where are we with the patches? I'm currently just testing MME and SGO together. Does the patch for Fill Her Up work now or does that one still need some work?

 

I should be testing the new version in a couple hours as I have some stuff I need to do around the house (and... take the dogs for a walk!)

 

Link to comment

I'm gonna root through the patches, last time I went to it was refusing to compile because I didn't have the rest of the scripts installed in the right places, so when I get a chance I'll see if I can't sort out some of the bugs. Other than that I have no idea though, most of what I know is based on what people say here.

Link to comment

OK... well... I wish Ed86 would make a couple of edits to MME so it would work with SL 1.60, as the new version of MME (2015-8-10 version) has a slider to set the base breast size. 

Why is this important?

 

If you have SGO and you get your female follower pregnant somehow...... *whistles and looks around innocently*.... her breasts start to grow.

SGO knows her base breast size is 1 and it scales from there.

Let's say SGO has scaled your follower's breasts to 1.2 and NOW you make her a milk maid.

Guess what. 

MME has her base breast size at 1.2 (the size she was when she became a maid because SGO had already started scaling her up.)

 

The newest version of MME has a slider so I can set her base breast size back to 1. And then MME scales from THAT base breast number instead of what it detected originally.

 

So now each mod is working from the same base breast size.

 

Confused yet?

Now do this in the reverse order.

 

Make her a Milk Maid first. MME has her base breast size at 1 as it should be. Now it starts scaling her up.

Let's say MME has scaled her to 1.2 and ..... ooops.... didn't pull out in time.... she gets pregnant in SGO. 

As soon as that happens, SGO reads her current breast size as her base size, so it thinks her base breast size is 1.2 and scales from there.

 

To the best of my knowledge there's no way to tell SGO that her base breast size is 1.

 

AND.... since the latest version of MME isn't patched for CANS yet, I have to use the previous version which does NOT have that slider for base breast size.

So... now you have to be really careful using both together (SGO and MME) because you need to have the breast scale as close to the original as possible before the second mod gets involved. Otherwise one thinks her base size is 1 and the other thinks her base size is .... whatever the first one had already inflated it to...

 

Nothing in life is easy, it seems... :)

 

OH! And while I'm here.... darkconsole is working on SGO 3. It will use NiOverride instead of NetImmerse. Does that mean it will no longer be able to work with CANS?

Link to comment

Means the patch would have to be updated to work as intended with CANS, but theoretically it should function (kind of) just running side by side with CANS. NiOverride works (essentially) by just modifying how things handle the scale but leaves the actual scale at whatever it starts as. Now apparently running more than one override results in multiplying them together. So CANS using a highest value only or additive may be preferable.

Link to comment

Breast is still "deciding" what size it's supposed to be. Definitely improved, but still hunting for the correct size. I'm guessing it might now be in the patch.... or something.

 

Wait.... maybe I just need to change the delay slider.... duh.... hang on.

 

Nope.... I set it up to 1.5 seconds and it still hunts

 

Link to comment

You set it up to 1.5? it should default to 2.0. Try increasing it to max, see if that's the problem. Otherwise it may be an issue with the patch. Meaning this legitimately useful feature I spent too long making is actually unnecessary.

Link to comment

 

There is something like this already made (http://www.nexusmods.com/skyrim/mods/55869/?), but it have a problem, it tends to increase the size of the breasts (at least) and cause clipping in some clothes (Tera Armor colection HDT ptached) even when only one mod is governing the breast node (SoulGem Oven II) and with the max size being 1:00 (the original size). I hope this mode can really works and don't have this failure.

 

HookImmerse is a horrible hack. If you're using it, you should stop, but your saves are probably poisoned by it.

 

THIS mod appears to be working. Some minor things getting ironed out, but still appears to be working.

 

 

They are, but only the skse data. If you grab a "clean" .skse, you can save a save made while hookmmerse was active. But yeah, you can't get that thing out of your save, only replace the .skse file with one without hookmmerse stuff in it.

Link to comment

You set it up to 1.5? it should default to 2.0. Try increasing it to max, see if that's the problem. Otherwise it may be an issue with the patch. Meaning this legitimately useful feature I spent too long making is actually unnecessary.

 

OK, tried this on a fresh game. As a new install, the delay was defaulted to 2. I left it there.

got her SGO impregnated, then milk maid and....

 

still hunting for size.

Any of this meaningful?

 

[08/12/2015 - 06:37:34AM] [CANS_MCM <CANS_MCM (5B003DEE)>] ERROR: State option name NotImportant is already in use
[08/12/2015 - 06:37:34AM] [CANS_MCM <CANS_MCM (5B003DEE)>] ERROR: State option name NotImportant is already in use
[08/12/2015 - 06:37:34AM] [CANS_MCM <CANS_MCM (5B003DEE)>] ERROR: State option name NotImportant is already in use
[08/12/2015 - 06:37:34AM] warning: Assigning None to a non-object variable named "::temp13"
stack:
[CANS_MCM (5B003DEE)].CANS_MCM.OnPageReset() - "CANS_MCM.psc" Line 205
[CANS_MCM (5B003DEE)].CANS_MCM.SetPage() - "SKI_ConfigBase.psc" Line 793
[sKI_ConfigManagerInstance (2A000802)].SKI_ConfigManager.OnPageSelect() - "SKI_ConfigManager.psc" Line 146
[08/12/2015 - 06:37:34AM] [CANS_MCM <CANS_MCM (5B003DEE)>] ERROR: State option name NotImportant is already in use
[08/12/2015 - 06:37:34AM] warning: Assigning None to a non-object variable named "::temp13"
stack:
[CANS_MCM (5B003DEE)].CANS_MCM.OnPageReset() - "CANS_MCM.psc" Line 206
[CANS_MCM (5B003DEE)].CANS_MCM.SetPage() - "SKI_ConfigBase.psc" Line 793
[sKI_ConfigManagerInstance (2A000802)].SKI_ConfigManager.OnPageSelect() - "SKI_ConfigManager.psc" Line 146
[08/12/2015 - 06:37:34AM] [CANS_MCM <CANS_MCM (5B003DEE)>] ERROR: State option name NotImportant is already in use
[08/12/2015 - 06:37:34AM] warning: Assigning None to a non-object variable named "::temp13"
stack:
[CANS_MCM (5B003DEE)].CANS_MCM.OnPageReset() - "CANS_MCM.psc" Line 207
[CANS_MCM (5B003DEE)].CANS_MCM.SetPage() - "SKI_ConfigBase.psc" Line 793
[sKI_ConfigManagerInstance (2A000802)].SKI_ConfigManager.OnPageSelect() - "SKI_ConfigManager.psc" Line 146
[08/12/2015 - 06:37:34AM] [CANS_MCM <CANS_MCM (5B003DEE)>] ERROR: State option name NotImportant is already in use
Link to comment

Question; since this is going to require patching, what are the thoughts on starting some kind of project page so we know who is working on what mod? It'd also give a central place to pull patches from instead of digging through one or more threads. I'm thinking something like git hub or something similar to that.

Link to comment

That would work, but as soon as I can I'll be posting that information on the OP here. As far as I know we've got native support (?) in MME and the patches from TechBane. As soon as I can wrinkle out a bug or two in th backend I'll do that.

 

GitHub might also not be the best place for it, for people who don't know it well it can be fairly intimidating

Link to comment

Doesn't have to be github, but something that supports revisions, bug reports, and some kind of task assignment seems ideal.

 

If it's just me, I'm fine with just a SVN server and could set one up on my network here and slap a public IP on it. But that could turn into a full time support job by itself, not to mention SVN can be less than intuitive.

 

I'm totally open to suggestions though. Just trying to think of ways to make it easier for users to find things, and also to avoid duplication of efforts.

Link to comment

You will also have native support in Beeing Female when he releases the next patch, but still no word on when that will come out due to the other big changes that will come with it.

 

Edit: On a note about centralizing patches, if Feliks is alright with it, you could use the repository for archiving older versions of patches (hopefully this will remain few, but sometimes a mod may decide to change their scaling method at some point?) and having the most recent versions available. Then Feliks can keep up with as he wants and have some of the ones available here in the downloads. These may not always be bleeding edge, and don't have to be, as a link to whatever repository for all the patches would of course also be in the OP. But this depends on #1: How many mods actually require/will receive patches due to interest and #2: How often those mods update and/or change their coding related to scaling. A separate thread somewhere here would also be good for people wanting to recommend mods, or have troubles with current patches or making their own.

 

As for a file service, I have no recommendations to offer. I suppose it would require public access for downloads, but only a group or selected individuals to upload. When thinking of that, it would mean this project would still require some "full-time support" in order to grant access to new contributors or approve/upload their submissions individually. While a fully open folder would be nice, unfortunately, we can't assume everyone who stumbles across it would be kind enough to not simply wreck the place and/or delete everything. Which is more so why I suggested another thread or Feliks support in the OP for trying to keep a full log/files of current patches and a link to whatever repository that is decided on.

 

The main ones I could see wanting patches for would be SL Hormones, Soul-Gem Oven, SL Deadly Drain (They have a re-write coming up that should have more active scaling I believe, but does not intend to integrate C.A.N.S.), and Estrus Charus/Spider Addon. Omitting Beeing Female and Milk Mod Economy since they should have native support. These are mostly my own picks and do not reflect the whole selection of mods that users and modders may want to use with C.A.N.S., I'm sure there are others, as there are at least a couple more pregnancy style mods here alone (Hentai Pregnancy, Fill Her Up, Egg Factory, and possibly much more).

 

With my current rise in activity here recently, and my exploration of modifying a couple of the mods I used, perhaps this project might be the time to start to learn a bit more of modding myself and help out by contributing... maybe.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use