ユーザ用ツール

サイト用ツール


vci:script:reference:exportanimation

vci.assets(ExportAnimation)


UniVCI v0.21 からRoot以外に追加された複数のアニメーションがVCIエクスポート時に出力されるようになります。


メソッド一覧

メソッド一覧は[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.GetSubItem("SD_unitychan_generic_1")
local chan_2 = vci.assets.GetSubItem("SD_unitychan_generic_2")
local chan_3 = vci.assets.GetSubItem("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種類のアニメーションが再生されます)

解説

vci/script/reference/exportanimation.txt · 最終更新: 2019/11/28 17:19 by fumo

ページ用ツール