ExportAudioSource(オーディオソース)

このページは過去の情報となります。
新しいスクリプトリファレンスはこちらになります。

VCIにアタッチされているオーディオソース(AudioSource)の再生/停止などを行うクラスです。

で使用可能です。

ExportTransform
名前 説明 バージョン
GetAudioSources VCI内のAudioSourceを取得
ExportAudioSource
名前 説明 バージョン
ClipName AudioClipの名前を取得 v2.0.3b 以降
Play AudioClipを再生 v2.0.3b 以降
PlayOneShot AudioClipを一度だけ再生 v2.0.3b 以降
Stop AudioClipの再生を停止 v2.0.3b 以降
Pause AudioClipの再生を一時停止/再開 v2.0.3b 以降
PlayScheduled 指定したタイミングで音声を再生 v2.3.9a 以降
SetTime 再生時間を設定 v2.3.9a 以降
SetPitch ピッチを設定 v2.3.9a 以降
GetDuration audioClip の長さを返却 v2.3.9a 以降
GetCurrentTime 現在の再生時間を返却 v2.3.9a 以降
IsPlaying 現在再生中かどうかを返却 v2.3.9a 以降

_ALL_ を含む関数は、他のクライアントでも実行され同期します。
全てのクライアントで同じ結果になってほしい場合は _ALL_ を含む関数を使用してください。

Play
_ALL_Play

ClipName

ClipName string

AudioSourceに紐づいているAudioClipの名前を取得します。

戻り値

string

サンプル

main.lua
-- ExportAudioSource.ClipName
-- 
-- root
--   -> Cube
--     -> AudioSource(Audio1というAudioClipが紐づいている)
--     -> AudioSource(Audio2というAudioClipが紐づいている)
 
-- 対象のExportTransformを取得する
local cube = vci.assets.GetTransform("Cube")
 
-- CubeにアタッチされているすべてのAudioSourceを取得する
local audioSources = cube.GetAudioSources()
 
-- VCI生成時に実行
-- それぞれのAudioSourceに紐づいているAudioClipの名前を出力する
print(audioSources[1].ClipName)
print(audioSources[2].ClipName)
 
-- <出力結果>
-- Audio1
-- Audio2

Play

Play fun(volumeScale: number, isLoop: boolean):
_ALL_Play fun(volumeScale: number, isLoop: boolean):

AudioSourceに紐づいているAudioClipを再生します。

引数

volumeScale: float

再生音量

isLoop: bool

再生音声をループさせるかどうかを表すフラグ

サンプル

main.lua
-- ExportAudioSource.Play
-- 
-- root
--   -> Cube
--     -> AudioSource(Audio1というAudioClipが紐づいている)
--     -> AudioSource(Audio2というAudioClipが紐づいている)
 
-- 対象のExportTransformを取得する
local cube = vci.assets.GetTransform("Cube")
 
-- CubeにアタッチされているすべてのAudioSourceを取得する
local audioSources = cube.GetAudioSources()
 
-- VCI生成時に実行
-- Audio1を再生する
audioSources[1].Play(1.0, false)
-- Audio2をループ再生する(停止するためにStopを呼ぶ必要がある)
audioSources[2].Play(1.0, true)

PlayOneShot

PlayOneShot fun(volumeScale: number):
_ALL_PlayOneShot fun(volumeScale: number):

AudioSourceに紐づいているAudioClipを一度のみ再生します。

引数

volumeScale: float

再生音量

サンプル

main.lua
-- ExportAudioSource.PlayOneShot
-- 
-- root
--   -> Cube
--     -> AudioSource(Audio1というAudioClipが紐づいている)
--     -> AudioSource(Audio2というAudioClipが紐づいている)
 
-- 対象のExportTransformを取得する
local cube = vci.assets.GetTransform("Cube")
 
-- CubeにアタッチされているすべてのAudioSourceを取得する
local audioSources = cube.GetAudioSources()
 
-- VCI生成時に実行
-- Audio1を一度のみ再生する
audioSources[1].PlayOneShot(1.0)
-- PlayOneShotした音はStopしても止まらない
-- audioSources[1].Stop()

Stop

Stop fun(): void
_ALL_Stop fun(): void

AudioSourceからPlayされているAudioClipの再生を停止します。

サンプル

main.lua
-- ExportAudioSource.Stop
-- 
-- root
--   -> Cube(SubItem)
--     -> AudioSource(Audio1というAudioClipが紐づいている)
--     -> AudioSource(Audio2というAudioClipが紐づいている)
 
-- 対象のExportTransformを取得する
local cube = vci.assets.GetTransform("Cube")
 
-- CubeにアタッチされているすべてのAudioSourceを取得する
local audioSources = cube.GetAudioSources()
 
-- VCIをuseしている間のみAudio1を再生し続ける
function onUse(usedItem)
    audioSources[1].Play(1.0, true)
end
 
function onUnuse(unusedItem)
    audioSources[1].Stop()
end

Pause

Pause fun(isPause: boolean):
_ALL_Pause fun(isPause: boolean):

AudioSourceからPlayされているAudioSourceの再生を一時停止/再開します。

引数

isPaused: bool
再生を一時停止/再開するかどうかを表すフラグ

サンプル

main.lua
-- ExportAudioSource.Pause
-- 
-- root
--   -> Cube(SubItem)
--     -> AudioSource(Audio1というAudioClipが紐づいている)
--     -> AudioSource(Audio2というAudioClipが紐づいている)
 
-- 対象のExportTransformを取得する
local cube = vci.assets.GetTransform("Cube")
 
-- CubeにアタッチされているすべてのAudioSourceを取得する
local audioSources = cube.GetAudioSources()
 
-- VCI生成時に実行
-- Audio1のループ再生を開始する
audioSources[1].Play(1.0, true)
 
-- VCIをuseしたときにAudio1を再生を再開/一時停止する
-- Audio1が再生中かどうかを表すフラグ
local isAudioPlaying = true
 
function onUse(usedItem)
    -- フラグを反転させて再生状態を切り替える
    isAudioPlaying = not(isAudioPlaying)
    audioSources[1].Pause(isAudioPlaying)
end

PlayScheduled

PlayScheduled fun(dspTime: number):

引数で指定したオーディオシステム上の時刻に音声を再生します。

引数

dspTime: number
音声を再生するオーディオシステム上の時刻

サンプル

main.lua
-- ExportAudioSource.PlayScheduled
-- 
-- root
--   -> Cube(SubItem)
--     -> AudioSource(Audio1というAudioClipが紐づいている)
 
-- 対象のExportTransformを取得する
local cube = vci.assets.GetTransform("Cube")
 
-- CubeにアタッチされているすべてのAudioSourceを取得する
local audioSources = cube.GetAudioSources()
 
-- VCI生成時に実行
-- 現在のオーディオシステム上の時刻を取得する
local dspTime = vci.me.GetDspTime()
 
-- VCIを生成した3秒後に音声を再生する
audioSources[1].PlayScheduled(dspTime + 3)

SetTime

SetTime fun(time: number): void

再生時間を指定します。

サンプル

main.lua
local cube = vci.assets.GetTransform("Cube")
local audioSources = cube.GetAudioSources()
 
function onUse(use)
    -- 5秒マークから再生する
    audioSources[1].Play(1, false)
    audioSources[1].SetTime(5)
end

SetPitch

SetPitch fun(pitch: number): void

音声のピッチを設定します。

サンプル

main.lua
local cube = vci.assets.GetTransform("Cube")
local audioSources = cube.GetAudioSources()
 
function onUse(use)
    -- 2倍速で再生する
    audioSources[1].Play(1, false)
    audioSources[1].SetPitch(2)
end

GetDuration

GetDuration fun(): number

設定された AudioClip の長さを返します。

サンプル

main.lua
local cube = vci.assets.GetTransform("Cube")
local audioSources = cube.GetAudioSources()
 
function onUse(use)
    -- 掴んだら AudioClip の長さをログに出力
    print("Duration: " .. audioSources[1].GetDuration())
end

GetCurrentTime

GetCurrentTime fun(): number

現在の再生時間を返します。

サンプル

main.lua
local cube = vci.assets.GetTransform("Cube")
local audioSources = cube.GetAudioSources()
audioSources[1].Play(1, false)
 
function onUse(use)
    -- 掴んだら現在の再生時間をログに出力
    print("currentTime: " .. audioSources[1].GetCurrentTime())
end

IsPlaying

IsPlaying fun(): boolean

現在再生中かどうかを返します。

サンプル

main.lua
local cube = vci.assets.GetTransform("Cube")
local audioSources = cube.GetAudioSources()
audioSources[1].Play(1, false)
 
function onUse(use)
    -- 掴んだら現在の再生中かどうかをログに出力
    print("IsPlaying: " .. audioSources[1].IsPlaying())
end