~~NOTOC~~ ====== ExportAudio(オーディオ制御) ====== このページは過去の情報となります。\\ 新しいスクリプトリファレンスは**[[https://developer.virtualcast.jp/vci-docs/api/classes/ExportAudio/index.html|こちら]]**になります。 VCIの中全体のオーディオを制御できます。\\ また''_ALL_''が付いている関数は空間内に居るユーザー全員のVCIで実行されます。 ExportAudioはVCI内に含まれるオブジェクト全体を参照してしまうので、オーディオの名前被りやインデックスが分からないといった場合があります。\\ 現在はExportAudioは非推奨で、**[[https://developer.virtualcast.jp/vci-docs/api/classes/ExportAudioSource/index.html|ExportAudioSource]]の使用が推奨**となりました。\\ ^ExportAssets^^^ ^ 名前 ^ 説明 ^ バージョン ^ | [[vci/script/reference/exportassets/audio#audio]]| VCI内のObjectを取得 | | ^ExportAudio^^^ ^ 名前 ^ 説明 ^ バージョン ^ | [[vci/script/reference/exportassets/audio#Play]] | 再生(ファイル名) | | | [[vci/script/reference/exportassets/audio#PlayFromIndex]] | 再生(インデックス番号) | | | [[vci/script/reference/exportassets/audio#PlayOneShot]] | 1回だけ再生(ファイル名) | | | [[vci/script/reference/exportassets/audio#PlayOneShotFromIndex]] | 1回だけ再生(インデックス番号)| | | [[vci/script/reference/exportassets/audio#Stop]] | 再生を停止(ファイル名) | | | [[vci/script/reference/exportassets/audio#StopFromIndex]] | 再生を停止(インデックス番号) | | | [[vci/script/reference/exportassets/audio#Pause]] | 再生を一時停止(ファイル名)| | | [[vci/script/reference/exportassets/audio#PauseFromIndex]] | 再生を一時停止(インデックス番号) | | | [[vci/script/reference/exportassets/audio#IsPlaying]] | 再生中かどうか(ファイル名) |2.3.4a以降| | [[vci/script/reference/exportassets/audio#IsPlayingFromIndex]] | 再生中かどうか(インデックス番号) |2.3.4a以降| | [[vci/script/reference/exportassets/audio#GetDuration]] | オーディオの長さ(ファイル名)|2.3.4a以降| | [[vci/script/reference/exportassets/audio#GetDurationFromIndex]] | オーディオの長さ(インデックス番号) |2.3.4a以降| | [[vci/script/reference/exportassets/audio#GetCurrentTime]] | オーディオの再生位置(ファイル名)|2.3.4a以降| | [[vci/script/reference/exportassets/audio#GetCurrentTimeFromIndex]] | オーディオの再生位置(インデックス番号) |2.3.4a以降| ===== audio ===== ExportAssets.** audio ExportAudio **\\ VCI内のObjectを取得します。 サンプル local Audio = vci.assets.audio function onUse(use) Audio._ALL_Play("Fire", 0.5, false) end 実行結果\\ "Fire"というAudioを再生する。 ==== AudioIndex ==== {{:vci:script:reference:exportassets:audioindex.jpg?direct&400|}}\\ * オーディオはオーディオクリップのファイル名で指定する方法と、AudioIndexで指定する方法があります。 * AudioIndexはhierarchyの上から順に登録されてゆきます。 * Index番号は0から始まります。 * 上記の画像ではAudioTest_1のアイテムの場合、index0を指定するとAudio1が再生され、\\ AudioTest_2のアイテムの場合、index0を指定するとAudio5が再生されます。 ===== Play ===== ExportAudio.**Play: fun(name: string, volumeScale: number, isLoop: bool)**\\ ExportAudio.**_ALL_Play: fun(name: string, volumeScale: number, isLoop: bool)** **第1引数:AudioClip名(String) 第2引数:音量(number) 第3引数:ループ設定(bool)** * 引数は全て入れる必要があります。省略できません。 * オーディオはAudioSourceのAudioClipに割り当てられたファイル名で指定します。 * 音量は0から1の間で指定し、1を超えた値で指定された場合は1として使います。 サンプル\\ function onUse() -- trueならオーディオをループ再生、falseなら1回だけ再生 local audioLoop = true -- 0 から 1 の間で音量を指定 local audioVolume = 0.5 --"Audio1"をループ再生する vci.assets.audio._ALL_Play("Audio1", audioVolume, audioLoop) end function onUnuse() --"Audio1"オーディオを停止する vci.assets.audio._ALL_Stop("Audio1") end 実行結果\\ (Useをした時に"Audio1"を音量0.5でループ再生します。) (Unuseをした時に"Audio1"を停止します。) ===== PlayFromIndex ===== **PlayFromIndex: fun(index: number, volumeScale: number, isLoop: bool)**\\ **_ALL_PlayFromIndex: fun(index: number, volumeScale: number, isLoop: bool)** **第1引数:インデックス番号(number) 第2引数:音量(number) 第3引数:ループ設定(bool)** * 引数は全て入れる必要があります。省略できません。 * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 * 音量は0から1の間で指定し、1を超えた値で指定された場合は1として使います。 サンプル\\ function onUse() -- trueならオーディオをループ再生、falseなら1回だけ再生 local audioLoop = true -- 0 から 1 の間で音量を指定 local audioVolume = 0.5 -- AudioIndex0 をループ再生する vci.assets.audio._ALL_PlayFromIndex(0, audioVolume, audioLoop) end function onUnuse() -- AudioIndex0 のオーディオを停止する vci.assets.audio._ALL_StopFromIndex(0) end 実行結果\\ (Useをした時に AudioIndex0 を音量0.5でループ再生します。) (Unuseをした時に AudioIndex0 を停止します。) ===== PlayOneShot ===== **PlayOneShot: fun(name: string, volumeScale: number)**\\ **_ALL_PlayOneShot: fun(name: string, volumeScale: number)** **第1引数:AudioClip名(String) 第2引数:音量(number)** * オーディオはAudioSourceのAudioClipに割り当てられたファイル名で指定します。 * 音量は0から1の間で指定し、1を超えた値で指定された場合は1として使います。 サンプル\\ function onUse() -- 0 から 1 の間で音量を指定 local audioVolume = 0.5 -- "Audio1" をループ再生する vci.assets.audio._ALL_PlayOneShot("Audio1", audioVolume) end 実行結果\\ (Useをした時に"Audio1"を音量0.5で1回だけ再生します。) ===== PlayOneShotFromIndex ===== **PlayOneShotFromIndex: fun(index: number, volumeScale: number)**\\ **_ALL_PlayOneShotFromIndex: fun(index: number, volumeScale: number)** **第1引数:インデックス番号(number) 第2引数:音量(number)** * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 * 音量は0から1の間で指定し、1を超えた値で指定された場合は1として使います。 サンプル\\ function onUse() -- 0 から 1 の間で音量を指定 local audioVolume = 0.5 -- AudioIndex0 をループ再生する vci.assets.audio._ALL_PlayOneShotFromIndex(0, audioVolume) end 実行結果\\ (Useをした時に AudioIndex0 を音量0.5で1回だけ再生します。) ===== Stop ===== **Stop: fun(name: string)**\\ **_ALL_Stop: fun(name: string)** **第1引数:AudioClip名(String)** * オーディオはAudioSourceのAudioClipに割り当てられたファイル名で指定します。 サンプル\\ function onUse() --"Audio1"をループ再生する vci.assets.audio._ALL_Play("Audio1", 0.5, true) end function onUnuse() --"Audio1"オーディオを停止する vci.assets.audio._ALL_Stop("Audio1") end 実行結果\\ (Useをした時に"Audio1"を音量0.5でループ再生します。) (Unuseをした時に"Audio1"を停止します。) ===== StopFromIndex ===== **StopFromIndex: fun(index: number)**\\ **_ALL_StopFromIndex: fun(index: number)** **第1引数:インデックス番号(number)** * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 サンプル\\ function onUse() -- AudioIndex0 をループ再生する vci.assets.audio._ALL_PlayFromIndex(0, 0.5, true) end function onUnuse() -- AudioIndex0 のオーディオを停止する vci.assets.audio._ALL_StopFromIndex(0) end 実行結果\\ (Useをした時に AudioIndex0 を音量0.5でループ再生します。) (Unuseをした時に AudioIndex0 を停止します。) ===== Pause ===== **Pause: fun(name: string, isPause: bool)**\\ **_ALL_Pause: fun(name: string, isPause: bool)** **第1引数:AudioClip名(String) 第2引数:停止/再生の設定(bool)** * オーディオはAudioSourceのAudioClipに割り当てられたファイル名で指定します。 * trueの場合、オーディオの再生を一時停止します。\\ falseの場合、一時停止しているオーディオの再生を再開します。 サンプル\\ -- "Audio1" をループ再生する vci.assets.audio._ALL_Play("Audio1", 0.5, true) function onUse() -- "Audio1" の再生をポーズする vci.assets.audio._ALL_Pause("Audio1", true) end function onUnuse() -- "Audio1" のポーズを解除して再生を再開する vci.assets.audio._ALL_Pause("Audio1", false) end 実行結果\\ (VCIを出した時に"Audio1"の再生がループ有で開始します。) (Useをした時に"Audio1"を一時停止します。) (Unuseをした時に"Audio1"を一時停止した時点から再生を行います。) ===== PauseFromIndex ===== **PauseFromIndex: fun(index: number, isPause: bool)**\\ **_ALL_PauseFromIndex: fun(index: number, isPause: bool)** **第1引数:インデックス番号(number) 第2引数:停止/再生の設定(bool)** * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 * trueの場合、オーディオの再生を一時停止します。\\ falseの場合、一時停止しているオーディオの再生を再開します。 サンプル\\ -- AudioIndex0 をループ再生する vci.assets.audio._ALL_PlayFromIndex(0, 0.5, true) function onUse() -- AudioIndex0 の再生をポーズする vci.assets.audio._ALL_PauseFromIndex(0, true) end function onUnuse() -- AudioIndex0 のポーズを解除して再生を再開する vci.assets.audio._ALL_PauseFromIndex(0, false) end 実行結果\\ (VCIを出した時に AudioIndex0 の再生がループ有で開始します。) (Useをした時に AudioIndex0 を一時停止します。) (Unuseをした時に AudioIndex0 を一時停止した時点から再生を行います。) ===== IsPlaying===== 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 * VirtualCast 2.3.4a 以降 **IsPlaying: fun(name: string): bool**\\ **AudioClip名(String)** * オーディオはAudioClip名で指定します。 **返り値** * 指定した音声の再生状況をbool型で返します。 * 再生中の場合は `true` を返し、一時停止中あるいは停止中の場合 `false` を返します。 サンプル\\ function onUse() -- "Audio1" の再生状況を取得する isPlaying = vci.assets.audio.IsPlaying("Audio1") print(isPlaying) end 実行結果\\ false vci.assets.audio._ALL_Play("Audio1", 0.5, true) function onUse() -- "Audio1" の再生状況を取得する isPlaying = vci.assets.audio.IsPlaying("Audio1") print(isPlaying) end 実行結果\\ true ===== IsPlayingFromIndex===== 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 * VirtualCast 2.3.4a 以降 **IsPlayingFromIndex: fun(index: number): bool**\\ **インデックス番号(number)** * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 **返り値** * 指定した音声の再生状況をbool型で返します。 * 再生中の場合は `true` を返し、一時停止中あるいは停止中の場合 `false` を返します。 サンプル\\ function onUse() -- AudioIndex0 の再生状況を取得する isPlaying = vci.assets.audio.IsPlayingFromIndex(0) print(isPlaying) end 実行結果\\ false vci.assets.audio._ALL_PlayFromIndex(0, 0.5, true) function onUse() -- AudioIndex0 の再生状況を取得する isPlaying = vci.assets.audio.IsPlayingFromIndex(0) print(isPlaying) end 実行結果\\ true ===== GetDuration ===== 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 * VirtualCast 2.3.4a 以降 **GetDuration: fun(name: string): number**\\ **AudioClip名(String)** * オーディオはAudioClip名で指定します。 **返り値** * 指定した音声ファイルの長さをnumber型で返します。 * 単位は秒です。 サンプル\\ function onUse() -- "Audio1" の長さを取得する local duration = vci.assets.audio.GetDuration("Audio1") print(duration) end 実行結果\\ 10.5 ===== GetDurationFromIndex ===== 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 * VirtualCast 2.3.4a 以降 **GetDurationFromIndex: fun(index: number): number**\\ **インデックス番号(number)** * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 **返り値** * 指定した音声ファイルの長さをnumber型で返します。 * 単位は秒です。 サンプル\\ function onUse() -- AudioIndex0 のオーディオの長さを取得する local duration = vci.assets.audio.GetDurationFromIndex(0) print(duration) end 実行結果\\ 10.5 ===== GetCurrentTime ===== 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 * VirtualCast 2.3.4a 以降 **GetCurrentTime: fun(name: string): number**\\ **AudioClip名(String)** * オーディオはAudioClip名で指定します。 **返り値** * 指定した音声ファイルの現在の再生位置を返します。 * 単位は秒です。 サンプル\\ function onGrab() -- trueならオーディオをループ再生、falseなら1回だけ再生 local audioLoop = true -- 0 から 1 の間で音量を指定 local audioVolume = 0.5 -- AudioIndex0 をループ再生する print("StartPlaying Audio") vci.assets.audio.PlayFromIndex(0, audioVolume, audioLoop) end function onUse() local currentTime = vci.assets.audio.GetCurrentTime("Audio1") print("currentTime: "..tostring(currentTime)) end 実行結果(Grabした後にUseした際の出力)\\ currentTime: 1.523 ===== GetCurrentTimeFromIndex ===== 使用するには下記の環境が必要です。 * UniVCI v0.39.1 以降 * VirtualCast 2.3.4a 以降 **GetCurrentTimeFromIndex: fun(index: number): number**\\ **インデックス番号(number)** * オーディオはAudioIndexのnumberで指定します。\\ Indexの割り当てルールは[[vci:script:reference:exportassets:audio#audioindex | こちら]]を確認してください。 **返り値** * 指定した音声ファイルの現在の再生位置を返します。 * 単位は秒です。 サンプル\\ function onGrab() -- trueならオーディオをループ再生、falseなら1回だけ再生 local audioLoop = true -- 0 から 1 の間で音量を指定 local audioVolume = 0.5 -- AudioIndex0 をループ再生する print("StartPlaying Audio") vci.assets.audio.PlayFromIndex(0, audioVolume, audioLoop) end function onUse() local currentTime = vci.assets.audio.GetCurrentTimeFromIndex(0) print("currentTime: "..tostring(currentTime)) end 実行結果(Grabした後にUseした際の出力)\\ currentTime: 1.523