RandomCycleAnimator - Random Cycle Animation Plugin for Virt-A-Mate
**Warning! Please make sure to use the latest version.**
Fixed a bug where the content would become empty when loading a scene or subscene after saving a scene with the plugin.
1. Concept
RandomCycleAnimator is a plugin designed to enhance animations in Virt-A-Mate (VaM). It adds random forces and torques in a cyclic manner on top of fixed loop animations like Timeline or Cycle Force, creating more natural and varied movements. The goal is to add realism to idle poses or interactions, with easy management via a list system. For example, it enables subtle random animations like slight head tilts or body sways. Based on default Cycle Force, it uses easing for smooth transitions.
2. Overview of Operation
Attach the plugin to an Atom (e.g., Person), then select the target Atom from the "Select Atom" dropdown. This updates the "Select Target" list with that Atom's ForceReceivers. Add selected controllers to the list to apply cyclic random forces and torques. Customize force/torque magnitude, change speed, and cycle length, with randomization options. Display/delete added controllers in the list. Movements are physics-based, smoothed with easing functions, and pause in VaM's freeze mode. Preset Load/Save allows saving and loading settings.
3. Detailed Explanation of Each Element
- Select Atom Dropdown: Select an Atom in the scene. After selection, the Target list updates based on that Atom's ForceReceivers
- Select Target Dropdown: Choose a controller (head, hip, etc.) from the selected Atom's ForceReceivers. Temporarily held until added to the list.
- Add List Button: Adds the selected controller to the animation list and starts random actions.
- Controller List Text Field: Displays the list of added controllers (read-only). Updates on add/remove.
- Remove List Button: Removes the selected controller from the list and stops actions.
- Force Factor Slider & Random Toggle: Controls base linear force strength (0-1000). Random varies within Random Min/Max .
- Force Quickness Slider & Random Toggle: Controls force change speed (0-10). Random varies .
- Torque Factor Slider & Random Toggle: Controls base rotational torque strength (0-1000). With random option.
- Torque Quickness Slider & Random Toggle: Controls torque change speed (0-10).
- Period Slider & Random Toggle: Sets cycle length (0-10 seconds). Random varies.
- Random Min/Max Sliders: In legacy mode (when Detail Random Settings is disabled), the Random Min/Max serves as a common multiplication/addition coefficient applied to all parameters (Force Factor, Torque Factor, Force Quickness, Torque Quickness, Period). A random value generated from Random Min/Max is multiplied (for Factor types) or added (for Quickness types) to each parameter's value to achieve randomization. Negative values are blocked, with the lower limit restricted to 0, preventing abnormal behavior (e.g., timer anomalies due to negative Period). The defaults (Min: 0.5, Max: 1) are designed to match the initial behavior of Detail mode upon startup.
(Updated) Since this legacy feature can be a bit confusing, we have added the "Random Detail Settings" feature. For more details, please check the update notes If you want to ignore fine settings, use the legacy function; if you want more detailed control, use the detailed settings function. - Load Preset/Save Preset Buttons: Save/load settings as JSON files .
Note: Parameters like sliders are based on VaM's default Cycle Force mechanism. Be cautious with large "Force" or "Quickness" values, as they may cause excessive movement and character distortion. This plugin is lightweight, integrates seamlessly with VaM's physics system, and provides realistic results. Please be careful.
4. Additional Notes
- Works with Atoms other than Person. Example: Randomly changing angles for a searchlight. However, for non-Person Atoms, check "Physics" in the "Physics Object" tab to enable receiving physical forces from CycleForce.- Special Thanks: To Mx.grok(xAI) for invaluable contributions in development
Sorry, but implementation is undecided.
Since the plugin's base relies on physical force control from CycleForce, controlling Morphs differs fundamentally and may become complicated to implement.