Unityでオーディオクリップをキー入力で切り替えるスクリプトを書いた!OVRLipSyncも動いた

Unity

バーチャル3Dクリエイター神部まゆみです(*^-^*)

 

今日は動画作成用に、unityでオーディオクリップを切り替えるスクリプトを書いたよ。

自分用のやつだけど、誰かの参考になるかもしれないから公開しておきます。

作成と動作確認したバージョンはunity 2020.1.1です。

————-PR———————-

現在、2021年の新作人気アセットが50%オフで買えるunityアセットリフレッシュセールをやってるみたいです(日本時間2021/10/02 PM15:59まで)。

unityアセットリフレッシュセール50% off

欲しいアセットはこの機会に買っておくと良いかも。

————————————-

 

キー入力でオーディオクリップを切り替えて再生するスクリプト

使い方

オーディオソースコンポーネントがあるオブジェクトにこのスクリプトをアタッチして、AudioClip1~5に音声ファイルを読み込めば準備OK。

Q、W、E、R、Tキーにそれぞれ対応してるから、実行画面でキーを押せばPlayOneShotで再生されます。

キー割り当てを変えたい場合は、unityのキーコードを見て変えてね。

KeyCode - Unity スクリプトリファレンス
Key codes returned by Event.keyCode. These map directly to a physical key on the keyboard.

実際に動かしたところ OVRLipSyncもちゃんと動いた

※音が出るので音量注意!

唇が動いてるのは、OVR LipSyncを入れてるからです。

OVR LipSyncのオーディオソースがあるオブジェクトにアタッチすれば、こうやって使えますよ(*^-^*)

 

OVR LipSyncはこちらの頭のいい先輩のページを参考にして導入したよ。

OVRLipSync(Oculus Lipsync Unity)を使って音声に合わせて口の動かす(リップシンクさせる)【Unity】 - (:3[kanのメモ帳]
この記事でのバージョン Unity 2018.4.20f1 OVRLipSync 1.43.0 はじめに 今回はOVRLipSync(Oculus Lipsync Unity)という物を使って、音声に合わせてキャラクターの口の動かすつまりリップシンクを実装するという話です。 イメージとしては以下のような感じ。 Ocul...

 

 

 

2021/01/15追記: 前の音声をストップさせて切り替えたい場合は、 audioSource.Stop(); を使う

上のスクリプトだと、次の音声に切り替えても前の音声が再生されたままになってしまう。

短い音声ならあまり問題にはならないけど、長い音声だと被っちゃってうるさい感じになっちゃいます( ̄▽ ̄;)

前の音声をストップさせて次の音声を再生したい場合は、audioSource.Stop(); を使うと良いです。

 

全文は載せないけど、

//Qキーが押されたらオーディオクリップ1を再生

if(Input.GetKeyDown(KeyCode.Q))

{

    audioSource.Stop();

    audioSource.PlayOneShot(audioClip1);

}

 

みたいな。

PlayOneShotの前で、オーディオソースを一旦ストップさせればOKってこと。

ただ停止させてから再生まで若干ラグがある感じ?まぁそこまで気にならないレベルではあるけど。

 

 

参考にできるところがあれば参考にしてね。

 

タイトルとURLをコピーしました