CRIWARE Unity Plugin Manual  Last Updated: 2024-12-05
[CriAtom]トランシーバー

サンプル内容

概要

cri4u_samples_criatom_adv07_screenshot.png

トランシーバー機能を利用した空間音響表現のサンプルです。

操作方法

[Outside]ボタンを押下すると、カメラ(リスナー付き)は部屋から外(Outside)に移動します。
[Inside]ボタンを押下すると、カメラが現在位置から初期位置(Inside)に戻ります。

ボタンを押し、カメラが移動すると同時に、リスナーから聞こえる音の方向性が音源やトランシーバーとの位置関係によって変わります。

シーン情報


ミドルウェア CRI ADX (CRI Atom)
サンプル Advancedサンプル
格納場所 /cri/unity/samples/UnityProject/Assets/Scenes/criatom/advanced/
シーンファイル Scene_07_Transceiver.unity


プログラムの解説

3Dリージョンの設定について

音が直接音源から聞こえるか、トランシーバーを介して聞こえるかについては以下のルールに従います:
  • 音源とリスナーが同じリージョンに属する場合、音が音源から直接聞こえます
  • 音源とリスナーが異なるリージョンに属する場合、トランシーバーが自分と同じリージョンに属する音を集約して、リージョンの違うリスナーに出力します
    「リスナーが室内にいるときは室外の音をトランシーバーから再生する」、「リスナーが室外にいるときは室内の音をトランシーバーから再生する」という動作を実現するためには、以下のような方法でリージョンを切り替える必要があります。
    /* コード抜粋 */
    /* Monobehaviourは部屋の壁に沿った形のボックスにアタッチします */
    /* 部屋の中に入った際のコールバック */
    private void OnTriggerEnter(Collider other) {
    var listener = other.GetComponent<CriAtomListener>();
    if (listener != null) {
    listener.region3d = regionIn;
    transceiver.region3d = regionOut;
    }
    }
    /* 部屋から外に出た際のコールバック */
    private void OnTriggerExit(Collider other) {
    var listener = other.GetComponent<CriAtomListener>();
    if (listener != null) {
    listener.region3d = regionOut;
    transceiver.region3d = regionIn;
    }
    }