Hard collider spring and damper

In VAM, every collider in the body has a joint which adds physical characteristics like springs and dampers to the collider. This update exposes the springs and dampers of breast and glute hard colliders for adjustment, and applies new default values.


1699283400934.png

  • Added sliders Base Spring Multiplier and Base Damper Multiplier, and corresponding sliders for each individual collider
By default, damper is now 10x the normal value, spring is 3x the normal value, and mass is increased as well relative to previous versions. Overall this produces more controllable collision behavior, colliders will adapt better to being pushed and there's less resistance to movement, but slight collision events are still resisted and the breasts shouldn't feel too light to the touch.

The values will be fine tuned for different sizes and softness values in the next beta.

UI
  • Hard collider adjustments are now shown on the right side in the same info panel used for clothing adjustments
    • Values are shown for individual colliders when not using default slider values for those colliders, e.g. in the screenshot above "Pectoral1" has a non-default radius offset, all other sliders are at default values
    • This allows you to easily see which colliders and parameters have non-default values
  • Resized/repositioned the adjustment info and gravity simulation elements to take less space outside the plugin UI
  • Clicking on "< Adjustments Info" or "< Simulate Gravity" now animates the transition of that button to the closed state, and vice versa
Fixes/other
  • Fixed a major issue that produced incorrectly sized body colliders as an unintended side effect (introduced in v1.2-beta1, not present in v1.1)
  • Calibration pending due to atom scale being changed will now be cancelled if you undo the scale change
QOL and UI
  • Added a Force-Enable Atom Soft Physics checkbox to the user preferences:
    1698876242851.png
    • Default: disabled. Enable it to prevent preset loads from disabling soft physics on the atom and causing confusion due to soft physics being enabled in the plugin itself but not working.
  • Improved the layout of soft physics parameter windows:
    1698876577927.png
    • the Value Gradient and LDP sliders are split into subsections and their info texts are expanded upon
    • the fat collider previews toggle and opacity slider are moved from outside the UI to the bottom
  • Opening the UI when the person atom is disabled will just show the text "GameObject is inactive, likely due to the Person atom being disabled." The UI cannot be interacted with until the atom is enabled again, and for the most part, triggering the plugin's parameters should not cause any errors.
Fixes
  • Fixed issue with the nipple's soft physics collider being far too large. Collision with the nipple is now more accurate.
    • Nipples actually have two soft physcis colliders, and the second collider's radius wasn't being updated, and only the first collider was being visualized.
    • Friction is also updated to the second collider properly now.
  • Fixed issue where the new Right/Left Angle Limit parameter in BootyMagic adjusted the the angle of breasts instead of the glutes.
  • Fixed restoring target angle param values when disabling/removing plugin (again)
  • Fixed issue where the plugin did not work when added to a disabled person atom, or when loading a scene where the person atom is already disabled
    • Now, Naturalis will initialize once you enable the person atom. Triggers in the scene targeting Naturalis will not work until then.
Improved hard colliders



Hard colliders have undergone a complete overhaul.
  • their positions (and radiuses) are now much more accurate
  • improved collider visualizations: left/right counterparts have the same color, and the collider's radius and target vertex position are shown
  • the colliders adapt to arbitrarily large or small breasts or glutes at any atom scale
  • their adjustments are more intuitive: adjust depth instead of xyz position, adjust depth and radius simultaneously for all colliders
  • calculation of hard collider mass has been reworked
  • hard collider friction has been reworked
Due to the overhaul, any hard collider parameters saved in previous versions are not used. The new setup is too different that the previously saved hard collider slider values don't translate well. This applies both to in-plugin presets and to the plugin data that gets saved/loaded with scenes and VAM plugin presets.

Collider positioning and sizing

Each collider has a hand picked target skin vertex (indicated with the yellow plus sign) that it attaches to at its surface. The colliders arrange neatly to fill the volume with very little clipping in different poses and different breast/glute sizes and shapes.

The radius of each collider is automatically calculated to fill a fixed portion of the breast/glute width, ensuring the colliders are properly proportioned for different breast/glute sizes and shapes.

When soft physics is enabled, the colliders automatically move deeper into the volume (perpendicularly away from the target vertex), and reduce in radius as well. This leaves a gap between the skin and the collider surface. The higher the softness, the greater the depth and the larger the gap - this makes the core of the breast smaller the softer the breast. Same with glutes. You can further adjust the depth using the base depth offset and collider specific depth offsets.

The colliders now maintain their sizes and positions perfectly at any atom scale. (Note: there are still other non collider related issues with atom scale that need to be fixed.)

Collider mass
  • Collider mass is automatically set to 1/5th of the normal value when using High quality physics.
    • High quality physics uses 5 solver iterations for collisions (compared to 1 when off, I assume it's per physics update), apparently this means that one fifth the hard collider mass produces the same amount of force back to the joint.
  • Collider mass doesn't change as much with breast size when soft physics is enabled
Improved hard collider friction
Colliders keep track of their position relative to several soft physics joints around the breast/glute when soft physics is enabled. When soft physics is off, skin vertex positions are used instead. Collider friction drops sharply with the collider's protrusion outside the breast/glute skin - this ensures the colliders maintain their friction as long as they are inside the volume they're meant to fill.

The previous implementation didn't work very well: colliders would often have zero friction, and the friction didn't adjust as designed in any other shape than the normal downward gravity breast/glute shape. The new implementation is much more reliable and works automatically no matter what the current shape happens to be since it's based on continuously calculated distances.

Although the calculation is pretty simple and fast, I limited the rate of calculation/update to 20 Hz just in case.

UI updates

Hard colliders UI updated:

1698156699346.png

  • the Collider popup defaults to "Select...", i.e. no collider is selected/highlighted by default
  • offset XYZ sliders replaced with the Depth slider
  • added base radius and base depth sliders that apply to all colliders at once
  • exact collider radius and depth values are displayed
  • Show Previews defaults to Both Breasts / Both Glutes, and allows selecting Off, Left, Right or Both
  • added a navigation button to the collider friction settings (in Skin Materials 2)
Reorganized and grouped the physics parameter navigation buttons in the Physics tab (new parameters highlighted):

1698156986897.png


Fat back force parameters are combined into a single window:

1698156614797.png


Other:
  • all views are updated to use the customized slider which has slightly larger quick buttons (previously only used in the Clothing tab)
  • elements in the Clothing tab are deactivated (uninteractable) when no clothing item is selected
Physics

Added new parameters: Linear limit, Up angle limit, Down angle limit, Right/left angle limit.



These parameters control the range of motion/rotation for the pectoral or glute joint. The values are set to the fixed values that VAM uses - they're not yet calibrated to the breast/glute size and there's no dynamic adjustment, they're just exposed for manual control.

Fixes & other
  • Fixed breaking (blank plugin UI) bug when loading a scene where the referenced clothing profile had a target profile set
  • Fixed issue where the target profile was not set properly when loading a scene where the referenced clothing profile had Profile Off set as the target profile
  • Fixed a couple of other minuscule technical issues in the clothing profile system (probably had no noticeable effect)

With this release, Naturalis v1.1 is out of early access! Download from the free resource's page: https://hub.virtamate.com/resources/naturalis-free.35101
Just patching up some memory leaks.
  • Potentially faster loading for users with a lot of morphs in the installation if the "Monitor: Check For Size Changes" checkbox is unchecked in user preferences
  • Freeze joints when calibrating to help in situations where Physics Link is used to target the joints of the person being calibrated
  • Fixed issue introduced in v1.1.0 where the right breast was morphing incorrectly when soft physics was off
  • Fixed issues with integration between plugin instances on different atoms
  • Fixed issue where the user preferences file could get unnecessarily saved multiple times during initialization
  • Added a ToggleEnabled keybinding action (for users of Acidbubbles Keybindings) which toggles the plugin's enabled state via the checkbox in the Plugins tab
  • Prevent occasional error "Failed to initialize with bootstrap id"
  • Minor UI text fixes
Documentation for v1.1 is live at https://everlastervr.github.io/docs/naturalis/v1_1/

Compared to v1.0 docs:
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.

new_physics.jpg


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:

tm_weight.jpg


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)

tm_rightleft_spring_and_damper.jpg


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

friction.jpg


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):

gravity_sim.jpg


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:

forward_droop_comparison.jpg


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.

glute_morph_offsets_ui.jpg


Improved TittyMagic and BootyMagic preset management

1693764800504.jpeg

  • 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

Attachments

  • new_physics.jpg
    new_physics.jpg
    67.1 KB · Views: 0
  • Transition between two clothing profiles with a slider (triggerable per item)
  • Set the current transition state as the current profile
  • Set Profile Off When Undressing checkbox
  • Profile unsaved indicator to make it easy to see if there are unsaved changes
Fixes & other:
  • Fixed issue where loading an asymmetric profile didn't load the right side values correctl when the previous profile had Symmetric enabled
  • Show the currently active adjustments info panel in the Additional Settings sub-window
  • White instead of black soft joint color for unselected clothing coverage joints for better visibility
  • Reduced range of X morphs angle offset in TittyMagic clothing profiles from -30...+30 deg to -15...+15 deg (to better match the hard limits on sideways morphing)
  • Check for Stopper.FemaleChestPhysicsForMale on startup, print message to remove it before adding Naturalis
Female breast hard colliders on male

The same hard colliders now work on both genders, making the overall breast physics almost the same for futa characters as for females.

Physics

Local distortion physics tweaks:
  • 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
Other:
  • Slightly reduced breast fat damper overall
Fixes/other
  • Fixed occasional error when loading plugin
  • Setup futa breast soft physics only if TittyMagic is enabled on scene load
  • Suppress error logged after waiting about 1 minute when using non-sim hair
  • Sync joint physics parameter values only once per Unity physics update
Back
Top Bottom