CRI ADX  Last Updated: 2024-03-21 14:32 p
フェーダー
「フェーダー」は、プレーヤーで再生する音声に対し、フェードインやフェードアウト、クロスフェードといったボリュームコントロールを自動的に行うモジュールです。
注意
フェーダーをアタッチしたAtomExプレーヤーの挙動は、通常のAtomExプレーヤーと大きく異なります。
(フェーダーアタッチ前後でAtomExプレーヤーの挙動が大きく変わります。)
具体的には、同時に発音可能な音声の数が1音(クロスフェード中のみ2音)に限定され、再生ID( CriAtomExPlaybackId )を用いた制御も行えなくなります。

Atomライブラリには、フェードインやフェードアウトを実装する手段として、フェーダーの他にもエンベロープやTweenといった機能があります。
単純なフェードイン/アウト操作や、再生IDを使用した制御を行う場合には、機能的な制限が多いフェーダーではなく、他の機能を使用することも検討してください。
(2音を厳密なタイミングでクロスフェードさせる必要がある場合にはフェーダーは有用ですが、単純なフェードイン/アウト用途に使う際には、機能的な制限が足かせになる可能性があります。)

フェーダーの動作概要

フェーダーは AtomEx プレーヤーに対するプラグインモジュールです。
フェーダーをアタッチした状態で AtomEx プレーヤーに対して criAtomExPlayer_Start 関数を実行すると、フェーダーは当該プレーヤーで再生中の音声に対して以下の制御を行います。

  1. 既にフェードアウト中の音声が存在する場合、その音声を即座に停止する。
  2. フェードイン中の音声(または再生中の音声)が存在する場合、 その音声をその時点の音量から criAtomExPlayer_SetFadeOutTime 関数で指定された時間をかけてフェードアウトさせる。
  3. プレーヤーにセットされている音声データをボリューム0で再生開始し、 criAtomExPlayer_SetFadeInTime 関数で指定された時間をかけてフェードインさせる。
備考:
criAtomExPlayer_Start 関数の代わりに criAtomExPlayer_Prepare 関数を使用した場合、ポーズを解除する時点で上記の制御が行われます。
criAtomExPlayer_Stop 関数を実行した場合、再生中の音声がフェードアウトする処理だけが行われます。
(上記1~2の処理が行われます。)
注意
フェーダーの動作仕様の都合上、フェードイン/アウトの処理対象となるのは、 過去2回の音声再生のみです。
それ以前に再生された音声は、 criAtomExPlayer_Start 関数や criAtomExPlayer_Stop 関数が実行された時点で即座に停止されます。

設定可能なパラメーターについて

フェーダーに対しては、以下のパラメーターが設定可能です。

フェーダーに設定可能なパラメーター
パラメーター 説明
フェードイン時間 ボリュームが上がり始めてから上がり終わるまでの時間を設定します。
フェードアウト時間 ボリュームが下がり始めてから下がり終わるまでの時間を設定します。
フェードイン開始オフセット クロスフェード時、フェードアウト開始からフェードイン開始までの時刻オフセットを設定します。
負の値を設定すると、フェードアウトより先にフェードインが開始します。
フェード後ディレイ時間 ボリュームが下がり終わってから再生を停止するまでの時間を設定します。
サウンドドライバーやハードウェアの仕様上、ボリュームを設定してから実際に反映されるまでに遅延がある場合に設定します。
Next:Tween