Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

Steam版

デバイス

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:script:reference:exportaudiosource

ExportAudioSource(オーディオソース)

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

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

  • UniVCI v0.32 以降でExportされたVCI
  • バーチャルキャスト v2.0.3b以降

で使用可能です。

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

  • AudioClipの名前

サンプル

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を再生します。

  • 同AudioSourceでAudioClipをPlay中である場合、Play中のAudioClipの再生は中断されます
  • PlayOneShotされている場合は中断されません

引数

volumeScale: float

再生音量

  • 0 ~ 1 の範囲で指定できます
  • 1を超える値を指定した場合、1として扱われます

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を一度のみ再生します。

  • PlayOneShotは同AudioSourceでPlay中のAudioClipの再生を中断しません
  • PlayOneShotによって再生されたAudioClipはStop, Pauseすることができません

引数

volumeScale: float

再生音量

  • 0 ~ 1 の範囲で指定できます
  • 1を超える値を指定した場合、1として扱われます

サンプル

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の再生を停止します。

  • Stopで再生を停止した後に再度Playした場合、対象のAudioClipの初めから再生されます
  • PlayOneShotされている音声は停止することはできません

サンプル

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の再生を一時停止/再開します。

  • PlayOneShotされている音声は一時停止/再開することができません

引数

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

  • trueの場合、再生を一時停止します
  • falseの場合、一時停止した箇所から再生を再開します

サンプル

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):

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

  • PlayScheduled による音声再生の予約は、一つの ExportAudioSource 上で同時に一つしかできません。
    • PlayScheduled の呼び出しから実際に音声が再生されるまでの間に PlayScheduled を再度別の時刻を指定して呼び出した場合、前の PlayScheduled による再生予約は後の PlayScheduled による再生予約に上書きされます。
  • PlayScheduled の呼び出しから実際に音声が再生されるまでの間、IsPlayingtrue になります。

引数

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

  • 現在のオーディオシステム上の時刻は、GetDspTime から取得できます
  • 単位は「秒」です

サンプル

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
vci/script/reference/exportaudiosource.txt · 最終更新: 2023/06/01 11:13 by pastatto

ページ用ツール