사용자 도구

사이트 도구


language:unity:5-사운드-오디오

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

language:unity:5-사운드-오디오 [2013/09/14 01:52] – 새로 만듦 kieunslanguage:unity:5-사운드-오디오 [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
  
 +====== 파일 손실 방지 ======
 +
 +음악이나 효과음을 mp3나 ogg로 변경할 경우,
 +  * 소리가 너무 작아서 압축 과정에서 손실되는 경우
 +  * kbs를 더 늘려서 압축해본다. ( 192 이상)
 +  * 원본보다는 더 작다.
 +
 +====== 음악 (AudioSource) ======
 +
 +음악 비주얼라이져를 만들기 위한 .. 것만은 아니겠지만 **AudioSource**에 보면 관련있는 함수가 있다.
 +
 +===== GetOutputData =====
 +
 +<code csharp>void GetOutputData(float[] samples, int channel);</code>
 +
 +지금 딱 연주하는 구간의 데이터.
 +
 +| samples | 배열인데, 배열의 크기는 음악의 압축률과 같거나.. 달라도 상관 없나? 잘 모르겠네. \\ 128kbps 파일이면 배열 크기를 128로 잡는다. (확인필요) |
 +| channel | 모노, 스테레오 그이상? |
 +| ::: | 모노면 0 만 보내고, 스테레오라면 0, 1 각각 따로 파라미터로 전송해서 2번 함수를 호출해야 한다. |
 +
 +<code csharp>
 +// 128kbps 파일이라면, 어디엔가 있는 AudioSource를 얻어 온다 손 치고
 +AudioSource _musicSource;
 +// 현재 연주 구간의 데이터를 얻기 위한 데이터 변수
 +float[] _samples1;
 +float[] _samples2;
 +_samples1 = new float[128];
 +_samples2 = new float[128];
 +// 데이터를 얻는다.
 +_musicSource.GetOutputData(_samples1, 0);
 +_musicSource.GetOutputData(_samples2, 1);
 +</code>
 +
 +===== GetSpectrumData =====
 +
 +음악 데이터의 스펙트럼이라는 것에 대해서 알고 있어야 하는듯한데.. 그것까지는 모르겠고.
 +
 +  * 스펙트럼의 개수는 : (1) 2의 배수여야 하고 (2) Min=64 ~ Max=8192 라고 하네
 +  * [[http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.GetSpectrumData.html|도움말]]을 참조
 +
 +<code csharp>
 +// 위 챕터에서 사용한 _musicSource를 그대로 사용
 +float[] _spectrum;
 +_spectrum = new float[64];
 +_musicSource.GetSpectrumData(_spectrum, 0, FFTWindow.Rectangular);
 +</code>