Table of Contents

vci.assets(ExportAnimation)


Staring from UniVCI v0.21, multiple animations added to objects other than the root will be exported during the VCI export.


List of methods

For the latest list of the methods, refer to “types.lua” file in “EmbeddedScriptWorkspace” folder.

Method Description
GetCount: fun(): number Get the count of animations.
GetNames: fun(): usertype Get the name of animations
HasClip: fun(name: string): bool Indicates whether or not animations exist. (1.8.2a)
IsPlaying: fun(): bool Indicates whether or not animations is playing. (1.8.2a)
Play: fun(isloop: bool) Loop play when the argument is true. Play once when the argument is false.
PlayFromIndex: fun(index: number, isloop: bool) Specify an animation with an index number and play.
PlayFromName: fun(name: string, isloop: bool) Specify an animation with a file name and play.
PlayOneShot: fun() Play an animation once.
It is equivalent to Play(false).
PlayWithState: fun(name: string, states: string) Specify a state and play. (1.8.2a)
Blend: fun(name: string, options: string) Play blended animations. (1.8.2a)
CrossFade: fun(name: string, options: string) Play cross-faded animations. (1.8.2a)
SetState: fun(name: string, states: string) Specify a state for an animation. (1.8.2a)
Stop: fun() Stop the playback of an animation.
Rewind: fun() Rewinds the playing animation. (1.8.2a)

The methods with _ALL_ are run on other clients as well.

Method Description
_ALL_Play: fun(isloop: bool) Loop play when the argument is true. Play once when the argument is false.
_ALL_PlayFromIndex: fun(index: number, isloop: bool) Specify an animation with an index number and play.
_ALL_PlayFromName: fun(name: string, isloop: bool) Specify an animation with a file name and play.
_ALL_PlayOneShot: fun() Play an animation once.
_ALL_PlayWithState: fun(name: string, states: string) Specify a state and play. (1.8.2a)
_ALL_Blend: fun(name: string, options: string) Play blended animations. (1.8.2a)
_ALL_CrossFade: fun(name: string, options: string) Play cross-faded animations. (1.8.2a)
_ALL_SetState: fun(name: string, states: string) Specify a state for an animation. (1.8.2a)
_ALL_Stop: fun() Stop the playback of an animation.
_ALL_Rewind: fun() Rewinds the playing animation. (1.8.2a)

Configurable settings of PlayWithState and SetState

Name Type Description
speednumber Specify the playback speed. The default value is 1. Specify a value higher than 0.
weightnumberSpecify the blend weight. The default value is 1. Specify a value between 0 and 1.
wrap_mode string

Example

Convert a table into json and pass.

main.lua
local table = { wrap_mode="loop", speed=0.2}
local jsonString = json.serialize(table)
anim.PlayWithState("AnimationName", jsonString)

Configurable settings of Blend

Name Type Description
target_weight numberSpecify the blend weight. The default value is 1. Specify a value higher than 0.
fade_length numberSpecify a fade time (seconds). The default value is 0.3 seconds. Specify a value higher than 0.

Example

Convert a table into json and pass.

main.lua
local table = { wrap_mode="loop", speed=1}
local jsonString = json.serialize(table)
anim.SetState("Playing animation", jsonString)
anim.Blend("animation to blend", json.serialize({target_weight=2, fade_length=1}))

Configurable settings for CrossFade

Name Type Description
fade_length numberSpecify a fade time (seconds). Default value is 0.3 seconds. Specify a value higher than 0.

Example

Convert a table into json and pass.

main.lua
anim.CrossFade("Animation name", json.serialize({fade_length=1}))

Pass an empty string when not specifying the option.

main.lua
anim.CrossFade("Animation name", ""))

Summary

Example

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")
-- Get animations from ExportTransform
local chanAnime_1 = chan_1.GetAnimation()
local chanAnime_2 = chan_2.GetAnimation()
local chanAnime_3 = chan_3.GetAnimation()
-- Play
chanAnime_1.Play(true) -- The same as PlayFromIndex(0, true)
chanAnime_2.Play(true) -- The same as PlayFromIndex(0, false)
chanAnime_3.PlayFromName("Damaged@loop", true)
 
-- You can get the count and the names of animations
print(chanAnime_3.GetCount())
local names = chanAnime_3.GetNames()
for i,m in ipairs(names) do
   print(string.format("%d[%s]",i,m))
end

The result

(Three animations are played)

Explanation