FocusDistance (New module)
By default, VaM does not save the camera focus distance, only the camera position and player height. It can be annoying to have to reposition and zoom the camera to enable right mouse button to properly orbit the intended focus point such as a person's face. This plugin solves that problem, and allows you to also adjust the focus distance via trigger.
SaveLoadedScene
General
- New options
- Auto confirm overwrite
- Save screenshot
- Log message if auto confirm on
- Disabling the plugin is no longer possible (since it has no effect)
- Fixed issue where the "Open save dialog if empty/var" toggle value did not save
- Added OpenUI and ToggleEnabled Keybindings actions to all modules (where applicable)
This update is relevant to users who don't have the latest VaM (v1.22) and to creators who depend on these scripts and release content for users who may not have the latest VaM.
I investigated the compatibility of each script with different VaM versions and made some fixes:
- removed VaM 1.22 requirement from UISliderColors, UISliderSync and UITextSync
- alert user if a script requires a newer VaM version than what they currently have (as opposed to the obscure script compilation error logged by VaM)
In conclusion, the required VaM version is v1.20.77.13 or later, except for SaveLoadedScene which requires v1.21 or later.
I also investigated the VaM version compatibility of all of my other plugins, and any minimum version requirement is now shown on each plugin's Hub resource page. I posted a summary of all of my plugins on my profile. Some of the plugins which currently have a minimum requirement will be updated later with some kind of compatibility fix.
UITextSync (New module)
Similar to UIToggleSync and UISliderSync, this allows you to sync the text from a string parameter to a UIText atom's text panel. Some examples: another UIText's text parameter, a plugin's label parameter, presetName of any preset type, texture URL, and any string parameter registered by some plugin.
Supports auto fitting the text to the available area (decreases font size to a defined minimum font size in order to prevent overflow). This also works without selecting a parameter to sync, and is enabled by default.
VRControlGizmos (New module)
Makes the rotation and position control gizmos visible in VR (visual only, cannot manipulate).
General changes
- alert popup instead of error message if plugin placed on an incorrect atom type, and clicking ok automatically removes the plugin
- removed some unnecessary plugin duplicate checks, now allowing multiple instances for HairColorChangerEE, UISliderSync, UISliderColors and UIToggleSync
- it's still not recommended to have multiple instances enabled at the same time though
- UISliderSync, UITextSync and UIToggleSync: automatically re-establish sync on a plugin parameter when the plugin of that parameter is reloaded
- FrameRateControlEE: fixed issue where toggling "Use target frame rate" off did not work until VSync mode was changed
- UISliderSync: toggling "Slider is interactable" off now updates the slider to immediately have the value of the synced float parameter
- UIToggleSync: toggling "Toggle is interactable" off now updates the toggle to immediately have the value of the synced bool parameter
BulkAllowPossessGrab (New module)
- enable or disable Allow Possess/Grab for Position or Rotation for many joints at once
- execute via UI or trigger
- select which joints to include in the operation
HairColorChangerEE (New module)
Improvements to the original script from LarrysArms.HairColorChanger.2:
All new trigger targets:
- hair list is automatically synced when navigating to plugin UI, opening Copy From popup, loading a hair preset, and loading an appearance preset
- hair list can be synced via trigger action (useful mainly after enabling a hairstyle via trigger)
- Copy From popup value can be set via trigger
- Apply To All can be called via trigger
- Restore Hair Defaults can be called via trigger
- improved preset loading
- list shortcuts to appropriate var packages
- fixed issue where reselecting the previously selected preset file did not apply its parameters to the active hairs
- added Load From Hair Preset With Path action, equivalent to the load preset button in the plugin UI
UISliderSync (New module)
Use UISlider as a value or progress indicator. Optionally prevent the user from interacting with the slider, only allowing a change in the synced parameter to change the slider value.
In this demo, the light intensity is being randomized, and this plugin updates the value to the UISlider:
UIToggleSync (New module)
Use UIToggle as an indicator of some boolean state. Optionally prevent the user from interacting with the toggle, only allowing a change in the synced parameter to change the toggle's state.
Ok, enough update spam for now!
- Fixed issue in FrameRateControlEE (also present in the original) where "Pause VaM when not focused" did not allow the automatic default scene loading to proceed on startup or when restarting via Hard Reset (thanks @redeyes !)
- The reason was that the plugin caused VaM to be paused before the first scene load had had a chance to begin
- This only really matters if "On Startup Skip Top Menu and Load Default Scene" is checked in VaM User Preferences Misc tab
TL;DR
VR selection line settings
- VR selection line settings for width, color and alpha
- FrameRateControlEE based on FrameRateControl by @MacGruber
With the help of a mysterious stranger on Discord, I've expanded VR Pointer Settings to include width, color and alpha settings for the selection line from the VR hand to an object in the scene:
The line drawn by VAM is still there (you can see it barely in the screenshot). The script adds a new custom line to overlay it. The custom line is not enabled by default.
FrameRateControlEE (New module)
Changes compared to FrameRateControl from MacGruber.Essentials.16:
- Freely select any target frame rate number between 20 and 240
- The target frame rate popup with fixed options is replaced by the "Use target frame rate" toggle and the "Target frame rate" slider
- Fixed issue where having the plugin disabled on startup still applied the selected settings; now it properly initializes as disabled
- Fixed issue in VR mode where saving a session plugin preset containing the plugin would cause the plugin to load with default settings the next time in desktop mode, nullifying your customizations to the settings
- The fix was to ensure the plugin initializes fully and registers its parameters even in VR
- Plugin must be added to Session plugins (can't add to some random atom)