Implement playing of the real collision sounds, change scaling for avatar
collisions to make them really soft because otherwise climbing stairs makes an unbearable amount of noise.avinationmerge
parent
095dbf0ece
commit
4942314435
|
@ -27,9 +27,11 @@
|
|||
// Ubit 2012
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using OpenMetaverse;
|
||||
using OpenSim.Framework;
|
||||
using log4net;
|
||||
|
||||
namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
|
@ -42,9 +44,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
public static class CollisionSounds
|
||||
{
|
||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private const int MaxMaterials = 7;
|
||||
// part part
|
||||
/*
|
||||
|
||||
private static UUID snd_StoneStone = new UUID("be7295c0-a158-11e1-b3dd-0800200c9a66");
|
||||
private static UUID snd_StoneMetal = new UUID("be7295c0-a158-11e1-b3dd-0800201c9a66");
|
||||
private static UUID snd_StoneGlass = new UUID("be7295c0-a158-11e1-b3dd-0800202c9a66");
|
||||
|
@ -53,7 +57,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
private static UUID snd_StonePlastic = new UUID("be7295c0-a158-11e1-b3dd-0800205c9a66");
|
||||
private static UUID snd_StoneRubber = new UUID("be7295c0-a158-11e1-b3dd-0800206c9a66");
|
||||
|
||||
private static UUID snd_MetalStone = new UUID("be7295c0-a158-11e1-b3dd-0801200c9a66");
|
||||
private static UUID snd_MetalMetal = new UUID("be7295c0-a158-11e1-b3dd-0801201c9a66");
|
||||
private static UUID snd_MetalGlass = new UUID("be7295c0-a158-11e1-b3dd-0801202c9a66");
|
||||
private static UUID snd_MetalWood = new UUID("be7295c0-a158-11e1-b3dd-0801203c9a66");
|
||||
|
@ -61,44 +64,24 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
private static UUID snd_MetalPlastic = new UUID("be7295c0-a158-11e1-b3dd-0801205c9a66");
|
||||
private static UUID snd_MetalRubber = new UUID("be7295c0-a158-11e1-b3dd-0801206c9a66");
|
||||
|
||||
private static UUID snd_GlassStone = new UUID("be7295c0-a158-11e1-b3dd-0802200c9a66");
|
||||
private static UUID snd_GlassMetal = new UUID("be7295c0-a158-11e1-b3dd-0802201c9a66");
|
||||
private static UUID snd_GlassGlass = new UUID("be7295c0-a158-11e1-b3dd-0802202c9a66");
|
||||
private static UUID snd_GlassWood = new UUID("be7295c0-a158-11e1-b3dd-0802203c9a66");
|
||||
private static UUID snd_GlassFlesh = new UUID("be7295c0-a158-11e1-b3dd-0802204c9a66");
|
||||
private static UUID snd_GlassPlastic = new UUID("be7295c0-a158-11e1-b3dd-0802205c9a66");
|
||||
private static UUID snd_GlassRubber = new UUID("be7295c0-a158-11e1-b3dd-0802206c9a66");
|
||||
|
||||
private static UUID snd_WoodStone = new UUID("be7295c0-a158-11e1-b3dd-0803200c9a66");
|
||||
private static UUID snd_WoodMetal = new UUID("be7295c0-a158-11e1-b3dd-0803201c9a66");
|
||||
private static UUID snd_WoodGlass = new UUID("be7295c0-a158-11e1-b3dd-0803202c9a66");
|
||||
private static UUID snd_WoodWood = new UUID("be7295c0-a158-11e1-b3dd-0803203c9a66");
|
||||
private static UUID snd_WoodFlesh = new UUID("be7295c0-a158-11e1-b3dd-0803204c9a66");
|
||||
private static UUID snd_WoodPlastic = new UUID("be7295c0-a158-11e1-b3dd-0803205c9a66");
|
||||
private static UUID snd_WoodRubber = new UUID("be7295c0-a158-11e1-b3dd-0803206c9a66");
|
||||
|
||||
private static UUID snd_FleshStone = new UUID("be7295c0-a158-11e1-b3dd-0804200c9a66");
|
||||
private static UUID snd_FleshMetal = new UUID("be7295c0-a158-11e1-b3dd-0804201c9a66");
|
||||
private static UUID snd_FleshGlass = new UUID("be7295c0-a158-11e1-b3dd-0804202c9a66");
|
||||
private static UUID snd_FleshWood = new UUID("be7295c0-a158-11e1-b3dd-0804203c9a66");
|
||||
private static UUID snd_FleshFlesh = new UUID("be7295c0-a158-11e1-b3dd-0804204c9a66");
|
||||
private static UUID snd_FleshPlastic = new UUID("be7295c0-a158-11e1-b3dd-0804205c9a66");
|
||||
private static UUID snd_FleshRubber = new UUID("be7295c0-a158-11e1-b3dd-0804206c9a66");
|
||||
|
||||
private static UUID snd_PlasticStone = new UUID("be7295c0-a158-11e1-b3dd-0805200c9a66");
|
||||
private static UUID snd_PlasticMetal = new UUID("be7295c0-a158-11e1-b3dd-0805201c9a66");
|
||||
private static UUID snd_PlasticGlass = new UUID("be7295c0-a158-11e1-b3dd-0805202c9a66");
|
||||
private static UUID snd_PlasticWood = new UUID("be7295c0-a158-11e1-b3dd-0805203c9a66");
|
||||
private static UUID snd_PlasticFlesh = new UUID("be7295c0-a158-11e1-b3dd-0805204c9a66");
|
||||
private static UUID snd_PlasticPlastic = new UUID("be7295c0-a158-11e1-b3dd-0805205c9a66");
|
||||
private static UUID snd_PlasticRubber = new UUID("be7295c0-a158-11e1-b3dd-0805206c9a66");
|
||||
|
||||
private static UUID snd_RubberStone = new UUID("be7295c0-a158-11e1-b3dd-0806200c9a66");
|
||||
private static UUID snd_RubberMetal = new UUID("be7295c0-a158-11e1-b3dd-0806201c9a66");
|
||||
private static UUID snd_RubberGlass = new UUID("be7295c0-a158-11e1-b3dd-0806202c9a66");
|
||||
private static UUID snd_RubberWood = new UUID("be7295c0-a158-11e1-b3dd-0806203c9a66");
|
||||
private static UUID snd_RubberFlesh = new UUID("be7295c0-a158-11e1-b3dd-0806204c9a66");
|
||||
private static UUID snd_RubberPlastic = new UUID("be7295c0-a158-11e1-b3dd-0806205c9a66");
|
||||
private static UUID snd_RubberRubber = new UUID("be7295c0-a158-11e1-b3dd-0806206c9a66");
|
||||
|
||||
// terrain part
|
||||
|
@ -109,50 +92,6 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
private static UUID snd_TerrainFlesh = new UUID("be7295c0-a158-11e1-b3dd-0807200c9a66");
|
||||
private static UUID snd_TerrainPlastic = new UUID("be7295c0-a158-11e1-b3dd-0807200c9a66");
|
||||
private static UUID snd_TerrainRubber = new UUID("be7295c0-a158-11e1-b3dd-0807200c9a66");
|
||||
*/
|
||||
private static UUID snd_StoneStone = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_StoneMetal = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_StoneGlass = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_StoneWood = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_StoneFlesh = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_StonePlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_StoneRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
private static UUID snd_MetalMetal = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_MetalGlass = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_MetalWood = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_MetalFlesh = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_MetalPlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_MetalRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
private static UUID snd_GlassGlass = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_GlassWood = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_GlassFlesh = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_GlassPlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_GlassRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
private static UUID snd_WoodWood = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_WoodFlesh = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_WoodPlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_WoodRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
private static UUID snd_FleshFlesh = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_FleshPlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_FleshRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
private static UUID snd_PlasticPlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_PlasticRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
private static UUID snd_RubberRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
// terrain part
|
||||
private static UUID snd_TerrainStone = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_TerrainMetal = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_TerrainGlass = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_TerrainWood = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_TerrainFlesh = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_TerrainPlastic = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
private static UUID snd_TerrainRubber = new UUID("c80260ba-41fd-8a46-768a-6bf236360e3a");
|
||||
|
||||
public static UUID[] m_TerrainPart = {
|
||||
snd_TerrainStone,
|
||||
|
@ -163,18 +102,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
snd_TerrainPlastic,
|
||||
snd_TerrainRubber
|
||||
};
|
||||
/*
|
||||
//full assimetric sounds
|
||||
public static UUID[] m_PartPart = {
|
||||
snd_StoneStone, snd_StoneMetal, snd_StoneGlass, snd_StoneWood, snd_StoneFlesh, snd_StonePlastic, snd_StoneRubber,
|
||||
snd_MetalStone, snd_MetalMetal, snd_MetalGlass, snd_MetalWood, snd_MetalFlesh, snd_MetalPlastic, snd_MetalRubber,
|
||||
snd_GlassStone, snd_GlassMetal, snd_GlassGlass, snd_GlassWood, snd_GlassFlesh, snd_GlassPlastic, snd_GlassRubber,
|
||||
snd_WoodStone, snd_WoodMetal, snd_WoodGlass, snd_WoodWood, snd_WoodFlesh, snd_WoodPlastic, snd_WoodRubber,
|
||||
snd_FleshStone, snd_FleshMetal, snd_FleshGlass, snd_FleshWood, snd_FleshFlesh, snd_FleshPlastic, snd_FleshRubber,
|
||||
snd_PlasticStone, snd_PlasticMetal, snd_PlasticGlass, snd_PlasticWood, snd_PlasticFlesh, snd_PlasticPlastic, snd_PlasticRubber,
|
||||
snd_RubberStone, snd_RubberMetal, snd_RubberGlass, snd_RubberWood, snd_RubberFlesh, snd_RubberPlastic, snd_RubberRubber
|
||||
};
|
||||
*/
|
||||
|
||||
// simetric sounds
|
||||
public static UUID[] m_PartPart = {
|
||||
snd_StoneStone, snd_StoneMetal, snd_StoneGlass, snd_StoneWood, snd_StoneFlesh, snd_StonePlastic, snd_StoneRubber,
|
||||
|
@ -235,19 +163,17 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
if (!HaveSound)
|
||||
{
|
||||
// TODO: Import real collision sounds and uncomment this
|
||||
// volume = Math.Abs(colInfo.relativeVel);
|
||||
// if (volume < 0.2f)
|
||||
// continue;
|
||||
//
|
||||
// volume *= volume * .0625f; // 4m/s == full volume
|
||||
// if (volume > 1.0f)
|
||||
// volume = 1.0f;
|
||||
//
|
||||
// soundID = m_TerrainPart[thisMaterial];
|
||||
volume = Math.Abs(colInfo.relativeVel);
|
||||
if (volume < 0.2f)
|
||||
continue;
|
||||
|
||||
volume *= volume * .0625f; // 4m/s == full volume
|
||||
if (volume > 1.0f)
|
||||
volume = 1.0f;
|
||||
|
||||
soundID = m_TerrainPart[thisMaterial];
|
||||
}
|
||||
else // Remove this else when uncommenting the above
|
||||
part.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
part.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
doneownsound = true;
|
||||
}
|
||||
continue;
|
||||
|
@ -268,35 +194,31 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (volume == 0.0f)
|
||||
continue;
|
||||
}
|
||||
// TODO: Import real collision sounds and uncomment this
|
||||
// else
|
||||
// {
|
||||
// volume = Math.Abs(colInfo.relativeVel);
|
||||
// if (volume < 0.2f)
|
||||
// continue;
|
||||
//
|
||||
// volume *= volume * .0625f; // 4m/s == full volume
|
||||
// if (volume > 1.0f)
|
||||
// volume = 1.0f;
|
||||
//
|
||||
// int otherMaterial = (int)otherPart.Material;
|
||||
// if (otherMaterial >= MaxMaterials)
|
||||
// otherMaterial = 3;
|
||||
//
|
||||
// soundID = m_PartPart[thisMatScaled + otherMaterial];
|
||||
// }
|
||||
}
|
||||
|
||||
if (soundID != UUID.Zero) // Remove when sounds are there
|
||||
{ // Remove when sounds are there
|
||||
if (doneownsound)
|
||||
otherPart.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
else
|
||||
{
|
||||
part.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
doneownsound = true;
|
||||
volume = Math.Abs(colInfo.relativeVel);
|
||||
if (volume < 0.2f)
|
||||
continue;
|
||||
|
||||
volume *= volume * .0625f; // 4m/s == full volume
|
||||
if (volume > 1.0f)
|
||||
volume = 1.0f;
|
||||
|
||||
int otherMaterial = (int)otherPart.Material;
|
||||
if (otherMaterial >= MaxMaterials)
|
||||
otherMaterial = 3;
|
||||
|
||||
soundID = m_PartPart[thisMatScaled + otherMaterial];
|
||||
}
|
||||
} // Remove when sounds are there
|
||||
}
|
||||
|
||||
if (doneownsound)
|
||||
otherPart.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
else
|
||||
{
|
||||
part.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
doneownsound = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -341,23 +263,25 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
continue;
|
||||
if (otherPart.CollisionSoundType > 0 && otherPart.CollisionSoundVolume > 0f)
|
||||
otherPart.SendCollisionSound(otherPart.CollisionSound, otherPart.CollisionSoundVolume, colInfo.position);
|
||||
//TODO: uncomment below when sounds are uploaded
|
||||
// else
|
||||
// {
|
||||
// volume = Math.Abs(colInfo.relativeVel);
|
||||
// if (volume < 0.2f)
|
||||
// continue;
|
||||
//
|
||||
// volume *= volume * .0625f; // 4m/s == full volume
|
||||
// if (volume > 1.0f)
|
||||
// volume = 1.0f;
|
||||
// otherMaterial = (int)otherPart.Material;
|
||||
// if (otherMaterial >= MaxMaterials)
|
||||
// otherMaterial = 3;
|
||||
//
|
||||
// soundID = m_PartPart[thisMatScaled + otherMaterial];
|
||||
// otherPart.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
// }
|
||||
else
|
||||
{
|
||||
volume = Math.Abs(colInfo.relativeVel);
|
||||
if (volume < 0.2f)
|
||||
continue;
|
||||
m_log.DebugFormat("Collision speed was {0}", volume);
|
||||
|
||||
// Cap to 0.2 times volume because climbing stairs should not be noisy
|
||||
// Also changed scaling
|
||||
volume *= volume * .0125f; // 4m/s == volume 0.2
|
||||
if (volume > 0.2f)
|
||||
volume = 0.2f;
|
||||
otherMaterial = (int)otherPart.Material;
|
||||
if (otherMaterial >= MaxMaterials)
|
||||
otherMaterial = 3;
|
||||
|
||||
soundID = m_PartPart[thisMatScaled + otherMaterial];
|
||||
otherPart.SendCollisionSound(soundID, volume, colInfo.position);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue