Exemple #1
0
    //void FixedUpdate()
    //{
    //    acceleration = (rigid.velocity.magnitude - lastVelocity) / Time.fixedDeltaTime;
    //    lastVelocity = rigid.velocity.magnitude;
    //    //Debug.Log(rigid.velocity);
    //}

    void OnCollisionEnter(Collision collision)
    {
        // determine which point of the object was struct and set the corresponding data
        SetDataScript.IdentifyObject(this.transform, collision.contacts[0].thisCollider.gameObject.transform.GetSiblingIndex());

        //IMPORTANT!!
        //find out whether the object colliding is a surface or other modal object.
        //If modal object, find material and modify hardness and maybe collision magnitude ( for example two metal objects should have a very bright sound)
        //Could use the 2 objects' Q factors, normalize them and use the resulting mean of both to find the collision magnitude

        //SurfaceScript surfaceScript = collision.gameObject.GetComponent<SurfaceScript>(); // getting script attached on surface
        Hv_FilterBased_AudioLib otherObjectScript = collision.gameObject.GetComponent <Hv_FilterBased_AudioLib>();            //getting audio patch script from colliding object

        collisionMagnitude = 0.5f * massObject * collision.relativeVelocity.magnitude * collision.relativeVelocity.magnitude; // Kinetic energy

        if (otherObjectScript != null)
        {
            //Debug.Log(collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2));
            HeavyScript.SetFloatParameter(Hv_FilterBased_AudioLib.Parameter.Impactforce, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2));

            HeavyScript.SendEvent(Hv_FilterBased_AudioLib.Event.Whackimpact);
        }
        else
        {
            //HeavyScript.SetFloatParameter(Hv_John_AudioLib.Parameter.Groundhardness, surfaceScript.surfaceHardness);// set surface's hardness into patch

            HeavyScript.SetFloatParameter(Hv_FilterBased_AudioLib.Parameter.Impactforce, collisionMagnitude);
            HeavyScript.SendEvent(Hv_FilterBased_AudioLib.Event.Whackimpact);
        }

        //Debug.Log(collisionMagnitude);
        //Debug.Log(massObject * acceleration);
    }
    void OnCollisionEnter(Collision collision)
    {
        ContactPoint contact = collision.contacts[0];
        //Debug.Log("World Contact = " + contact.point);
        Vector3 local_vec = transform.InverseTransformPoint(contact.point);

        Debug.Log("Local Contact = " + local_vec.ToString("F4"));
        Debug.Log(Mathf.Sqrt(local_vec.x * local_vec.x + local_vec.y * local_vec.y + local_vec.z * local_vec.z));
        edge_mult = Mathf.Sqrt(local_vec.x * local_vec.x + local_vec.y * local_vec.y + local_vec.z * local_vec.z);
        Debug.Log("edge_mult: " + edge_mult);
        SetTheFreqs();
        SetTheAmpls();

        Hv_FilterBased_AudioLib otherObjectScript = collision.gameObject.GetComponent <Hv_FilterBased_AudioLib>();            //getting audio patch script from colliding object

        collisionMagnitude = 0.5f * massObject * collision.relativeVelocity.magnitude * collision.relativeVelocity.magnitude; // Kinetic energy

        if (otherObjectScript != null)
        {
            //Debug.Log(collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2));
            HeavyScript.SetFloatParameter(Hv_FilterBased_AudioLib.Parameter.Impactforce, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2));

            HeavyScript.SendEvent(Hv_FilterBased_AudioLib.Event.Whackimpact);
        }
        else
        {
            //HeavyScript.SetFloatParameter(Hv_John_AudioLib.Parameter.Groundhardness, surfaceScript.surfaceHardness);// set surface's hardness into patch

            HeavyScript.SetFloatParameter(Hv_FilterBased_AudioLib.Parameter.Impactforce, collisionMagnitude);
            HeavyScript.SendEvent(Hv_FilterBased_AudioLib.Event.Whackimpact);
        }
    }
Exemple #3
0
 // Use this for initialization
 void Start()
 {
     //currObj = GetComponent<SpawnItems>().Objects3D[0];
     currObj     = gameObject;
     HeavyScript = currObj.GetComponent <Hv_FilterBased_AudioLib>();
     //currObj.GetComponent<DestroyItems>().destroyTime = 6f;
     //GetComponent<SpawnItems>().spawnTime = 3f;
     StartCoroutine(ChngMat(changeTime)); // Or whatever delay we want.
 }
Exemple #4
0
    void Awake()
    {
        HeavyScript   = GetComponent <Hv_FilterBased_AudioLib>();
        SetDataScript = GetComponent <ModalDataScript_FilterBased>();

        //SetDataScript.SetGlassTop();
        //SetDataScript.SetTheFreqs();
        //SetDataScript.SetTheAmpls();
    }
    // Use this for initialization
    void Start()
    {
        HeavyScript = GetComponent <Hv_FilterBased_AudioLib>();
        rb          = GetComponent <Rigidbody>();
        massObject  = rb.mass;

        ScaleEverythingWithObject();
        objectPerimeter = 0.675f * scaleAvg;

        //freq_modes = new float[10] { 1714.581299f, 1668.823242f, 5049.536133f, 1757.647705f, 2869.299316f, 4390.081787f, 6745.275879f, 13953.515625f, 11743.670654f, 20806.457520f };
        //ampl_modes = new float[10] { 1f, 0.001744f, 0.043746f, 0.001430f, 0.004816f, 0.031406f, 0.068062f, 0.007815f, 0.005319f, 0.006524f };

        // Wine bottle - body upper
        freq_modes = new float[10] {
            2196.386719f, 2150.628662f, 3945.959473f, 2939.282227f, 2239.453125f, 2104.870605f, 6535.327148f, 4018.634033f, 6489.569092f, 6578.393555f
        };
        ampl_modes = new float[10] {
            1f, 0.244862f, 0.070771f, 0.136772f, 0.055802f, 0.050188f, 0.000222f, 0.084317f, 0.000197f, 0.000196f
        };
        SetTheFreqs();
        SetTheAmpls();
    }
Exemple #6
0
 private void OnEnable()
 {
     _dsp = target as Hv_FilterBased_AudioLib;
 }
Exemple #7
0
 // Use this for initialization
 void Awake()
 {
     HeavyScript = GetComponent <Hv_FilterBased_AudioLib>();
     scaleAvg    = (transform.localScale.x + transform.localScale.y + transform.localScale.z) / 3f;
 }