Esempio n. 1
0
 // Use this for initialization
 void Start()
 {
     currObj     = GetComponent <SpawnItems>().Objects3D[0];
     HeavyScript = currObj.GetComponent <Hv_Sinusoidal_AudioLib>();
     currObj.GetComponent <DestroyItems>().destroyTime = 6f;
     GetComponent <SpawnItems>().spawnTime             = 3f;
     StartCoroutine(ChngMat(changeTime)); // Or whatever delay we want.
 }
    void Awake()
    {
        HeavyScript   = GetComponent <Hv_Sinusoidal_AudioLib>();
        SetDataScript = GetComponent <ModalDataScript_Sinusoidal>();

        //SetDataScript.SetGlassTop();
        //SetDataScript.SetTheFreqs();
        //SetDataScript.SetTheAmpls();
    }
Esempio n. 3
0
    // Use this for initialization
    void Start()
    {
        HeavyScript = GetComponent <Hv_Sinusoidal_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();
    }
    //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_Sinusoidal_AudioLib otherObjectScript = collision.gameObject.GetComponent <Hv_Sinusoidal_AudioLib>(); //getting audio patch script from colliding object with sinusRolling script attached

        collisionMagnitude = 0.5f * massObject * collision.relativeVelocity.magnitude * collision.relativeVelocity.magnitude;
        //collisionMagnitude = collision.impulse.magnitude;
        //Debug.Log("Impulse: " + collisionMagnitude);
        //if (collisionMagnitude <= 10f)
        //{

        switch (caseSwitch)
        {
        case 1:
            if (otherObjectScript != null)
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force1, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2) / 2);
            }
            else
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force1, collisionMagnitude);
                //Debug.Log("Impulse: " + collisionMagnitude);
            }
            HeavyScript.SendEvent(Hv_Sinusoidal_AudioLib.Event.Whack1);
            //Debug.Log("whack1");
            caseSwitch = 2;
            break;

        case 2:
            if (otherObjectScript != null)
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force2, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2) / 2);
            }
            else
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force2, collisionMagnitude);
            }
            HeavyScript.SendEvent(Hv_Sinusoidal_AudioLib.Event.Whack2);
            //Debug.Log("whack2");
            caseSwitch = 3;
            break;

        case 3:
            if (otherObjectScript != null)
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force3, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2) / 2);
            }
            else
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force3, collisionMagnitude);
            }
            HeavyScript.SendEvent(Hv_Sinusoidal_AudioLib.Event.Whack3);
            //Debug.Log("whack3");
            caseSwitch = 1;
            break;
        }

        //}
        //else
        //{
        //    Debug.Log("Impact magnitude not suitable for audio");
        //}
    }
Esempio n. 5
0
 private void OnEnable()
 {
     _dsp = target as Hv_Sinusoidal_AudioLib;
 }
Esempio n. 6
0
    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);
        SetTheFreqs();
        SetTheAmpls();

        Hv_Sinusoidal_AudioLib otherObjectScript = collision.gameObject.GetComponent <Hv_Sinusoidal_AudioLib>(); //getting audio patch script from colliding object with sinusRolling script attached

        collisionMagnitude = 0.5f * massObject * collision.relativeVelocity.magnitude * collision.relativeVelocity.magnitude;

        switch (caseSwitch)
        {
        case 1:
            if (otherObjectScript != null)
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force1, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2) / 2);
            }
            else
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force1, collisionMagnitude);
                //Debug.Log("Impulse: " + collisionMagnitude);
            }
            HeavyScript.SendEvent(Hv_Sinusoidal_AudioLib.Event.Whack1);
            //Debug.Log("whack1");
            caseSwitch = 2;
            break;

        case 2:
            if (otherObjectScript != null)
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force2, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2) / 2);
            }
            else
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force2, collisionMagnitude);
            }
            HeavyScript.SendEvent(Hv_Sinusoidal_AudioLib.Event.Whack2);
            //Debug.Log("whack2");
            caseSwitch = 3;
            break;

        case 3:
            if (otherObjectScript != null)
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force3, collisionMagnitude + collisionMagnitude * ((otherObjectScript.qfactor / 5000 + HeavyScript.qfactor / 5000) / 2) / 2);
            }
            else
            {
                HeavyScript.SetFloatParameter(Hv_Sinusoidal_AudioLib.Parameter.Impact_force3, collisionMagnitude);
            }
            HeavyScript.SendEvent(Hv_Sinusoidal_AudioLib.Event.Whack3);
            //Debug.Log("whack3");
            caseSwitch = 1;
            break;
        }
    }
Esempio n. 7
0
 // Use this for initialization
 void Awake()
 {
     HeavyScript = GetComponent <Hv_Sinusoidal_AudioLib>();
     scaleAvg    = (transform.localScale.x + transform.localScale.y + transform.localScale.z) / 3f;
 }