Naturalis v1.1
Clothing item based adjustments to physics and morphs
A quick video showcase and an overview of the most important features of this system below. I'll cover everything about clothing profiles in more detail in the v1.1 documentation which is still under construction - I'll post another update about that so you'll get the notification as long as you Watch this resource!
credit: see https://everlastervr.github.io/about/credits/ (used with permission where NC)
Essentially, the Clothing tab is a whole new plugin-in-plugin that uses the existing systems in Naturalis to produce changes in shape and physical behavior depending on what clothing is currently equipped. The system accommodates for all kinds of possible clothing items from very loose and light to heavy or nearly completely rigid, all kinds of different styles of clothing, asymmetrically shaped clothing etc. Clothing layers are also supported, in that their adjustments to physics and morphs get combined.
It all works pretty seamlessly, requiring only a one-time setup per item to allow the item to have the intended change to physics and morphs every time you enable it later on. In the case of clothing authors including a default profile with their clothing release, no setup is needed by the user. Also, every built in clothing item in VAM has a default profile included with the plugin that gets auto-applied when there's no user-created profile. These built-in profiles are always available to load on any item as a starting point for a new profile, or you can just start from everything at zero.
Each clothing item can have a default profile and various other profiles.
A few notes about the profiles:
- All of the adjustments to shape and physics are stored in the profile file rather than in the plugin's own data, i.e. they do not save with the scene. But the currently selected profile, if saved to file, will be referenced in the plugin data and be auto-applied when the scene is loaded.
- The default profile for an item loads automatically when the clothing item is enabled for the first time during the plugin session.
- A locally saved default profile takes precedence over the one in the clothing item's var package (if it exists).
- The profiles are entirely separate for Bootymagic and TittyMagic - so for items that cover both the chest and the hip area, you might need a profile in both.
- By default, clothing profiles are symmetric. If the Is Symmetric toggle is enabled, the Left and Right buttons are activated and you can switch between the left and right parameters.
- Clothing item tags can be used to make an item to show up in the plugin. If there are no region tags (built in or set by user), the item will show up in both TittyMagic and BootyMagic. If "full body" or "hip" is checked, the item always shows up in BootyMagic. If "full body" or "torso" is checked, the item always shows up in TittyMagic.
Types of adjustments quickly explained:
Forces, hold & dampening
Forces simulate the way clothing pushes breasts/glutes. They automatically change the physical behavior and apply directional morphing, just like gravity would if rotating the person's pose.
"Hold" increases joint springs, making the breast or glute stay in place more rigidly. "Dampening" adjusts the joint dampers. These are split for YX and Z, i.e. up/down/left/right is one slider, in/out is another. The percentage means how much the physics parameters are increased from their calibrated value towards the maximum value of that parameter.
Soft physics on covered areas
You can make soft physics behave differently on the area covered by a clothing item. Since each item is different, the plugin needs to find which soft joints are covered by the item - this is easy to do:
1. click on Find Covered Soft Joints, and the plugin will try to automatically determine the area
2. hover with the mouse (desktop mode only) over any of the visualized soft joints, and toggle its selection on/off by pressing Ctrl
Adjusting the physics: for example, increasing Fat Spring % affects all of the selected clothing coverage joints, making them more rigid.
You can have multiple layers of items each applying their own soft physics adjustments and they get combined. For example, a bra applying Fat Spring 50% and a shirt applying Fat Spring 10% will mean the area covered by both the bra and the shirt will get the 50% value, while the area covered only by the shirt will get the 10% value. The percentages mean essentially how much the parameter's value is increased from the naked value towards the parameter's maximum value.
Morph adjustments
You can use the morphing offsets to apply directional morphs without actually moving the breast physically. Normally, these morphs are applied *in response* to movement, but in a clothing profile, you can just shift the morphs without moving. This is used for tweaking the breast or glute shape while clothed.
In TittyMagic there's also a size reduction slider for ensuring that the breasts look the correct size with the clothing item enabled vs when naked.
Custom gravity & new improved physics
New adjustable parameters are introduced, and the way physics values are calibrated has been updated to produce a bit more realistic behaviour across the board. In addition, gravity's effect on physics has been revamped.
Breast/Glute Weight
This replaces the Breast or Glute Mass parameter. Weight consists of mass and the force of gravity - as before, mass can be adjusted and is a core part of the automatical calibration for different breast/glute sizes, but in addition, you can adjust the amount of force that mass imparts as weight onto the joint via gravity:
Previously, gravity was faked by adjusting the angle target parameters dynamically with the joint angle. The actual force of gravity can be different for different angles of the joint. The biggest benefit of this is increased forward-back gravity which produces more realistic looking droop. This wasn't possible whith the angle targets which faked gravity only up/down and left/right.
The actual acceleration value is shown in the lower left, indicating how much the joint is experiencing gravity in different world axes. This value will change depending on the pose and the multipliers set here, but there are also background multipliers which produce the intended default behaviour when all the sliders are at 1.
This also makes the gravity counterforce implementation from v1.0 obsolete.
Right/left spring and damper (TittyMagic only)
By default in VAM, the pectoral joint cannot move vertically or sideways, it can only rotate or move in/out. In Naturalis v1.1, right/left movement is also allowed. The physics of that movement can be adjusted with right/left spring and damper - these work just like the in/out spring and damper parameters do for the in/out movement.
The default values produce a bit of extra freedom of movement and jiggle, and the difference in realism can be noticeable!
The spring increases a lot when leaning to the side, this is to prevent weird behaviour (too loose and messes up morphing) in that angle.
Friction as a soft physics parameter
Fat collider friction is now available as an actual physics parameter that supports local distortion physics and adjustment along a gradient. By default, the LDP compression and stretching effects are zero, and the gradient is set to increase friction for the areola and nipple colliders. (I'm not sure if there's actually any value to LDP adjustments for this parameter, but no reason not to make that possible to play with.)
The "Configure Collider Friction" button takes you to Skin Materials 2 where you have the previously available adaptive friction etc. stuff. Unlike other parameters, you can't directly adjust the Offset.
Other physics changes
Given the changes to breast/glute gravity and the added right/left breast movement, the way that the rest of the physics are calibrated has been updated. Everything has been tweaked, but here are some notable changes
- fat back force is now much more concentrated on breasts that are very large and breasts that are <50 softness; it's basically a negligible value for soft ~1kg or smaller breasts
- increased in/out damper (to prevent 0 damper when leaning back/fwd with some combinations of mass and softness)
- up/down and right/left angle targets are at much lower values, since custom gravity does the heavy lifting
- joint physics parameter valuaes now identical when soft physics is disabled compared to when it is enabl
- local distortion physics:
- fat spring doesn't increase as aggressively now, but smaller distortions have an effect on it (more sensitive)
- the effect of LDP on fat damper and fat mass is also toned down a little
- fat collider friction increases when colliders stretch apart
Gravity simulation for different directions
When the plugin UI is open, you can apply gravity on the entire body (including clothes and hair):
This allows easily checking how things look if you changed the person's pose, without actually changing the pose. It makes is very easy to verify that your current settings look they way you want in a given angle, regardless of what pose the person is currently in. The force is simulated relative to the chest angle (in the case of TittyMagic) or hip angle (in the case of BootyMagic), so e.g. if the person is lying on the back and you simulate upward gravity, breasts will lift up towards the head.
The menu can be hidden with the < button (stays only for the current plugin session).
The gravity simulation directions and the stop function are also available as triggerable actions in case you want to use them outside of the plugin UI.
Futa breast soft physics and hard colliders
Breast soft physics is now supported on male characters (solution adapted from
Breast Physics for Male/Futa by Stopper), and hard colliders are enabled as well. This brings breast behaviour for futa characters much closer to how it looks on female characters.
Features that are unlocked in TittyMagic for futa:
- toggle soft physics
- toggle soft physics self collision
- soft physics parameter controls in the Physics tab
- covered soft joint adjustments in clothing profiles
- configuration of soft collider friction in Skin Materials 2, incl. adaptive friction
- hard collider adjustments are available
Note that once the plugin is added to a male character, hard colliders are enabled permanently on that person atom for the current VAM session. (Removing the plugin doesn't disable the hard colliders because they would stay disabled if you changed to a female skin.)
Changes to breast morphing
The way that breast depth is calibrated and calculated is technically improved (the chest joint's position and rotation relative to the breast joint is cancelled out and the amount that the depth changes is more consistent). One noticeable effect of this is that depth morphs now get automatically applied a bit more when breasts are pushed all the way up.
There are now also hard limits on the amount of breast morphing that can occur in the up, sideways and depth out directions. The limits are about 10% beyond the amount of morphing that naturally occurs in normal gravity with softness at 100. This prevents morphs from being applied at values that they're not really designed for.
The forward droop shape has been updated:
The new shape makes use of the Large Breast Hang morph from Tenstrip.Morphs.1.var to improve the forward droop shape (the Tenstrip package is not required). When leaning forward, breasts are less conical/pointy, expend more at the center of mass and shrink at the base.
Due to the way the new morph shrinks at the base, it's recommended not to use the Breasts Size morph at values higher than 1.000.
In addition:
- small tweaks to upward morphing shape: a bit rounder, more rotation based, a bit less flat
- depth in morphing spreads the breast outward a bit more
- changes to default morphing amounts: very soft breasts morph upward a bit more easily, depth out morphing for small breasts increased a little
- all morphing is now identical when soft physics is disabled compared to when it is enabled
Glute morph offsets
The way that glute morphing looks is the same as before, but there's morph offsets allow you to fine tune the joint angle/depth where morphs are zero, and get the morphs to adjust in a way that's ideal for a specific look or in a specific pose.
Improved TittyMagic and BootyMagic preset management
- dded ability to set and load default plugin preset; if it exists, it is loaded automatically when the plugin is added
- TittyMagic/BootyMagic parameters can be reset without reloading Naturalis entirely (this will calibrate automatically just like when loading a preset)
- Currently loaded preset name is shown
QOL improvements
The previous AutoUpgrade.cs file has been split into two different files:
- Auto-update.cs which replaces the current Naturalis instance with the one in the var package, in a way that preserves any triggers in the scene targeting the plugin (the plugin id e.g. plugin#1 stays the same now)
- Auto-upgrade from TittyMagic 5.cs which does what AutoUpgrade.cs used to do, but is only for upgrading from TM5
Other stuff:
- the plugin is now a Naturalis.dll file (instead of Naturalis.cslist), and the var package no longer contains the source files
- the gravity physics multiplier sliders (for Spring, Damper and In/Out Spring and angle targets) now go up to max 3.00, just to have a bit more room for configuration
- in the Hard Colliders window, hard collider radiuses and positions are no longer recalculated when collider is selected, or if Show Previews is changed or Use XRay Previews is toggled
- triggerable parameters ("receiver targets") are better organized in the trigger menu, and when viewing the trigger menu that shows string valued triggers (e.g. a UIButton atom), the parameters are grouped into categories for easier navigation of the list
- prevent toggling soft physics via plugin during calibration
- various small UI improvements
Fixes
- prevent accumulation of custom gravity force when VAM pauses physics simulation (e.g when browsing Hub)
- sync joint physics parameter values only once per Unity physics update (previously this could unnecessarily happen multiple times per update)
- various technical changes to reduce memory usage overall, and to patch up memory leaks