Fixed an issue where detecting morph changes in order to auto-update breast mass didn't work for male morphs on a futa character.
Calibrating will now zero all TittyMagic morphs that are from a different TittyMagic version's var package. This makes it easier to clean up unwanted active TittyMagic morphs that come from a pose preset or morph preset that was saved with a different TittyMagic version. If you want to avoid the issue in the first place, deactivate TittyMagic before saving the pose preset or morph preset that you want to include pose morphs in.
I also renamed some things related to calibration:
- renamed the "Recalibrate Physics" button to "Calibrate Physics And Morphs", the morphing system is the reason calibration is needed in the first place
- updated help texts to refer to "Calibration" instead of "Recalibration", just to make it a little simpler
- renamed the triggerable calibration action from "recalibratePhysics" to "calibratePhysicsAndMorphs"
- renamed the calibration Keybindings action from "TittyMagic.RecalibratePhysics" to "TittyMagic.CalibratePhysicsAndMorphs"
TittyMagic 5.2 is a pretty big release, significantly changing the way that morphing and breast gravity work, and applying a lot of tweaks and fixes that make TittyMagic 5 more polished.
Soft physics joint position based morphing
The amount of morphing is now based on the average position of soft physics joint rigidbodies (which are anchored to skin vertices). This means morphing reacts to changes in breast shape and is sensitive to changes on the skin surface. The average position of the soft physics joints is updated each physics update. As a result, breast morphs are responsive to even small amounts of forces from touching or movement and react more dynamically than before. Due to this change, a lot of the functionality around morphing, breast gravity and physics parameters has also been revisited and improved.
These videos should show how the morphs get applied more easily and dynamically, and how the breasts maintain volume better than before.
Source scene: Eva: Containment.
Credit: ddaamm short hair4,
WeebUVR cyberpunk appearance
Breast shape tweaks
The morph values and resulting breast shape for all directions (up, back, forward, left and right) have been adjusted. As usual the morphs are applied both when posing the model, when animating, and in response to touch. To showcase the changes here are comparisons to 5.1 in different poses:
Upward morphing is now more based on rotating and moving the whole breast, the breast top curve doesn't bulge as much now and the breast is rounder in shape. The force of gravity alone doesn't affect upside down breast shape quite as much as before, and breasts maintain their volume better when pushed up.
Sideways morphing has less inward bulge. It looked weird in animations with the morphing, but you can also configure the inward and outward morphing separately now (see "Sideways In and Out morphing multipliers" below). In addition you can see that breasts are pushed up less than before when the chest is horizontal.
Breasts don't flatten quite as much just due to the force of gravity when leaning back. The shape is a bit different to before, but the reduced overall amount of morphing is mostly due to increased in/out spring.
Breast depth increases more. Here you can also see less upward morphing occurring when horizontal, just like in the sideways and back images above.
Other changes to morphing
Changes to physics
- Downward morphing component is removed (it stretched the breasts down too unnaturally)
- The morph values and resulting breast shape for all directions (up, back, forward, left and right) have been adjusted.
- The amount of morphing that occurs with distance from the breast's neutral position has been adjusted. Notable changes:
- The maximum amount of morphing is better calibrated for the given breast size
- There's a bit of resistance to morphing near the very beginning so that breast morphs don't oscillate forever (this wasn't even possible to occur in the previous system that didn't depend on the sensitively changing soft joint positions)
- Increased base amount of forward droop, also increased forward droop and backward flattening for soft breasts by 10%
- Reduced the amount of morphing at low softness (especially forward/back)
- Slightly reduced the amount of upward morphing that will occur when flat on the back or stomach
- Reduced the amount of adjustment to Breast Under Smoother morphs when leaning back/forward in order better support the use of those morphs for the base breast shape
Breast gravity improvements
- Default fat back force amount is reduced
- Fat spring and fat mass both reduced by 1/3, except that large breasts retain a bit more fat mass. This makes breasts feel a bit less dense to the touch.
- Fat back force no longer increases if you reduce softness, it only increases with mass
- Fat damper reduced by 20%
- Main joint spring reduced slightly
- Fat colliders are a bit closer to skin (depth 0.0005 instead of 0.0010), and the range of possible offset values is reduced by half
- Slightly increased fat collider radius
- Slightly decreased fat collider distance limit. It's a difficult parameter to balance - you want a high value so that breasts don't feel rigid when collided with, but a lower value in fast animations to prevent overstretching. The default value is optimized for collision physics - for high speed animations where collision doesn't matter, reduce the distance limit manually.
- Reduced the effect of forward/back forces on fat spring and center of gravity. (This is distinct from gravity physics, this "Dynamic Force Physics" was originally implemented in 5.0 and the adjustments were too dramatic now.)
- The base value of in/out spring (when the person is vertical i.e. there's no gravity effect) now depends less on mass and more on softness
Breast gravity is now individual to each breast since it's based on the left and right pectoral joint rotations instead of the chest rotation. Breasts can have slightly different target angles and gravity based spring/damper values etc., and those values can be affected by animation and collision.
Sideways In and Out morphing multipliers
- Breast gravity effect in the up/down and left/right directions (target angles) is reduced significantly - breasts don't drop quite as hard
- Breast size no longer has any effect on the target angles - target angles are only based on softness. At minimum softness, there's a bit of base effect, and increasing softness then adds to the gravity effect.
- Main joint spring is reduced much less when leaning away from an upright pose - spring is more consistent now
- Main joint damper is now adjusted as part of breast gravity, it increases a bit when leaning away from an upright pose
- The effect of gravity on in/out spring when leaning back/forward is reduced by about 1/3 - it won't reduce as much, which makes breasts retain their shape a bit more (since depth morphing depends on low in/out spring)
The Left / Right slider in Morph Multipliers has been replaced with separate Sideways In and Sideways Out sliders which can be used to better fine tune the amount of morphing that occurs inward and outward for both breasts. This might be helpful for optimizing the amount of morphing when using the Right/Left Angle Target and Twist Angle Target offsets to push breasts towards each other or to pull them apart from each other.
Improved twist angle target parameter
The actual angle now depends on the pectoral joint's vertical angle. When the person is horizontal, the twist angle is zeroed. When upside down, it is inverted. This prevents the issue where using the angle to cause breasts to poke more inward or outward would have the opposite effect when upside down.
A new button in the main screen "Show Calibration Options..." opens the above UI.
Generally, you don't need to do anything here, the defaults work best 99% of the time. The Pause Scene Animation is an alternative to freezing the entire scene, it can be checked if the Freeze Motion/Sound toggle is unchecked. Pausing scene animation during calibration allows audio sources in the scene to continue playing which is useful for scenes where loading new looks is part of the "game play".
The Disable Breast Collision toggle is offered just in case, there might be some edge cases where it's useful to uncheck it.
- Fixed an issue where sideways in morphing on the right breast didn't work correctly
- Fixed crash when Female dummy skin is used. Swapping between the dummy skin and a proper skin will also toggle the visibility of the Friction settings in Skin Materials 2.
- Fixed issue where modifications to the person atom UI were applied even if plugin was already disabled on scene/preset load
- Futa: fixed breast (pectoral joint) collision not being correctly disabled during calibration
- Fixed issue where morph adjustments were applied between queued calibrations, causing the queued calibration to behave weirdly
- Fixed a few issues during plugin initialization and when changing skin
- Fixed issue where in/out damper would be reduced too much (all the way down to 1) with large breasts when leaning forward or back
- Background multipliers on the collision forces of individual hard colliders have been reduced slightly
- Collision forces now scale up with breast mass to help with lifting up very heavy breasts
- If TittyMagic is used on multiple models in the scene, the plugins will now calibrate simultaneously. Whichever plugin started calibrating first controls when the freeze will end (it waits for the other instances to finish). This only works if all instances are v5.2+
- Down Offset Morphing works more consistently for different breast sizes
- Breast Soft Physics On toggle is highlighted red if soft physics is off in Control&Physics 1 or in User Preferences
- Prevent adding multiple instances of TittyMagic on the same atom
- Prevent double calibration when loading the plugin to a person atom with soft physics disabled
- Prevent calibration while person atom physics is frozen
- Softness and quickness are triggerable without calibration using the float value triggers breastSoftnessNoCallback and breastQuicknessNoCallback; it's recommended to calibrate with the recalibratePhysics trigger afterwards
TittyMagic has a wiki: https://github.com/everlasterVR/TittyMagic/wiki. There's still stuff on my to-do list that I want to add, but it covers most topics. It's written for 5.1 but pretty much all info applies to 5.2 as well. I'll update it for 5.2 when early access ends.
- Fixed a silent crash when loading a look that had hard colliders off - the colliders are now correctly enabled in the beginning of calibration.
- The plugin now waits for the new look's assets to be loaded before continuing with calibration.
- The plugin now prevents changing gender by loading an appearance/general or legacy preset. Previously, this was only prevented with a skin preset load or when changing skin manually. Anything else in the appearance/general/legacy preset will still be applied, but the skin will revert back to the original one. This prevents the plugin from crashing - to change gender without errors, disable the plugin, change the gender and then reload the plugin.
New demo scene available!
Adaptive collider friction
Other collider and physics improvements
- Hard collider friction always decreases when the collider moves away from its normal position inside the breast - this enables colliders to stay better inside the breast instead of sticking to the colliding objects
- In Skin Materials 2 tab, you can enable adaptive collider friction, and offset the friction manually
- When adaptive friction is enabled:
- both soft collider and hard collider friction decrease with Gloss to simulate oiled/wet breasts
- specular bumpiness increases friction but the amount increased scales with gloss - i.e. if gloss is low, specular bumpiness has little effect on friction
Soft collider visualization
- Generally a bit more consistent hard collider sizes and positions for different breast sizes
- Adjusted hard collider positions, sizes and collision forces to prevent the breast center gap area from causing bounces as easily
- Default fat collider radius is increased a bit for large breasts to prevent objects sliding through too easily
- Added a bit more fat back force for soft breasts
- Nipple collider can now be resized. Normally in VAM, the nipple collider does not react to the Fat Collider Radius setting in F Breast Physics 2. In the plugin, the radius can be changed with the Multiplier Offset (default multiplier value is 0.33) to ensure a perfect fit.
Twist Angle Target physics parameter
- Visualize soft colliders in Fat Collider Radius and Fat Collider Depth windows.
- If Show Collider Previews is off, adjusting the offset sliders will still display the group of colliders that the offset is being applied to while you press down on the slider - e.g. adjusting the nipple offset will visualize the nipple collider.
Improvements to calibration
- Forward-back axis equivalent of the Up/Down and Left/Right angle targets, rotates the breasts clockwise or counterclockwise
- Not automatically adjusted by the plugin but it can be offset from its default value of 0
Fixes/Quality of Life/Other
- Breast collision is now disabled during calibration so that the result will always be correct even with collision occurring at the beginning of calibration
- Instances of TittyMagic connect to each other and calibrate in sequence, correctly unchecking the Freeze Motion/Sound checkbox when all instances are done calibrating
- You can now save a scene with multiple characters having TittyMagic 5.1, and the scene will continue playback correctly when the plugins are done calibrating
- Fixed errors when disabling, enabling or removing the plugin on futa character
- Fixed fatal error when advanced colliders were not enabled before adding plugin
- Fixed restoring original hard colliders enabled when plugin is disabled/removed
- Removed unneeded hard collider Length Offset setting
- Friction Offset slider is now triggerable and saves with the scene/preset
- Added "OpenUI_ConfigureColliderFriction" keybinding action
- Open UI actions are also now triggerable - previously they were only usable via Keybindings
- Morphs adjusted by the plugin are no longer saved with the scene - the plugin will apply the correct morph values when the scene is loaded anyway
- Fat Collider Radius and Fat Collider Depth parameters now show the value more precisely with 5 decimals places instead of 4
- Main/outer/areola/nipple multipliers have now a maximum value of 2 instead of 5. In general 2 is more than enough for any imaginable reason to adjust the setting on a per group basis, but I left Fat Spring and Fat Damper with the maximum multiplier of 5 (to match the original multiplier slider range for those settings in F Breast Physics 2).
- Prevent navigation to hard colliders UI on a male character (it would just take you to a blank page in the plugin UI, but now it will print a message that says it's a female only feature)
- Ensure plugin gets removed from memory if removed from the person
- Soft physics parameters are no longer needlessly triggerable if character is not female
- Changing gender while the plugin is active is now prevented - if opposite gender skin is selected, the previous skin is restored in order to prevent errors. (A message is printed "Changing gender while the plugin is active is not supported. Disable the plugin, change gender and then reload the plugin.")
- Hard collider force is now applied immediately when you change the slider value
- If hard colliders are disabled with a trigger or programmatically by another plugin, this will no longer trigger calibration (they are force enabled without a calibration)
- Some optimizations to navigating to the plugin UI with Keybindings commands: any existing open plugin UI is closed automatically, and if a keybinding is triggered when the plugin is still initializing, the execution of the keybinding is delayed until initialization is done (e.g. navigating too early could cause an error)
- Fixed minor issue where unchecking Apply Only To Left Breast would apply an incorrect value to the right breast in the case of Right/Left Angle Target
- Fixed issue where changing the skin (in Skin Select tab or via skin preset load) would cause breast mass calculation to stop working. Changing between different female skins on the fly should now work without having to reload the plugin.
- Fixed issue where the pectoral joint's collision would be re-enabled by toggling the person atom's collision. This was disabled in order to make collision based only on soft physics in v4.1, and the v5.0 which additionally uses hard colliders also doesn't need the pectoral joint itself to have collision.
- The pectoral joint's collision is no longer disabled on futa characters, allowing at least some kind of collision for futa breasts (like in VAM by default).
- Recalibrate Physics and Calculate Breast Mass actions are now triggerable
- When the plugin is disabled, it's no longer possible to trigger recalibration, apply physics parameter offsets or configure hard colliders. Enabling the plugin again enabling will apply any changes you've made while the plugin was disabled - i.e. you can still interact with the sliders but they are "inert" until you enable the plugin.
- fixed double calibration on initialization when soft physics was originally disabled
- fixed error when attempting to modify the person UI when the person UI is not already open (for hiding VAM's default physics tab contents) - now it will apply the change when the UI is opened
- fixed issue in VR where navigating to the plugin UI using the buttons in VAM's default physics tabs would not preserve the UI position
- fixed issue where making the F Breast Presets tab content visible again when the plugin is disabled would display an extra copy of the "Use Merge Load" toggle outside of the UI
- Breast gravity was not working when leaning to the right - left/right target angle was not being adjusted correctly.
- Fixed an issue where the actual applied physics parameter value could be lower than the minimum value shown in the parameter's Value slider, e.g. spring 0 could be applied even though 10 is the slider minimum. This was possible when using a very low quickness and a very high softness value and leaning back (which reduced spring a lot).
- Main joint spring is reduced more with softness - soft breasts seemed a bit too static.
- To compensate for the above, and to keep the spring more consistent in different poses, breast gravity (leaning back/forward etc) now reduces spring less than it used to.
- Breast quickness slider also has less effect on spring.
- Up/down target angle is now reduced more as part of downward breast gravity for mid sized breasts - in other words, when standing up, breasts drop down a little bit more heavily.
Disabled vanilla physics tabs
Virt-A-Mate's normal breast physics tabs are now disabled while the plugin is active. The disabled tabs are M Pectoral Physics, F Breast Physics 1 and 2, and F Breast Presets. In each tab there's just a button to take you to the TittyMagic UI.
The settings in those tabs can still be modified with triggers or by other plugins, but there's no reason to, and for the most part those modifications have no effect anyway.
Small changes to default collider settings
The previous patch changed the positions of colliders a bit too close to the skin for medium sized breasts. This patch fixes that, bringing the behavior closer to how it was in 5.0.1.
- readjusted base collision forces for each collider
- colliders 2 to 5 radiuses are more consistent
- moved the innermost and outermost colliders a bit closer to the center
- colliders move inward and bunch together a little more for mid size breasts
- Simplified restoring of original physics when the plugin is disabled or removed. It should also work correctly in all cases (across saves, appearance or plugin preset loads, etc).
- Fixed an issue where loading e.g. an appearance preset where hard colliders are disabled would disable the hard colliders on the active plugin as well. Now, if hard colliders are disabled by a preset load or with a trigger, the plugin recalibrates and automatically re-enables them.