バーチャル3Dクリエイター神部まゆみです(*^-^*)
今日は動画作成用に、unityでオーディオクリップを切り替えるスクリプトを書いたよ。
自分用のやつだけど、誰かの参考になるかもしれないから公開しておきます。
作成と動作確認したバージョンはunity 2020.1.1です。
キー入力でオーディオクリップを切り替えて再生するスクリプト
using System.Collections; using System.Collections.Generic; using UnityEngine; public class AudioSelect : MonoBehaviour { public AudioClip audioClip1; public AudioClip audioClip2; public AudioClip audioClip3; public AudioClip audioClip4; public AudioClip audioClip5; private AudioSource audioSource; //呼び出し時に実行される関数 void Start () { audioSource = gameObject.GetComponent<AudioSource>(); } // Update is called once per frame void Update () { //Qキーが押されたらオーディオクリップ1を再生 if (Input.GetKeyDown(KeyCode.Q))audioSource.PlayOneShot(audioClip1); //Wキーが押されたらオーディオクリップ2を再生 if (Input.GetKeyDown(KeyCode.W))audioSource.PlayOneShot(audioClip2); //Eキーが押されたらオーディオクリップ3を再生 if (Input.GetKeyDown(KeyCode.E))audioSource.PlayOneShot(audioClip3); //Rキーが押されたらオーディオクリップ4を再生 if (Input.GetKeyDown(KeyCode.R))audioSource.PlayOneShot(audioClip4); //Tキーが押されたらオーディオクリップ5を再生 if (Input.GetKeyDown(KeyCode.T))audioSource.PlayOneShot(audioClip5); } }
使い方
オーディオソースコンポーネントがあるオブジェクトにこのスクリプトをアタッチして、AudioClip1~5に音声ファイルを読み込めば準備OK。
Q、W、E、R、Tキーにそれぞれ対応してるから、実行画面でキーを押せばPlayOneShotで再生されます。
キー割り当てを変えたい場合は、unityのキーコードを見て変えてね。
実際に動かしたところ OVRLipSyncもちゃんと動いた
※音が出るので音量注意!
唇が動いてるのは、OVR LipSyncを入れてるからです。
OVR LipSyncのオーディオソースがあるオブジェクトにアタッチすれば、こうやって使えますよ(*^-^*)
OVR LipSyncはこちらの頭のいい先輩のページを参考にして導入したよ。

2021/01/15追記: 前の音声をストップさせて切り替えたい場合は、 audioSource.Stop(); を使う
上のスクリプトだと、次の音声に切り替えても前の音声が再生されたままになってしまう。
短い音声ならあまり問題にはならないけど、長い音声だと被っちゃってうるさい感じになっちゃいます( ̄▽ ̄;)
前の音声をストップさせて次の音声を再生したい場合は、audioSource.Stop(); を使うと良いです。
全文は載せないけど、
//Qキーが押されたらオーディオクリップ1を再生
if(Input.GetKeyDown(KeyCode.Q))
{
audioSource.Stop();
audioSource.PlayOneShot(audioClip1);
}
みたいな。
PlayOneShotの前で、オーディオソースを一旦ストップさせればOKってこと。
ただ停止させてから再生まで若干ラグがある感じ?まぁそこまで気にならないレベルではあるけど。
参考にできるところがあれば参考にしてね。