Show / Hide Table of Contents

Combination Volume Adjustment

Combination Volume Adjustment settings

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 into A1-B1-C1.asset, which plays using 1.0 * 1.0 * 1.0 * 0.75 = 0.75 volume.
  • A2 + B1 + C1 resolves into A2-B1-C1.asset, which plays using 0.8 * 1.0 * 1.0 * 0.75 = 0.6 volume.
  • A2 + B1 + C3 resolves into A2-B1-C3.asset, which plays using 0.8 * 1.0 * 0.6 * 0.75 = 0.36 volume.
  • A2 + B1 + C2 resolves into A2-B1-C2.asset, which plays using 0.8 * 1.0 * [0.2~0.4] * 0.75 = [0.12~0.24] volume.
In This Article
Back to top
A Unity plugin by 5argon from Exceed7 Experiments. Problems/suggestions/contact : 5argon@exceed7.com Discord Unity Forum