Plugin - BiologicalController - v5 (Patreon)
Downloads
Content
BiologicalController generates bone physics controllers for CUA (Custom Unity Asset) models with one click. The controller concept is inspired by Stopper's CUA controller, and the plugin is mainly made to better fit my own CUA assets.
V5 Update
New
Bone scale is now trigger-controllable in real time
Every scaled bone gets a permanently registered "Scale <bone>" slider parameter on the plugin. AnimationPattern transition triggers (or any other trigger action) can drive it live. Parameters are re-registered automatically after scene restore/rebuild, and deregistered when controllers are unloaded or the asset is switched. The Bone Scale page sliders stay in sync with the registered parameters.
Chain-bone real-time scaling now matches the rebuild path
Live scale changes teleport each managed chain bone's rigidbody and controllers to the hierarchy-derived stretched positions and zero their velocities so joints settle smoothly. Fixes chains not stretching/shrinking in real time and the "scale stuck after scene reload" case.
External links to the plugin's bone controllers now survive scene save/load
FreeControllerV3 "link to" references from other atoms and AnimationPattern (MoveProducer) receiver targets pointing at the plugin's bone controllers are recorded and automatically re-bound. Links lost in older saves must be re-created once.
New "HM_Config/Override_Rigidbody" and "HM_Config/Disable_Kinematic" config paths
Create a "HM_Config" empty object and the corresponding child object in the UnityAsset. On load, the plugin auto-checks the matching toggles on the Custom Properties page — no manual setup needed. Like "Self_Collision", root-level detection works; like "INC_*", states re-sync on asset switch/reload. Toggles are only auto-checked, never locked, and remain manually changeable.
Fixed
Bone scale settings now save and restore with scenes on ALL assets
Including assets whose bones already carry rigidbodies/joints in the asset bundle. For older saves without stored original-scale records, the plugin falls back to the bone's current scale as the original, so scales apply correctly.
Changed
Bone Scale page sliders now apply in real time
Exactly like AnimationPattern trigger sliders — no Apply button press needed. The "[▲] Apply Scales" button was removed; the full controller-rebuild path is now only used internally on asset load/scene restore.
The "Reset All" button now also resets the registered "Scale <bone>" trigger parameters back to 1
"HM_Config/Self_Collision" no longer forces/locks the setting
It is still auto-detected and checks the "Disable Self-Collision" toggle, but only pre-checked once. The user can freely uncheck or re-check it at any time, including after switching assets or restoring a scene.
The plugin has built-in multi-language support for
English, Chinese, Japanese, German, Korean, French, Russian, Spanish, Portuguese, Italian, Greek, Dutch, Swedish, Arabic
Regular Users (v3)
Features
One-click bone physics — automatically generates Rigidbody + ConfigurableJoint + FreeControllerV3 for every bone in the skeleton.
7 physics presets + Custom — Mechanical / Rigid / Stiff / Normal / Soft / Elastic / Jelly, each tuned for a different feel, plus a Custom mode when you start tweaking parameters.
Custom Properties — fine-tune linear drag, angular drag, joint spring/damper/max force, and choose Bone Joint Mode (Default / Rope / Fixed) for how joints resist being pulled. Switch on Override Rigidbody and Disable Kinematic for models that ship with existing physics. It has its own save/load presets.
Bone Scale — resize individual bones to fix clipping or shape the model.
Collider Editor — visually adjust collider sizes (Sphere / Box / Capsule) with X-ray style previews, plus independent collider presets.
Ignore Neighbor Collision — one slider to make neighboring bones ignore each other's collisions, preventing jitter in dense collider models. Cannot be enabled at the same time as Disable Self-Collision.
Self-collision control — toggle bone self-collision off; it automatically detects and locks the model's own `Self_Collision` configuration.
Collision sync — bone collision follows the `Physics Object → Collision` toggle in real time.
Controller Visibility — show or hide any bone controller, node by node.
Material conversion — auto-converts Unity Standard Shader materials to the `Custom/Subsurface/GlossNMCull` shader for correct rendering.
Color settings — diffuse, specular, and subdermis color pickers.
Animation control — speed animation up to 5× or disable it completely.
Other settings — Prevent Disappearance, Skinned Motion Vectors, Dynamic Occlusion, and Hide Control Atom.
Plugin presets — save and load the whole configuration as a JSON file, with an auto-generated thumbnail.
Multilingual — built-in English and Chinese, plus external language files (Japanese, Korean, German, French, and more).
Scene persistence — every controller state is saved and restored with the scene.
Usage
Add the `BiologicalController.cslist` plugin to a CUA model that has a bone hierarchy.
Notes
The first time you click Create Controllers, a hidden helper Atom named `CustomUnityAsset#BoneControllers` is created. Do not delete it — deleting it breaks the controllers. You can hide it from the scene list with Hide Control Atom in Other Settings.
Quick Start
1. Root Node — select the bone that is the root of the hierarchy you want to control.
2. Creature Type — choose the preset that matches your creature's body feel.
3. Creature Weight — adjust the overall bone mass (higher = heavier and more stable).
4. Check the options you need (Create Rigidbodies / Create Joints / Create Leaf Controllers / Disable Self-Collision).
5. Click Create Controllers.
6. Fine-tune with Controller Visibility, Bone Scale, and Collider Editor.
Creators (v5)
Tentacle Bone Chain Setup (Experimental)
The plugin automatically detects bone chains whose names start with "_Tentacles" or "_Tails" (for example Tentacles` → `Tentacles.001` → ...; the leading-dot suffix is no longer required). To use it:
In Root Node, select a bone that starts with "_Tentacles" or "_Tails" as the root.
Click Create Controllers.
Once a tentacle chain is recognized, the plugin enables the following:
Mass, drag, and collider radius gradually decrease from root to tip, making the tentacle tip lighter and more agile.
The root zone (first 20%) has limited joint angles for stability; the middle and tail zones rotate freely for natural sway.
Controllers are created following the same rules as a normal chain (root, branch bones, and optionally leaf bones), and the Bone Joint Mode setting applies to the chain's joints.
Adjacent bones automatically ignore each other's collisions, preventing long chains from intersecting themselves.
Setting the Self-Collision State
In the Unity Asset model, create an `HM_Config/Self_Collision` path using empty GameObjects. The plugin detects it automatically and locks the toggle (it cannot be changed manually), so it follows the model's own collision settings.
Bone collision state follows the scene's Physics Object → Collision toggle in real time.
Ignore Neighbor Collision - INC_*
"INC_" UnityAsset config path. Inside the UnityAsset scene asset, create an empty object path `HM_Config` and add an `INC_` object under it, e.g. `HM_Config/INC_4`. When the CUA with the plugin loads the asset, the plugin automatically reads the "Ignore Neighbor Collision" slider parameter from it.
Setting the Override_Rigidbody & Disable_Kinematic
"Override_Rigidbody" and "Disable_Kinematic" UnityAsset config paths.
Inside the UnityAsset scene asset, create an empty object path "HM_Config" and add the corresponding child objects under it, e.g. "HM_Config/Override_Rigidbody" and "HM_Config/Disable_Kinematic".
When the CUA with the plugin loads the asset, the plugin automatically reads the matching toggle parameters from them and auto-checks the corresponding toggles on the Custom Properties page — no manual setup needed.
Like "Self_Collision", root-level detection works; like "INC_*", states re-sync on asset switch/reload.
The toggles are only auto-checked, never locked, and remain manually changeable.
Joint Self-Collision Handling
When bones are set up with joint links, rigidbodies can cause physical collision deformation issues after CUA is loaded but before the script takes effect. My approach is:In Unity, locate the rigidbodies on the bone segments where collisions occur, and enable "Is Kinematic" on them. This effectively prevents physical collision problems after CUA loads. However, enabling "Is Kinematic" may not work well in the controller. To address this, when creating the controller with the "BiologicalController" plugin, find "Custom Properties > Disable Kinematic" and enable it. This will turn off "Is Kinematic" on the rigidbodies at controller creation time.
Credits
- Controller concept inspired by Stopper; material settings inspired by NoStage3.