Skip to content

Instantly share code, notes, and snippets.

@TayouVR
Last active January 2, 2024 10:48
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save TayouVR/aad7f8b6d83264b379d90e5100653a76 to your computer and use it in GitHub Desktop.
Save TayouVR/aad7f8b6d83264b379d90e5100653a76 to your computer and use it in GitHub Desktop.
A Guide to the Dynamic Penetration System

Dynamic Penetration Guide (EN) (日本語版)

for Dynamic Penetration System v1_21 (Gumroad)
I noticed some things aren't super clear for the Dynamic Penetration System, there is a lack of documentation to some extent.
This Guide does not describe how to set up penetrators using the provided script, but rather aids people in the manual process. Instructions for the Script may come at a later point.


Channels:

Light Ranges correspond to channels.
The second digit behind the comma is what determines the role for the light. aka:

channel 0:

orifice

regular orifice:                   #.#1
ring / passthrough orifice:        #.#2
direction / normal:                #.#5

penetrator

physics / tip light:               #.#9

channel 1 (advanced):

orifice

regular orifice:                   #.#3
ring / passthrough orifice:        #.#4
direction / normal:                #.#6

penetrator

physics / tip light:               #.#8

A Penetrator sees only lights which reach into its bounding box. So both the range of the lights on the orifice and the bounding box of the penetrator determine if coupling works. To be able to use multiple penetrators and orifices in somewhat close vicinity (like on events) it might make sense to have range and bounding box smaller, so that penetrators and orifices don't mess with one another. If the range / bounding box is too small though the orifice and penetrator will not couple either. so adjust both to a point where its as big as it needs to be and as small as it can be.

Orifice Deformation

For Orifice deformation the intensity of the tip light on the penetrator determines the length of the penetrator. To configure your penetrator; place the orifice tube (the purple thing, that deforms) just on top of your penetrator, then change the intensity of the tip light until the orifice tube just starts bulging.

To set up a orifice for deformation, apply the shader to the mesh, then use "Tools > Raliv > Orifice Setup" to generate a texture out of blendshapes for the shader. The texture contains information about which vertecies should be deformed in which way.

The Blendshapes used for deformation are additive. Depth3 is added to Depth2 and 1, so make the blendshapes accordingly.
Do not make Depth3 a blendshape, that includes all deformations from entry and 1 and 2.

Extra

Which orifice is used for deformation depends on the channel and how close the lights are. If you are close to another person with an orifice and they have a big light range it might happen, that your shader reacts to their orifice. This is not fully avoidable, however keeping light ranges on a minimum will help.

As shaders in unity can only see four lights at once having the tip light toggleable might make sense. in that case you can without issues have two orifices and any amount of penetrators in close vicinity. without messing with eachother.

Furthermore both light ranges and shader properties can be animated. So if you have the spare parameters you might want to have toggles between the two channels for all orifices and tip lights, in order to be able to have dp or just be able to use both channels depending on what other people have set up.

Useful tips for creating your own penetrator model using blender

When exporting a model from blender the rotation has to be right in the end in unity.
These export settings work well, though you are always free to experiment and see if you can get something working better:
Blender Export Screenshot

When exporting a model with Armature you might need to rotate the first bone by 90° along the X axis, so that its facing in the Y direction like so:
Blender Bone Alignment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment