AudioTrigger

AudioSource で AudioClip を再生するアクション。

ver 0.12.0p16 現在、不具合があるので VRC_AudioBank の RPC Play の代替使用を検討したほうが良い。

現状と不具合

naqtn: 不具合など。公式Discord japanese より、自分の書き込みを転記:
(元は二つのAudioSource を鳴らせるか、という質問)

AudioTrigger の Recievers に複数の AudioSource を設定して、Clip を空欄表示のままにしておくと複数の同時再生が行えました。

Clipを一度選んでしまうとこのドロップダウンメニューから空欄表示に戻せないので注意してください。その回避として「Recievers表示中のAudioSourceの左側の「=」の部分をドラッグして順番を入れ替える」というのが使え、これで空欄表示に戻ります。(一覧表示もそもそも項目一つしか出ないですし、これはVRChat SDKのエディタの不具合ですね。)

なお現在(0.12.0p13) AudioTrigger には 再生中に再び使用した場合に問題を起こす不具合があるようです。
1.再生中に AudioTrigger を使用するとその時点でAudioClip を最初から再生しません。
2.AudioClip 上のその時点で再生している位置がタイミングがどこかに記録されます。
3.そしてもう一度 AudioTrigger を使用すると、前回記録された「その時点で再生している位置」から再生が開始されます。

回避策としては、AudioTrigger を使わずに、AudioSource の Play On Awake を有効にしておき、AudioSource を対象に SetComponentActive を二回連続に、 Enable を False の後 True にする、という手が使えました。ただし、使用している音源とタイミングによってはプチノイズが入ってしまいます。

(転記ここまで)

プチノイズ回避案:

原理的には動作すること確認済み。タイマーに依存するので若干微妙。原理的に、音が出るまで若干の遅延があるのが欠点。

(3Dオーディオのことを調べたうえで、それ込みの記事にしようと思っていたが、他のことをしていて進まず)

不具合報告文面案

Title: AudioTrigger action changes replay start position if AudioClip is playing

1. If receiver AudioSource is already in playing state, AudioTrigger action doesn't restart playing.
2. At this time, current playing position is stored to somewhere.
3. After AudioSource reached to end of AudioClip data and ends playing, if AudioTrigger is used again to identical AudioSource, it starts to play from stored position (of step2).

Workaround:
Instead of AudioTrigger, use AudioSource "Play On Awake" feature.
1. Set AudioSource "Play On Awake" enable.
2. In action of some trigger, SetComponentActive to AudioSource with Enable=False, immediately after that use SetComponentActive again with Enable=True.

カテゴリ・タグ: カテゴリ-Actions タグ-不具合あり

  • 最終更新:2018-04-07 05:12:39

このWIKIを編集するにはパスワード入力が必要です

認証パスワード