Language:

サイドバー

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

メニュー

デバイス

アプリケーション

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:script:reference:exportanimation

ExportAnimation(アニメーション)

アニメーションに関するクラスです。
アニメーションの設定は、 Animationを組込んだEmptyの子に動かしたいObjectを置くをご覧ください。

ExportTransform
名前 説明 バージョン
GetAnimation VCI内のアニメーションを取得
ExportAnimation
名前 説明 バージョン
GetCount アニメーションの数を取得
GetNames アニメーションの名前を取得
HasClip アニメーションが存在するかどうか1.8.2a以降
IsPlaying アニメーションが再生中かどうか1.8.2a以降
Play 再生
PlayFromIndex インデックス番号で指定して再生
PlayFromName ファイル名で指定して再生
PlayOneShot アニメーションを1回だけ再生
Play(false)に相当します。
PlayWithState 状態を指定して再生1.8.2a以降
Blend アニメーションをブレンドして再生1.8.2a以降
CrossFade アニメーションをクロスフェードして再生1.8.2a以降
SetState アニメーションの状態を指定1.8.2a以降
Stop 再生を停止1.8.2a以降
Rewind 再生中のアニメーションを巻き戻し1.8.2a以降

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

Play
_ALL_Play
  • アニメーションが付いているオブジェクトはSubItemである必要はありません。

設定可能項目

設定可能項目の一覧 (クリックで展開)
PlayWithState, SetStateの設定可能項目
名前 説明
speednumber再生速度を指定します。デフォルト値は1です。0以上の値を設定してください。
weightnumberブレンドウェイトを指定します。デフォルト値は1です。0以上1以下の値を設定してください。
wrap_mode stringラップモードを指定します。デフォルト値はonceです。once, loop, ping_pongを指定できます。

設定例

tableをjsonに変換して渡します。

main.lua
local table = { wrap_mode="loop", speed=0.2}
local jsonString = json.serialize(table)
anim.PlayWithState("アニメーション名", jsonString)

Blendの設定可能項目

名前 説明
target_weight numberブレンドウェイトを指定します。デフォルト値は1です。0以上の値を設定してください。
fade_length numberフェード時間(秒)を指定します。デフォルト値は0.3秒です。0以上の値を指定してください。

UnityのAnimation.Blendに相当する機能です。 Animation.Blend

設定例

tableをjsonに変換して渡します。

main.lua
local table = { wrap_mode="loop", speed=1}
local jsonString = json.serialize(table)
anim.SetState("再生中のアニメーション", jsonString)
anim.Blend("ブレンドするアニメーション", json.serialize({target_weight=2, fade_length=1}))

CrossFadeの設定可能項目

名前 説明
fade_length numberフェード時間(秒)を指定します。デフォルト値は0.3秒です。0以上の値を指定してください。

UnityのAnimation.CrossFadeに相当する機能です。 Animation.CrossFade

設定例

tableをjsonに変換して渡します。

main.lua
anim.CrossFade("アニメーション名", json.serialize({fade_length=1}))

オプションを指定しない場合は、空文字列を渡してください。

main.lua
anim.CrossFade("アニメーション名", ""))

サンプル

main.lua
local chan_1 = vci.assets.GetTransform("SD_unitychan_generic_1")
local chan_2 = vci.assets.GetTransform("SD_unitychan_generic_2")
local chan_3 = vci.assets.GetTransform("SD_unitychan_generic_3")
-- ExportTransformからアニメーションを入手
local chanAnime_1 = chan_1.GetAnimation()
local chanAnime_2 = chan_2.GetAnimation()
local chanAnime_3 = chan_3.GetAnimation()
-- 再生
chanAnime_1.Play(true) -- PlayFromIndex(0, true)と同じ
chanAnime_2.PlayOneShot() -- PlayFromIndex(0, false)と同じ
chanAnime_3.PlayFromName("Damaged@loop", true)
 
-- アニメーションの数と名前を入手できます
print(chanAnime_3.GetCount())
local names = chanAnime_3.GetNames()
for i,m in ipairs(names) do
   print(string.format("%d[%s]",i,m))
end

実行結果

(3種類のアニメーションが再生されます)

GetCount

GetCount: fun(): number

アニメーションの数を取得します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    print(SubitemAnime.GetCount())
end

実行結果

2

GetNames

GetNames: fun(): usertype

アニメーションの名前を取得します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    for key, value in pairs(SubitemAnime.GetNames()) do
        print(key.. ' = ' ..value)
    end
end

実行結果

"1 = Anim1"
"2 = Anim2"

HasClip

HasClip: fun(name: string): bool

アニメーションが存在するかどうかを示します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    print(SubitemAnime.HasClip("Anim1"))
end

実行結果

true

IsPlaying

IsPlaying: fun(): bool

アニメーションが再生中かどうかを示します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    print(SubitemAnime.IsPlaying())
end

実行結果

false

Play

Play: fun(isloop: bool)
_ALL_Play: fun(isloop: bool)

引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    SubitemAnime.Play(false)
end

実行結果

1回だけアニメーションが再生されます。

PlayFromIndex

PlayFromIndex: fun(index: number, isloop: bool)
_ALL_PlayFromIndex: fun(index: number, isloop: bool)

アニメーションをインデックス番号で指定して再生します。
引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    SubitemAnime.PlayFromIndex(0, true)
end

実行結果

インデックス番号0のアニメーションがループ再生されます。

PlayFromName

PlayFromName: fun(name: string, isloop: bool)
_ALL_PlayFromName: fun(name: string, isloop: bool)

アニメーションをファイル名で指定して再生します。
引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    SubitemAnime.PlayFromName('Anim1', true)
end

実行結果

ファイル名'Anim1'のアニメーションがループ再生されます。

PlayOneShot

PlayOneShot: fun()
_ALL_PlayOneShot: fun()

アニメーションを1回だけ再生します。
Play(false)に相当します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    SubitemAnime.PlayOneShot()
end

実行結果

インデックス番号0のアニメーションを1回だけ再生します。

PlayWithState

PlayWithState: fun(name: string, states: string)
_ALL_PlayWithState: fun(name: string, states: string)

状態を指定して再生します。

名前 説明
speednumber再生速度を指定します。デフォルト値は1です。0未満を指定した場合逆再生になります。
weightnumberブレンドウェイトを指定します。デフォルト値は1です。0以上1以下の値を設定してください。
wrap_mode stringラップモードを指定します。デフォルト値はonceです。once, loop, ping_pongを指定できます。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
local table = { wrap_mode="ping_pong", speed=0.8}
local jsonString = json.serialize(table)
function onUse(use)
    SubitemAnime.PlayWithState("Anim1", jsonString)
end

実行結果

ファイル名"Anim1"のアニメーションがスピード0.8で再生と逆再生を繰り返します。

Blend

Blend: fun(name: string, options: string)
_ALL_Blend: fun(name: string, options: string)

アニメーションをブレンドして再生します。

名前 説明
target_weight numberブレンドウェイトを指定します。デフォルト値は1です。0以上の値を設定してください。
fade_length numberフェード時間(秒)を指定します。デフォルト値は0.3秒です。0以上の値を指定してください。

UnityのAnimation.Blendに相当する機能です。 Animation.Blend

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
local table = { wrap_mode="loop", speed=1}
local jsonString = json.serialize(table)
function onUse(use)
    SubitemAnime.PlayWithState("Anim1", jsonString)
    SubitemAnime.Blend("Anim2", json.serialize({target_weight=2, fade_length=1}))
end

実行結果

"Anim1""Anim2"をブレンドして再生します。

CrossFade

CrossFade: fun(name: string, options: string)
_ALL_CrossFade: fun(name: string, options: string)

アニメーションをクロスフェードして再生します。

名前 説明
fade_length numberフェード時間(秒)を指定します。デフォルト値は0.3秒です。0以上の値を指定してください。

UnityのAnimation.CrossFadeに相当する機能です。 Animation.CrossFade

オプションを指定しない場合は、空文字列を渡してください。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
local table = { wrap_mode="loop", speed=1}
local jsonString = json.serialize(table)
function onUse(use)
    SubitemAnime.PlayWithState("Anim1", jsonString)
    SubitemAnime.CrossFade("Anim2", json.serialize({fade_length=1}))
end

実行結果

"Anim1"から"Anim2"にクロスフェードして再生します。 (1.8.2a)

SetState

SetState: fun(name: string, states: string)
_ALL_SetState: fun(name: string, states: string)

アニメーションの状態を指定します。

名前 説明
speednumber再生速度を指定します。デフォルト値は1です。0以上の値を設定してください。
weightnumberブレンドウェイトを指定します。デフォルト値は1です。0以上1以下の値を設定してください。
wrap_mode stringラップモードを指定します。デフォルト値はonceです。once, loop, ping_pongを指定できます。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
local table = { wrap_mode="loop", speed=1}
local jsonString = json.serialize(table)
function onUse(use)
    SubitemAnime.PlayWithState("Anim1", jsonString)
end

実行結果

"Anim1"の状態を速度1でループ再生に設定します。

Stop

Stop: fun()
_ALL_Stop: fun()

アニメーションの再生を停止します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    SubitemAnime.Stop()
end

実行結果

再生されているアニメーションが停止します。

Rewind

Rewind: fun()
_ALL_Rewind: fun()

再生中のアニメーションを巻き戻します。

サンプル

main.lua
local Anime = vci.assets.GetTransform("Anime")
local SubitemAnime = Anime.GetAnimation()
function onUse(use)
    SubitemAnime.Rewind()
end

実行結果

アニメーションを最初から再生し直します。
vci/script/reference/exportanimation.txt · 最終更新: 2022/09/01 13:16 by pastatto

ページ用ツール