https://github.com/keijiro/Reaktion
參考
https://zhuanlan.zhihu.com/p/40768210
參考教程
Reaktion Introductory Tutorial
聲控動(dòng)畫套件Reaktion
音頻信號(hào)的節(jié)拍檢測(cè)——像圖片里看到的一樣炮车,程序可以檢測(cè)到外部聲音的信號(hào)(麥克風(fēng)輸入),然后生成相應(yīng)的動(dòng)畫響應(yīng)窜护,達(dá)到聲音可視化的效果厚柳。
按照上方的教程
在驅(qū)動(dòng)目標(biāo)物上添加Reaktor多艇,Constant Motion Gear咸包,以及Constant Motion就夠二跋;
創(chuàng)建一個(gè)AudioManager木人,掛載Audio Injector以及Generic Audio Input麸锉;
經(jīng)過(guò)測(cè)試可以用比較簡(jiǎn)單的方式獲取來(lái)自Injector發(fā)出钠绍,并且Reaktor接受的聲音:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Reaktion;
public class ColorGear : MonoBehaviour
{
public ReaktorLink reaktor;
SpriteRenderer spr;
public Modifier color = Modifier.Linear(0, 1);
void Awake()
{
spr = GetComponent<SpriteRenderer>();
reaktor.Initialize(this);
}
// Update is called once per frame
void Update()
{
if (color.enabled)
spr.color = new Color(color.Evaluate(reaktor.Output), color.Evaluate(reaktor.Output), color.Evaluate(reaktor.Output));
}
}
有一個(gè)先前的官方文檔,但似乎已經(jīng)很久沒(méi)有更新了https://github.com/keijiro/Reaktion/tree/documentation
Unity Shader大神馮樂(lè)樂(lè)似乎有過(guò)一個(gè)博文提到了這個(gè)項(xiàng)目:【Unity3D】 Unity Chan項(xiàng)目分享
想要讓Reaktion工作就需要有三個(gè)關(guān)鍵部分花沉,音頻注入器Injector柳爽、音頻核心處理器Reaktor以及接收信號(hào)的裝置Gear,Injector把音頻信號(hào)傳遞給某個(gè)Reaktor碱屁,然后場(chǎng)景里所有的Gear會(huì)監(jiān)聽(tīng)某個(gè)Reaktor的輸出磷脯,它們之間的鏈接都是通過(guò)GenericLink類實(shí)現(xiàn)的。也就是我們需要兩個(gè)links娩脾,一個(gè)link(InjectorLink類型)負(fù)責(zé)讓每個(gè)Reaktor找到一個(gè)Injector赵誓,一個(gè)link(ReaktorLink類型)負(fù)責(zé)讓每個(gè)Gear找到一個(gè)Reaktor。它們都有四種鏈接模式(在GenericLink.cs中被定義):Not Bound柿赊,即不綁定輸入俩功;Auto Bind,找到離該物體最近的那個(gè)輸入器(先在自身身上找碰声,不然再找父親诡蜓,不然再找兒子,不然再找全場(chǎng)景)奥邮;Bind By Reference則可以讓我們直接拖一個(gè)輸入的引用万牺;Bind By Name則會(huì)在場(chǎng)景里找名字為該字符串的特定輸入。
在考慮可以做出一些打擊的簡(jiǎn)單游戲洽腺。
不過(guò)這個(gè)插件的主要用途應(yīng)該還是為了解決聲音的接受以及對(duì)象視覺(jué)表現(xiàn)的連接