https://github.com/naelstrof/UnityJigglePhysics
A unity addon for adding stretchy bouncy physics to bones and meshes.
https://github.com/naelstrof/UnityJigglePhysics
Last synced: 9 months ago
JSON representation
A unity addon for adding stretchy bouncy physics to bones and meshes.
- Host: GitHub
- URL: https://github.com/naelstrof/UnityJigglePhysics
- Owner: naelstrof
- License: mit
- Created: 2021-07-24T09:49:20.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T08:01:57.000Z (about 1 year ago)
- Last Synced: 2024-10-25T04:26:37.616Z (about 1 year ago)
- Language: ShaderLab
- Size: 72.5 MB
- Stars: 284
- Watchers: 13
- Forks: 33
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-unity3d - UnityJigglePhysics - A unity addon for adding stretchy bouncy physics to bones and meshes. (Open Source Repositories / Physic)
- awesome-unity3d - UnityJigglePhysics - A unity addon for adding stretchy bouncy physics to bones and meshes. (Open Source Repositories / Physic)
README
# Unity JigglePhysics
[](https://openupm.com/packages/com.naelstrof.jigglephysics/)
A relativistic squash-and-stretch jigglebone physics solution for characters in Unity.
[Video demo on youtube.](https://www.youtube.com/watch?v=WHCv2lXbbTk)
## Features
* Supports per-bone squash and stretch, as well as per-vertex squash and stretch.

* Realistically relativistic! Elevators, trains, and vehicles won't leave jigglebones permanently trailing behind.

* Works seamlessly on physics objects without jitter, with no configuration!
* Supports animated skeletons, JigglePhysics uses it as a target reference pose.
* Realtime rig scaling support, freely change character proportions on the fly.

* ScriptableObject-based configuration, share settings across projects and prefabs.

## Usage
A unity repository full of examples can be found here: https://github.com/naelstrof/UnityJigglePhysics. If anything below doesn't make sense, download the examples!
## How to Jiggle a Rig
1. Have a cool model attached to a bunch of transforms. SkinnedMeshRenderers look best!

2. Create a JiggleRigBuilder Monobehaviour on the object, and select the root bones you want to jiggle by adding them to the list of JiggleRigs.

3. Create a JiggleSettings ScriptableObject in the project through the `Create->JigglePhysics->Settings` menu. Then make sure that each JiggleRig has a reference to a JiggleSetting.

4. Play! You can adjust the jiggle settings during play mode and see changes live-- And when you exit play mode, the settings should stick!
## How to Jiggle a Skin (Advanced)
1. Have a cool skinned model, doesn't need very many transforms, but does need to be a SkinnedMeshRenderer.

2. (Optional) Make sure the model has some sort of mask. By default the shaders use the Red vertex color channel to mask out the motion. I like to use Blender and Vertex Color Master for this.

3. Create a JiggleSkin-supported shader with either Amplify Shader Editor, or Shader Graph for your specified shader pipeline.
With ASE, there should be a custom node automatically added to your list of available nodes: `Jiggle Physics Softbody`.

With ShaderGraph, you must use a CustomFunction node, and use the hlsl file found at `JigglePhysics/Shaders/JigglePhysicsSoftbodyShaderGraph.hsl`.

4. Add a JiggleSkin MonoBehavior to the object, and add the desired list of JiggleZones, with their specified JiggleSettings.

5. Ensure the target skins have a JiggleSkin-supported shader applied, then Play!

## Installation
You can install Jiggle Physics with OpenUPM by checking out the badge above. Otherwise...
Simply add `https://github.com/naelstrof/UnityJigglePhysics.git#upm` as a package using the package manager.
Or if that doesn't work, add it to the manifest.json like so.
```
{
"dependencies": {
"com.naelstrof.jigglephysics": "https://github.com/naelstrof/UnityJigglePhysics.git#upm",
}
}
```