MonobitVoiceFilter コンポーネント

目次

  概要
  コンポーネントのアタッチ方法
  コンポーネント外観、およびその項目内容
  拡張機能で用意されたコールバックメソッドについて
  OnVoiceEffect メソッド


概要

Monobit Voice Wrapper について、音声フィルター処理を行なうための拡張コンポーネントです

  MonobitVoiceFilter コンポーネントは、MonobitVoiceWrapper の拡張コンポーネントです。
  MonobitVoiceWrapper コンポーネントの機能に加え、ボイスチャットの音声データについて、
 ・ 一般的なオーディオエフェクト(ディレイ、リバーブなど)
 ・ ノイズキャンセラ(実装可能であれば)
 ・ ボイスチェンジャー(実装可能であれば)
  を追加したい場合、コールバックメソッドに任意のコードを適用することで実現することができます。


コンポーネントのアタッチ方法

MonobitVoice の代替に MonobitVoiceFilter コンポーネントをアタッチする

  MonobitVoiceWapper コンポーネントを導入するためには、MonobitVoice コンポーネントを削除したうえで、
  改めて MonobitVoiceFilter コンポーネントをアタッチするだけです。

  まずは ボイスチャット用コンポーネントの導入方法について の手順に合わせて、MonobitVoice コンポーネントをアタッチします。

  この状態から、 MonobitVoice コンポーネントのみをリムーブします。

  Inspector 上の MonobitVoice コンポーネントパネルの右上にあるギアアイコンをクリックし、
  ポップアップメニューから「Remove Component」をクリックしてリムーブします。

  リムーブした MonobitVoice コンポーネントの代わりに、 MonobitVoiceWrapper コンポーネントをアタッチします。

  Inspector 下部の「Add Component」をクリックします。

  Add Component のプルダウンメニューから、Monobit Voice Chat > Monobit Voice Filter Sample を選択します。

  これで、Monobit Voice Filter のアタッチが完了します。


コンポーネント外観、およびその項目内容

MonobitVoiceFilter コンポーネントの Inspector 設定項目について

  MonobitVoiceFilter コンポーネントの、Unity の Inspector 外観は以下のようになっており、
  Inspector 上で設定できる項目は、MonobitVoice コンポーネント と全く同一です。


拡張機能で用意されたコールバックメソッドについて

MonobitVcFilter.cs に記述されている各種コールバックメソッド

  このコンポーネントで追加されるスクリプト本体は、Assets/Monobit Unity Networking/Samples/Scripts/VcFilter/MbVcFilter.cs にあり、
  その中で以下のコールバックメソッドを用意しています。
コールバックメソッドの種類 概要
OnBeginEncode メソッド マイク音声について、Opus によるエンコード処理を実行する際、最初にコールバックされるメソッドです。
OnPreEncode メソッド マイク音声について、Opus によるエンコード処理を開始する際にコールバックされるメソッドです。
実行手続きとしては OnBeginEncode メソッド の後にコールバックされ、
この時点でマイク音声について、Opus エンコードのために最適化されたサンプリングレートに置き換えられています。
OnVoiceEffect メソッド マイク音声に対して、オーディオフィルターを適用できる段階でコールバックされるメソッドです。
上記の OnPreEncode メソッド処理内で実行します。
OnEndEncode メソッド マイク音声について、Opus によるエンコード処理を完了した際にコールバックされるメソッドです。
OnSendVoice メソッド Opus によってエンコード済みの音声データについて、送信処理を開始する際にコールバックされるメソッドです。
OnRecievedVoiceWrapper メソッド サーバを介して、デコード前の音声データを受信した際にコールバックされるメソッドです。
OnBeginDecode メソッド 受信した音声データについて、Opus によるデコード処理を実行する際、最初にコールバックされるメソッドです。
OnPreDecode メソッド 受信した音声データについて、Opus によるデコード&再生処理を開始する際にコールバックされるメソッドです。
実行手続きとしては OnBeginEncode メソッド の後にコールバックされます。
OnEndDecode メソッド 受信した音声データについて、Opus によるデコード&再生処理完了した際にコールバックされるメソッドです。


OnVoiceEffect メソッド

機能

  マイク音声に対して、オーディオフィルターを適用できる段階でコールバックされるメソッドです。
  MbVcFilter.OnPreEncode メソッド処理内で実行します。

引数

変数名 内容
float[] data 音声データのサンプリングデータが入っています。
量子化されたデータですので、例えば以下のような単純乗算により、マイクブーストが可能です。
// 入力されたマイク音声について、2倍のマイクブーストを掛ける
public void OnVoiceEffect(float[] data, int channels)
{
    for (int i = 0; i < data.Length; i++)
    {
        data[i] *= 2;
    }
}
int channel 音声データのチャンネル数を示します。
マイク音声をベースにしているため、原則的に1(モノラル音声)が入っています。

戻り値

内容
- -

記述例

// マイク音声に対するエフェクト制御
public void OnVoiceEffect(float[] data, int channels)
{
    /*
     * この場所に、独自のエフェクト制御を記述してください
     */
}