Language:

サイドバー

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

メインメニュー

初心者向けガイド

VirtualCast

遊ぶ世界

THE SEED ONLINE

ニコニコ

SHOWROOM

配信

配信ツール

その他

wikiについて

デベロッパー向け


開発環境

VRM(アバター)

VCI(アイテム/背景)

VCI更新情報

更新日 - UniVCI バージョン
2021/03/17 v0.32
2.0.3b
2021/01/14 v0.31
2.0.1a
2020/12/03 v0.30
2.0.0b
2020/11/12 v0.30
2.0.0a
2020/10/22 v0.29
1.9.5b
2020/07/30 v0.29
1.9.3e
2020/06/25 v0.28
1.9.3c
2020/05/21 v0.27
1.9.2e

以前のアップデート履歴


GLB(背景)

vci:script:reference:exportanimation

vci.assets(ExportAnimation)

UniVCI v0.21 からRoot以外に追加された複数のアニメーションがVCIエクスポート時に出力されるようになります。
UniVCIのバージョンによって動かしたいSubItemにAnimationを追加してVCIエクスポートできない場合があります。その場合は、 Animationを組込んだEmptyの子に動かしたいObjectを置く方法をお試しください。

メンバ変数・関数一覧

[EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと一覧を確認できます。


名前 説明
GetCount: fun(): number アニメーションの数を取得します。
GetNames: fun(): usertype アニメーションの名前を取得します。
HasClip: fun(name: string): bool アニメーションが存在するかどうかを示します。 (1.8.2a)
IsPlaying: fun(): bool アニメーションが再生中かどうかを示します。 (1.8.2a)
Play: fun(isloop: bool) 引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。
PlayFromIndex: fun(index: number, isloop: bool) アニメーションをインデックス番号で指定して再生します。
PlayFromName: fun(name: string, isloop: bool) アニメーションをファイル名で指定して再生します。
PlayOneShot: fun() アニメーションを1回だけ再生します。
Play(false)に相当します。
PlayWithState: fun(name: string, states: string) 状態を指定して再生します。 (1.8.2a)
Blend: fun(name: string, options: string) アニメーションをブレンドして再生します。 (1.8.2a)
CrossFade: fun(name: string, options: string) アニメーションをクロスフェードして再生します。 (1.8.2a)
SetState: fun(name: string, states: string) アニメーションの状態を指定します。 (1.8.2a)
Stop: fun() アニメーションの再生を停止します。
Rewind: fun() 再生中のアニメーションを巻き戻します。 (1.8.2a)

_ALL_を含むメソッド(他のクライアントでも実行されます)

名前 説明
_ALL_Play: fun(isloop: bool) 引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。
_ALL_PlayFromIndex: fun(index: number, isloop: bool) アニメーションをインデックス番号で指定して再生します。
_ALL_PlayFromName: fun(name: string, isloop: bool) アニメーションをファイル名で指定して再生します。
_ALL_PlayOneShot: fun() アニメーションを1回だけ再生します。
_ALL_PlayWithState: fun(name: string, states: string) 状態を指定して再生します。 (1.8.2a)
_ALL_Blend: fun(name: string, options: string) アニメーションをブレンドして再生します。 (1.8.2a)
_ALL_CrossFade: fun(name: string, options: string) アニメーションをクロスフェードして再生します。 (1.8.2a)
_ALL_SetState: fun(name: string, states: string) アニメーションの状態を指定します。 (1.8.2a)
_ALL_Stop: fun() アニメーションの再生を停止します。
_ALL_Rewind: fun() 再生中のアニメーションを巻き戻します。 (1.8.2a)
  • アニメーションが付いているオブジェクトは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

説明
アニメーションが存在するかどうかを示します。 (1.8.2a)

IsPlaying()

IsPlaying: fun(): bool

サンプル

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

実行結果

false

説明
アニメーションが再生中かどうかを示します。 (1.8.2a)

Play()

Play: fun(isloop: bool)

サンプル

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

実行結果

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

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

PlayFromIndex()

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

サンプル

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

実行結果

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

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

PlayFromName()

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

サンプル

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

実行結果

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

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

PlayOneShot()

PlayOneShot: fun()

サンプル

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

実行結果

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

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

PlayWithState()

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

サンプル

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で再生と逆再生を繰り返します。

説明
状態を指定して再生します。 (1.8.2a)

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

Blend()

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

サンプル

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"をブレンドして再生します。 (1.8.2a)

説明
アニメーションをブレンドして再生します。 (1.8.2a)

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

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

CrossFade()

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

サンプル

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)

説明
アニメーションをクロスフェードして再生します。 (1.8.2a)

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

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

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

SetState()

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

サンプル

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でループ再生に設定します。

説明
アニメーションの状態を指定します。 (1.8.2a)

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

Stop()

Stop: fun()

サンプル

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

実行結果

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

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

Rewind()

Rewind: fun()

サンプル

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

実行結果

アニメーションを最初から再生し直します。

説明
再生中のアニメーションを巻き戻します。 (1.8.2a)

サンプル

サンプル

main.lua
 

実行結果

 

説明

vci/script/reference/exportanimation.txt · 最終更新: 2021/07/14 14:42 by t-daihisa

ページ用ツール