• Stars
    star
    285
  • Rank 145,115 (Top 3 %)
  • Language ShaderLab
  • License
    MIT License
  • Created over 3 years ago
  • Updated 22 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A unity addon for adding stretchy bouncy physics to bones and meshes.

Unity JigglePhysics

openupm

A relativistic squash-and-stretch jigglebone physics solution for characters in Unity.

Video demo on youtube.

Features

  • Supports per-bone squash and stretch, as well as per-vertex squash and stretch.

SquishyDemo

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

RelativisticDemo

  • 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.

ProportionDemo

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

ScriptableObjectDemo

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!

A model of a purple lady

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

Unity inspector animation of adding a jiggle rig and dragging a tail in.

  1. 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.

Unity inspector animation of creating a jiggle setting and dragging it into the JiggleRigBuilder.

  1. 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.

The cutest little blob of a model.

  1. (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.

A blob with the most jiggly parts being redder than the non-jiggly parts.

  1. 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.

A simple example graph using ASE

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

A simple example graph using Shader Graph

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

A Unity Editor animation of setting up the JiggleSkin MonoBehaviour

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

A jiggly blob

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",
  }
}

More Repositories

1

maim

maim (make image) takes screenshots of your desktop. It has options to take only a region, and relies on slop to query for regions. maim is supposed to be an improved scrot.
C++
2,153
star
2

slop

slop (Select Operation) is an application that queries for a selection from the user and prints the region to stdout.
C++
869
star
3

VRPlayspaceMover

A little app that lets you adjust your play-space by gripping the universe!
C++
159
star
4

SkinnedMeshDecals

An example of rendering decals on SkinnedMesh Renderers in Unity.
ShaderLab
155
star
5

UnityPenetrationTech

A gpu-based deformation system for mapping penetrators along orifice paths.
ShaderLab
107
star
6

KoboldKare

A public repo for the game KoboldKare
C#
85
star
7

UnitySourceTools

Some tools that I use to port source maps to Unity.
C#
32
star
8

ShapedAudioReverbZones

A Unity implementation for arbitrarily shaped Reverb Zones.
C#
24
star
9

URPUnityTerrainTools

Some brush-based tools for creating terrains in Unity. WIP
ShaderLab
11
star
10

ChurnVectorSDK

Tools to develop characters and maps for Churn Vector.
ShaderLab
10
star
11

astrostructlove

A SS13 clone designed on the Love2D framework with proper networking.
Lua
7
star
12

UnityBehaviorTreeImplementation

An example of how to implement behavior trees within Unity.
C#
7
star
13

slop-python

Slop bindings for python3. Requires slop: https://github.com/naelstrof/slop
C
5
star
14

DynamicPenetrationForGames

Tools that assist with penetration in the Unity Engine.
ShaderLab
5
star
15

invictus

Hobby engine built using SFML.
C++
5
star
16

UnityMozzarellaTech

Some gpu related experiments involving mozzarella somewhat.
ShaderLab
4
star
17

VRCLipSyncOSC

A lightweight C++ implementation of VRChat lip sync. Uses lua to configure.
C++
4
star
18

auto-usb-arch-scripts

Mainly for personal use, I take no responsibility!
Shell
4
star
19

astrostructlove2

Another prototype for my game engine.
Lua
3
star
20

PugBot-Discord-Django

UT4Pugs.us pugbot
JavaScript
3
star
21

liveamp

Flashes your desktop wallpaper to music currently playing!
C++
3
star
22

wallpaper-post-processor

scans a directory for images to collage into appropriately sized desktop wallpapers. Uses OpenCV AI to upscale and match resolutions between photos.
Rust
3
star
23

com.naelstrof.inflatable

A limited tween solution for making body parts go boowomp in my games. For personal use.
C#
3
star
24

com.naelstrof.easing

A library of MIT easing function implementations for Unity.
C#
3
star
25

com.naelstrof.splines

Crude tools to do math on splines.
C#
2
star
26

UnityScriptableSettings

A tool to help with creating, localizing, and subscribing to serializable user preferences.
ShaderLab
2
star
27

2420-C-Sharp-Sorts-and-Data-Structures

Homework Assignments
C#
2
star
28

Pong

For my buddy max <3
C++
2
star
29

GodotJigglePhysics

Messing around porting jiggle physics from unity to godot.
C#
2
star
30

quadtrees

C++
2
star
31

SpaceJanitor

A machinima production for EAE 3660-02.
2
star
32

omnichem

Chemistry buddy for goonchem :honk:
JavaScript
2
star
33

Syme

Another iteration of the many game engines I'm working on. This one in particular has a 2D focus and relies on SFML for pretty much everything.
C++
2
star
34

com.naelstrof.orbitcam

A data-driven programmable camera solution for Unity. Just for personal use.
C#
1
star
35

com.naelstrof.extensions

A collection of extension methods that I use in my games.
C#
1
star
36

UnityFlocking

A tool designed to help you add foliage to scenes.
GLSL
1
star
37

com.naelstrof.projectiles

A tool that will help shoot a projectile on an intersection course.
C#
1
star
38

2420-DingoDanger

Another homework assignment, this time a GAME!
C#
1
star
39

BodegaBash

Game WIP
Mathematica
1
star
40

PlayerModelServer

precaches player models for players to download on join, without editing res files.
AngelScript
1
star
41

ChurnVectorModdingExample

A project set up to allow for easy modding of Churn Vector.
ShaderLab
1
star
42

laser_pointer

Lets you point at people's screen remotely.
Rust
1
star