Combination Volume Adjustment
Among all 4 assets used for resolving FootstepBehaviour
(Surface
+ SurfaceModifier
+ Stepper
+ StepperModifier
), only Surface
has a ton of settings inside it.
But actually the other 3 (SurfaceModifier
, Stepper
, StepperModifier
) are not just mere "combination asset", they have some extra settings you can see when you inspect them.
One extra setting is this Combination Volume Adjustment, an another one is Tree Resolver Fallback.
What is a "combination"
It refers to all assets involved in resolving into 1 FootstepBehaviour
.
"Contribution" of volume adjustment
Among all 4 types of assets in the combination (Surface
+ SurfaceModifier
+ Stepper
+ StepperModifier
), 3 of them (SurfaceModifier
, Stepper
, StepperModifier
) can contribute volume adjustments on top of Volume (per-clip) and Volume (outer) in the resolved FootstepBehaviour
.
The "contribution" is by multiplication. Combination Volume Adjustment all started at 1
by default, meaning that it doesn't touch the calculated volume from FootstepBehaviour
just yet.
You can specify fixed value or randomized from inclusive range, which gets randomized for each step.
Why
Supposed that you used StepperModifier
as Walk.asset
and Tiptoe.asset
.
In the resolved FootstepBehaviour
having Walk.asset
in the formula, you would program it like usual. But in the resolved FootstepBehaviour
having Tiptoe.asset
in the formula, you always have to adjust the Volume (outer) to be about * 0.2~0.4
to make it sounds like tiptoeing.
All AudioClip
were normalized by audio engineers to a standard of -6 dB. At that volume, recorded tiptoe clip doesn't sounds like tiptoeing anymore. (But normalizing is a good practice!)
This * 0.2~0.4
needs to be repeated for all FootstepBehaviour
involving with Tiptoe.asset
in the formula, which is not only error prone, but difficult to change your mind and update later how quiet should tiptoeing be for your game.
By having this multiplication automatically applied whenever Tiptoe.asset
is involved in the combination, you have configured overall volume reduction based on purpose. (i.e. Tiptoe should be quiet, anything using Tiptoe.asset
StepperModifier
should automatically become quiet.)
You may remember from Concepts/Behaviour and the Resolving Assets that SurfaceModifier
, Stepper
, and StepperModifer
are equal and serve as only different ingredients in resolving the combination. Not anymore with this settings, now they also contribute some side effects into the result.
null
can be involved in the combination, which it will not contribute anything to the volume adjustment. (Equivalent to contributing 1
.)
Example
Supposed that all FootstepBehaviour
below were configured so that Volume (outer) is a fixed 0.75
. Number in the bracket behind each item indicates Combination Volume Adjustment settings.
(Surface) ExampleSurface.asset/
├── (SurfaceModifier) A1.asset/ [1.0]
│ ├── (Stepper) B1.asset/ [1.0]
│ │ ├── (StepperModifier) C1.asset/ [1.0]
│ │ │ └── resolves into --> (FootstepBehaviour) A1-B1-C1.asset
│ │ ├── (StepperModifier) C2.asset/ [0.2~0.4]
│ │ │ └── resolves into --> (FootstepBehaviour) A1-B1-C2.asset
│ │ └── (StepperModifier) C3.asset/ [0.6]
│ │ └── resolves into --> (FootstepBehaviour) A1-B1-C3.asset
│ └── (Stepper) B2.asset/ [1.0]
│ ├── (StepperModifier) C1.asset/ [1.0]
│ │ └── resolves into --> (FootstepBehaviour) A1-B2-C1.asset
│ ├── (StepperModifier) C2.asset/ [0.2~0.4]
│ │ └── resolves into --> (FootstepBehaviour) A1-B2-C2.asset
│ └── (StepperModifier) C3.asset/ [0.6]
│ └── resolves into --> (FootstepBehaviour) A1-B2-C3.asset
└── (SurfaceModifier) A2.asset/ [0.8]
├── (Stepper) B1.asset/ [1.0]
│ ├── (StepperModifier) C1.asset/ [1.0]
│ │ └── resolves into --> (FootstepBehaviour) A2-B1-C1.asset
│ ├── (StepperModifier) C2.asset/ [0.2~0.4]
│ │ └── resolves into --> (FootstepBehaviour) A2-B1-C2.asset
│ └── (StepperModifier) C3.asset/ [0.6]
│ └── resolves into --> (FootstepBehaviour) A2-B1-C3.asset
└── (Stepper) B2.asset/ [1.0]
├── (StepperModifier) C1.asset/ [1.0]
│ └── resolves into --> (FootstepBehaviour) A2-B2-C1.asset
├── (StepperModifier) C2.asset/ [0.2~0.4]
│ └── resolves into --> (FootstepBehaviour) A2-B2-C2.asset
└── (StepperModifier) C3.asset/ [0.6]
└── resolves into --> (FootstepBehaviour) A2-B2-C3.asset
A1 + B1 + C1
resolves intoA1-B1-C1.asset
, which plays using1.0 * 1.0 * 1.0 * 0.75 = 0.75
volume.A2 + B1 + C1
resolves intoA2-B1-C1.asset
, which plays using0.8 * 1.0 * 1.0 * 0.75 = 0.6
volume.A2 + B1 + C3
resolves intoA2-B1-C3.asset
, which plays using0.8 * 1.0 * 0.6 * 0.75 = 0.36
volume.A2 + B1 + C2
resolves intoA2-B1-C2.asset
, which plays using0.8 * 1.0 * [0.2~0.4] * 0.75 = [0.12~0.24]
volume.