0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】CRIで音声を制御する(スクリプト)

Last updated at Posted at 2024-07-04

CRIとは?

CRIとは、CRI・ミドルウェア株式会社が提供している、
ゲームやマルチメディアコンテンツの開発を支援するための技術とツールの総称です。
本稿では、CRIWAREというツールを使用していきます。

インストール方法

こちらの ダウンロードページ から、Unity向けのプラグインである
「ADX LE Unity SDK(3.10.01)」をダウンロードしましょう。

ダウンロードしたフォルダを展開して、「"cri\unity\plugin\criware_unity_plugin_v2_42_46_le_ja.unitypackage"」
のパスにあるパッケージを自身のプロジェクトにインポートします。

Assetsフォルダ直下に「CRIMW」というフォルダがあればインストール完了です。

音声データの準備

UnityでCRIWAREを使用して音声を再生するには、
AtomCraftというツールでビルドされた音声データが必要になります。

「音声のビルド→Unityにインポート→再生」というイメージです。

ビルドの方法は、こちらの記事 で紹介しています。

音声のインポート

音声のビルドが終わったら、Unityにインポートしていきます。

「Window→CRIWARE→Atom Browser」の順に開きましょう。

「Atom Browser」下部の「Import Assets from Atom Craft Project」を開き、

「Import From」に、AtomCraftで作成したプロジェクトのAssetsフォルダを指定します。

最後に「Import Assets」ボタンをクリックすれば、音声のインポートは完了です。

スクリプトで音声を制御する

音声の再生については、こちらの記事 で紹介しました。

今回は、再生・停止・再開・終了の4段階による音声の制御をしていきます。

いずれも、対応するメソッドを呼び出す形で実装します。

再生の場合、プレイヤーを作成して再生するだけですが、
停止・再開・終了の3つは再生済みの音声に対する処理なのでアプローチが異なります。
具体的には、「CriAtomExPlayback」という再生済みの音声を制御する構造体を用います。
つまり、再生した音声を構造体として保持することで、3つの処理を行います。

再生:CriAtomExPlayer.Start()
停止:CriAtomExPlayback.Pause()
再開:CriAtomExPlayback.Resume()
終了:CriAtomExPlayback.Stop()

この4つの処理をまとめたものが以下のコードです。

using UnityEngine;
using System;
using System.Collections.Generic;

public class Test : MonoBehaviour
{
    private CriAtomExPlayer _player; // プレイヤー
    private CriAtomExPlayback _playback; // 再生済み音声

    void Start()
    {
        _player = new CriAtomExPlayer();
    }

    // 再生
    public void Play(string cueSheetName, string cueName, float volume)
    {
        var currentAcb = CriAtom.GetAcb(cueSheetName); // Acbを取得
        _player.SetCue(currentAcb, cueName); // キューを設定
        _player.SetVolume(volume * _volume); // ボリュームを設定
        var playback = _player.Start(); // 再生済み音声を取得
    }

    // 停止
    public void Pause()
    {
        _playback.Pause();
    }

    // 再開
    public void Resume()
    {
        _playback.Resume(CriAtomEx.ResumeMode.AllPlayback);
    }

    // 終了
    public void Stop()
    {
        _playback.Stop(false);
    }
}

各メソッドを呼び出すことで、コメントの処理が実行されるはずです。
以上が、CRIを用いたスクリプトベースの音声制御でした。
最後までご覧いただきありがとうございました :laughing:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?