2014年7月2日 星期三

[unity3d] 偵測聲音的大小



不管是在Pd,QC,P5等軟體上,即時偵測聲音的大小並用於互動都算是非常簡單的基本功,但在unity好像就沒那麼容易!?我猜測很可能因為unity是遊戲引擎,所以對於訊號輸入都著重在於體感或是傳統鍵盤、搖桿上,所以像是聲音振幅影響物件大小這麼簡單的效果,卻也讓我花了一天時間研究,也有可能是我unity太弱啦(哭哭)。

過程中最主要遇到的問題時,unity可以錄音(Microphone in),但因為他最少都要錄完一秒才存在buffer後才能分析,這也是造成無法即時互動的原因,因為最少都會延遲一秒。在網路上找了又找,玩家們對這件事似乎也都很苦惱,但總算神人到處有,總算在這討論串上找到方法:http://answers.unity3d.com/questions/394158/real-time-microphone-line-input-fft-analysis.html,透過一些延遲的方法,unity總算能夠即時聲音偵測啦。

這邊是我修改後的code,可以下載來玩看看。download