This page describes all the special naming quirks MNSI uses.
Physical Material Naming
Physical Materials can have all characters in their name. The only exception is the "-" string.
Example of valid unique names;
CardboardBox_Small, ShotgunShell, Glass_Type2.
Multiple types of Physical Materials can be all instanced to a single name using the "-" to create "instances" of existing physical materials.
Default_Stone can be a physical material with sounds setup for stone impacts. But one single physical material can't account for all variations needed, like a stone surface that is more slippery. To avoid having to define multiple physical material with the same sounds in a sound library, the instancing feature can be used.
Default_Stone, Default_Stone-Slippery, Default_Stone-ReallyDense, Default_Stone-LowMass will all be treated as Default_Stone by the MNSI parser.
Sound Library Definitions
Sound libraries are a bit more complicated yet hopefully still simple to use.
Here is a basic example of a sound library with the definitions for one Physical Mateiral called "ReallyCoolWood".
Each sound library struct has 4 key-pair values.
- "Impact_Hard_Sounds" is where Hard impact sounds are added.
- "Impact_Soft_Sounds" is where Soft impact sounds are added.
- "Friction_Roll_Sounds" is where looping sounds for rolling are added.
- "Friction_Linear_Sounds" is where looping sounds for sliding are added.
They are each defined using the names of the actual physical materials and a "-" to separate them. They are either a specific definition; "Name Of Impacting Physical Material"-"Name Of Surface Hit Physical Material." OR a catchall; "Name Of Impacting Physical Material"-DEFINT
- specific definition
- This is to specifically define a sound to play for specific physical material collisions. In our example, ReallyCoolWood colliding with Stone can play a different sound than ReallyCoolWood colliding with Grass. In this example the two specific definitions can look like this; ReallyCoolWood-Stone or ReallyCoolWood-Default_Stone and ReallyCoolWood-Grass
- To avoid having to have a thousand definitions all using the same sound, a Catchall can be made. If MNSI sees a collision event but the physical material of the surface being hit, it will default to the Catchall, as defined using the token "DEFINT.". In Our example; ReallyCoolWood collides with a surface with a physical material that's isn't defined using a Specific Definition, it will instead play the sound loaded for the DEFINT definition.
Do note that pairs are cross checked.
If ReallyCoolWood-Default_Stone key pair isn't found MNSI will also try looking for Default_Stone-ReallyCoolWood.
It is possible to load different sounds for Wood colliding with stone, and Stone colliding with wood.