공의 법선 방향이 소리에 맞게 뻗어나가는 미묘한 점

12295 단어 Unity

이렇게 된 느낌.
실제로 해보시면 예쁠 것 같아요.
참고 자료

코드


qiita.csharp

using UnityEngine;
using System.Collections.Generic;


public class Sinus : MonoBehaviour
{
    float[] _spectrum = new float[128];
    float _lastLow = 0;
    public GameObject cube;
    [Range(0, 1)]
    public float t = 1;

    List< GameObject> cubes = new List< GameObject>();
    List< Vector3> cubess = new List< Vector3>();

    void Start()
    {
        for (int i = 0; i < 128; i++) {

                cubes.Add ((GameObject)Instantiate (cube, new Vector3 (5*Mathf.Sin(i * 15), 5*Mathf.Cos(i*20), 0), Quaternion.identity));
                cubess.Add (new Vector3 (i * 1.2f, i * 1.2f, 0));


        }

    }

    void Update()
    {
        AudioListener.GetSpectrumData(_spectrum, 0, FFTWindow.Rectangular);
        float low = 0;
        for (int i = 1; i < 3; i++)
            low += _spectrum[i];

        low = _lastLow * (1 - t) + low * t;
        transform.localScale = Vector3.one * 0.05f * low + Vector3.one;
        _lastLow = low;

        print (cubes.Count);

        for (int i = 0; i < cubes.Count; i++) {
            //cubes[i].transform.rotation = Quaternion.Euler (new Vector3 (1, _spectrum[i]*i, 1) * 30);
            cubes[i].GetComponent<Renderer>().material.color = new Color(0.5f+Mathf.Sin(Time.time)+_spectrum[i]*1,0.5f,0.5f+Mathf.Cos(Time.time)+_spectrum[i]*1);
            cubes [i].transform.position = new Vector3 (10*Mathf.Sin(i*100+Time.deltaTime*_spectrum[i])*Mathf.Cos(i),10*Mathf.Sin(i*100)*Mathf.Sin(i),10*Mathf.Cos(i*100));
            cubes [i].transform.localScale = new Vector3 (0.1f,0.1f,1000*_spectrum[i]);
            cubes [i].transform.LookAt(new Vector3 (100*Mathf.Sin(i*100)*Mathf.Cos(i),100*Mathf.Sin(i*100)*Mathf.Sin(i),100*Mathf.Cos((i*100))));


        }
    }

}
이런 느낌!!
소리 데이터, 128-64인 것 같아!
응, 배열 중에 단숨에 소리 데이터에 들어간 것 같아!대단해!나 몰라!
음악을 열심히 공부하면 인생이 더 풍부해지겠지!
최고!

사운드에 대한 스펙트럼


참고 자료
우선, 소리는 많은 주파수의 집합이기 때문에
AudioListener.GetSpectrumData(_spectrum, 0, FFTWindow.Rectangular);
빠른 부립엽 변환.나는 많은 파의 데이터 중의 중량 성분이 아마도 스펙트럼의 배열에 들어갔을 거라고 생각한다...
a*sin(T*sita)의 a 섹션은 스펙트럼입니다.
어떤 순서로 들어가느냐에 따라 소리의 높이(T의 크기가 다르다)가 순서대로 나뉘는 것 같다.
부립엽 변환 등에 관하여
참고 자료

좋은 웹페이지 즐겨찾기