Language:

サイドバー

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

メニュー

Steam版

デバイス

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:sample:audio:tutorial

VCIで音楽を再生する

VCIでは AudioClipをVCIスクリプト(Lua)から制御できます。
ここでは、ExportAudioSourceを使用した最もシンプルなAudioClipの使用方法について説明します。

サンプルデータ

音源


音源は44.1kHz 16bit のWAVEファイル推奨です。
ファイルフォーマットによってはUnity上で再生できても、VCIをエクスポートした際に鳴らなくなることがあります。

Unityで音声ファイルの組み込み

音声ファイル(.wav等)はUnityのassetにドラック&ドロップすれば
コンポーネントをアタッチする場所はサブオブジェクトでも孫オブジェクトでも問題ありません。

複数の音声ファイルを組み込むこともできますが、音声ファイルを指定する時にファイル名で判別しますので、同じ名前の音声ファイルにならないように組み込んでください。

VCIスクリプト

ExportAudioSource._ALL_Play は、オブジェクトのExportTransform の取得を行い、AudioSource のアタッチ順を指定して再生できます。
今回はCube にアタッチされている1番目のAudioSourceを再生するスクリプトです。

main.lua
-- 対象の ExportTransform を取得する
local cube = vci.assets.GetTransform("Cube")
 
-- Cube にアタッチされているすべての AudioSource を取得する
local audioSources = cube.GetAudioSources()
 
-- アイテムを持った状態で使った時にオーディオを再生する
function onUse(item)
    -- Audio1 を再生する
    audioSources[1]._ALL_Play(1.0, false)
end

Useしたアイテムによって再生するオーディオファイルを分けたい場合、以下のようになります。
onUse(item)の引数であるitemには、subitemの名前がstringで格納されています。
itemをif文で比較する事で、再生するオーディオクリップを分岐する事ができます。

main.lua
-- 対象の ExportTransform を取得する
local cube = vci.assets.GetTransform("Cube")
 
-- Cube にアタッチされているすべての AudioSource を取得する
local audioSources = cube.GetAudioSources()
 
-- アイテムを持った状態で使った時にオーディオを再生する
function onUse(item)
    if item == "Cube" then
        -- Audio1 を再生する
        audioSources[1]._ALL_Play(1.0, false)
    end
end
vci/sample/audio/tutorial.txt · 最終更新: 2023/10/02 20:33 by pastatto

ページ用ツール