vci:script:reference:exportanimation

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
vci:script:reference:exportanimation [2019/11/28 17:19]
fumo [CrossFadeの設定可能項目]
vci:script:reference:exportanimation [2021/07/14 14:42] (現在)
t-daihisa
ライン 1: ライン 1:
 ====== vci.assets(ExportAnimation) ====== ====== vci.assets(ExportAnimation) ======
-\\+
 [[https://​virtualcast.jp/​wiki/​doku.php?​id=vci:​updatelog:​1.7.2a | UniVCI v0.21]] からRoot以外に追加された複数のアニメーションがVCIエクスポート時に出力されるようになります。\\ [[https://​virtualcast.jp/​wiki/​doku.php?​id=vci:​updatelog:​1.7.2a | UniVCI v0.21]] からRoot以外に追加された複数のアニメーションがVCIエクスポート時に出力されるようになります。\\
 +UniVCIのバージョンによって動かしたいSubItemにAnimationを追加してVCIエクスポートできない場合があります。その場合は、[[vci/​sample/​animation/​tutorial2 | Animationを組込んだEmptyの子に動かしたいObjectを置く]]方法をお試しください。
  
-----+===== メンバ変数・関数一覧 =====
  
-===== メソッド一覧 ​=====+** [EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと一覧を確認できます。**
  
-**メソッド一覧は[EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと最新のメソッド一覧を確認できます。**+----
  
-メソッド名 ^ 説明 ^ +^ 名前 ^ 説明 ^ 
-| GetCount: fun(): number | アニメーションの数を取得します。 | +| [[vci/​script/​reference/​exportanimation#​GetCount() ​| GetCount: fun(): number]] | アニメーションの数を取得します。 | 
-| GetNames: fun(): usertype | アニメーションの名前を取得します。 | +| [[vci/​script/​reference/​exportanimation#​GetNames() ​| GetNames: fun(): usertype]] | アニメーションの名前を取得します。 | 
-| HasClip: fun(name: string): bool | アニメーションが存在するかどうかを示します。 (1.8.2a)| +| [[vci/​script/​reference/​exportanimation#​HasClip() ​| HasClip: fun(name: string): bool]] | アニメーションが存在するかどうかを示します。 (1.8.2a)| 
-| IsPlaying: fun(): bool | アニメーションが再生中かどうかを示します。 (1.8.2a)| +| [[vci/​script/​reference/​exportanimation#​IsPlaying() ​| IsPlaying: fun(): bool]] | アニメーションが再生中かどうかを示します。 (1.8.2a)| 
-| Play: fun(isloop: bool) | 引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。 | +| [[vci/​script/​reference/​exportanimation#​Play() ​| Play: fun(isloop: bool)]] | 引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。 | 
-| PlayFromIndex:​ fun(index: number, isloop: bool) | アニメーションをインデックス番号で指定して再生します。 | +| [[vci/​script/​reference/​exportanimation#​PlayFromIndex() ​| PlayFromIndex:​ fun(index: number, isloop: bool)]] | アニメーションをインデックス番号で指定して再生します。 | 
-| PlayFromName:​ fun(name: string, isloop: bool) | アニメーションをファイル名で指定して再生します。 | +| [[vci/​script/​reference/​exportanimation#​PlayFromName() ​| PlayFromName:​ fun(name: string, isloop: bool)]] | アニメーションをファイル名で指定して再生します。 | 
-| PlayOneShot:​ fun() | アニメーションを1回だけ再生します。\\ Play(false)に相当します。 | +| [[vci/​script/​reference/​exportanimation#​PlayOneShot() ​| PlayOneShot:​ fun()]] | アニメーションを1回だけ再生します。\\ Play(false)に相当します。 | 
-| PlayWithState:​ fun(name: string, states: string) | 状態を指定して再生します。 (1.8.2a)| +| [[vci/​script/​reference/​exportanimation#​PlayWithState() ​| PlayWithState:​ fun(name: string, states: string)]] | 状態を指定して再生します。 (1.8.2a)| 
-| Blend: fun(name: string, options: string) | アニメーションをブレンドして再生します。 (1.8.2a)| +| [[vci/​script/​reference/​exportanimation#​Blend() ​| Blend: fun(name: string, options: string)]] | アニメーションをブレンドして再生します。 (1.8.2a)| 
-| CrossFade: fun(name: string, options: string) | アニメーションをクロスフェードして再生します。 (1.8.2a)| +| [[vci/​script/​reference/​exportanimation#​CrossFade() ​| CrossFade: fun(name: string, options: string)]] | アニメーションをクロスフェードして再生します。 (1.8.2a)| 
-| SetState: fun(name: string, states: string) | アニメーションの状態を指定します。 (1.8.2a)| +| [[vci/​script/​reference/​exportanimation#​SetState() ​| SetState: fun(name: string, states: string)]] | アニメーションの状態を指定します。 (1.8.2a)| 
-| Stop: fun() | アニメーションの再生を停止します。 | +| [[vci/​script/​reference/​exportanimation#​Stop() ​| Stop: fun()]] | アニメーションの再生を停止します。 | 
-| Rewind: fun() | 再生中のアニメーションを巻き戻します。 (1.8.2a)|+| [[vci/​script/​reference/​exportanimation#​Rewind() ​| Rewind: fun()]] | 再生中のアニメーションを巻き戻します。 (1.8.2a)|
  
 ''​_ALL_''​を含むメソッド(他のクライアントでも実行されます) ''​_ALL_''​を含むメソッド(他のクライアントでも実行されます)
  
-メソッド名 ^ 説明 ^+^ 名前 ^ 説明 ^
 | _ALL_Play: fun(isloop: bool) | 引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。| | _ALL_Play: fun(isloop: bool) | 引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。|
 | _ALL_PlayFromIndex:​ fun(index: number, isloop: bool) | アニメーションをインデックス番号で指定して再生します。| | _ALL_PlayFromIndex:​ fun(index: number, isloop: bool) | アニメーションをインデックス番号で指定して再生します。|
ライン 97: ライン 98:
 anim.CrossFade("​アニメーション名",​ ""​)) anim.CrossFade("​アニメーション名",​ ""​))
 </​file>​ </​file>​
- 
----- 
  
 ===== 概要 ===== ===== 概要 =====
ライン 105: ライン 104:
  
 <file lua main.lua>​ <file lua main.lua>​
-local chan_1 = vci.assets.GetSubItem("​SD_unitychan_generic_1"​) +local chan_1 = vci.assets.GetTransform("​SD_unitychan_generic_1"​) 
-local chan_2 = vci.assets.GetSubItem("​SD_unitychan_generic_2"​) +local chan_2 = vci.assets.GetTransform("​SD_unitychan_generic_2"​) 
-local chan_3 = vci.assets.GetSubItem("​SD_unitychan_generic_3"​)+local chan_3 = vci.assets.GetTransform("​SD_unitychan_generic_3"​)
 -- ExportTransformからアニメーションを入手 -- ExportTransformからアニメーションを入手
 local chanAnime_1 = chan_1.GetAnimation() local chanAnime_1 = chan_1.GetAnimation()
ライン 131: ライン 130:
 </​code>​ </​code>​
  
-----+===== GetCount() ===== 
 + 
 +**GetCount: fun(): number** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    print(SubitemAnime.GetCount()) 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションの数を取得します。 
 + 
 +===== GetNames() ===== 
 + 
 +**GetNames: fun(): usertype** 
 + 
 +サンプル\\ 
 +<file lua 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 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +"1 = Anim1"​ 
 +"2 = Anim2"​ 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションの名前を取得します。。 
 + 
 +===== HasClip() ===== 
 + 
 +**HasClip: fun(name: string): bool** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    print(SubitemAnime.HasClip("​Anim1"​)) 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +true 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションが存在するかどうかを示します。 (1.8.2a) 
 + 
 +===== IsPlaying() ===== 
 + 
 +**IsPlaying:​ fun(): bool** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    print(SubitemAnime.IsPlaying()) 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +false 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションが再生中かどうかを示します。 (1.8.2a) 
 + 
 +===== Play() ===== 
 + 
 +**Play: fun(isloop: bool)** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    SubitemAnime.Play(false) 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +1回だけアニメーションが再生されます。 
 +</​code>​ 
 + 
 +説明\\ 
 +引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。 
 + 
 +===== PlayFromIndex() ===== 
 + 
 +**PlayFromIndex:​ fun(index: number, isloop: bool)** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    SubitemAnime.PlayFromIndex(0,​ true) 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +インデックス番号0のアニメーションがループ再生されます。 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションをインデックス番号で指定して再生します。 
 +引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。 
 + 
 +===== PlayFromName() ===== 
 + 
 +**PlayFromName:​ fun(name: string, isloop: bool)** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    SubitemAnime.PlayFromName('​Anim1',​ true) 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +ファイル名'​Anim1'​のアニメーションがループ再生されます。 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションをファイル名で指定して再生します。 
 +引数に true を入れた場合ループ再生し、false の場合1回だけ再生されます。 
 + 
 +===== PlayOneShot() ===== 
 + 
 +**PlayOneShot:​ fun()** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    SubitemAnime.PlayOneShot() 
 +end 
 +</​file>​ 
 +実行結果\\ 
 +<code lua> 
 +インデックス番号0のアニメーションを1回だけ再生します。 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションを1回だけ再生します。 
 +Play(false)に相当します。 
 + 
 +===== PlayWithState() ===== 
 + 
 +**PlayWithState:​ fun(name: string, states: string)** 
 + 
 +サンプル\\ 
 +<file lua 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 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +ファイル名"​Anim1"​のアニメーションがスピード0.8で再生と逆再生を繰り返します。 
 +</​code>​ 
 + 
 +説明\\ 
 +状態を指定して再生します。 (1.8.2a) 
 +^ 名前 ^ 型 ^ 説明 ^ 
 +|speed|number|再生速度を指定します。デフォルト値は1です。0未満を指定した場合逆再生になります。| 
 +|weight|number|ブレンドウェイトを指定します。デフォルト値は1です。0以上1以下の値を設定してください。| 
 +|wrap_mode |string|ラップモードを指定します。デフォルト値はonceです。once,​ loop, ping_pongを指定できます。| 
 + 
 +===== Blend() ===== 
 + 
 +**Blend: fun(name: string, options: string)** 
 + 
 +サンプル\\ 
 +<file lua 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 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +"​Anim1"​と"​Anim2"​をブレンドして再生します。 (1.8.2a) 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションをブレンドして再生します。 (1.8.2a) 
 +^ 名前 ^ 型 ^ 説明 ^ 
 +|target_weight |number|ブレンドウェイトを指定します。デフォルト値は1です。0以上の値を設定してください。| 
 +|fade_length |number|フェード時間(秒)を指定します。デフォルト値は0.3秒です。0以上の値を指定してください。| 
 + 
 +UnityのAnimation.Blendに相当する機能です。 
 +[[https://​docs.unity3d.com/​jp/​460/​ScriptReference/​Animation.Blend.html|Animation.Blend]] 
 + 
 +===== CrossFade() ===== 
 + 
 +**CrossFade:​ fun(name: string, options: string)** 
 + 
 +サンプル\\ 
 +<file lua 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 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +"​Anim1"​から"​Anim2"​にクロスフェードして再生します。 (1.8.2a) 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションをクロスフェードして再生します。 (1.8.2a) 
 +^ 名前 ^ 型 ^ 説明 ^ 
 +|fade_length |number|フェード時間(秒)を指定します。デフォルト値は0.3秒です。0以上の値を指定してください。| 
 + 
 +UnityのAnimation.CrossFadeに相当する機能です。 
 +[[https://​docs.unity3d.com/​jp/​460/​ScriptReference/​Animation.CrossFade.html|Animation.CrossFade]] 
 + 
 +オプションを指定しない場合は、空文字列を渡してください。 
 + 
 +===== SetState() ===== 
 + 
 +**SetState: fun(name: string, states: string)** 
 + 
 +サンプル\\ 
 +<file lua 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 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +"​Anim1"​の状態を速度1でループ再生に設定します。 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションの状態を指定します。 (1.8.2a) 
 +^ 名前 ^ 型 ^ 説明 ^ 
 +|speed|number|再生速度を指定します。デフォルト値は1です。0以上の値を設定してください。| 
 +|weight|number|ブレンドウェイトを指定します。デフォルト値は1です。0以上1以下の値を設定してください。| 
 +|wrap_mode |string|ラップモードを指定します。デフォルト値はonceです。once,​ loop, ping_pongを指定できます。| 
 + 
 +===== Stop() ===== 
 + 
 +**Stop: fun()** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    SubitemAnime.Stop() 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +再生されているアニメーションが停止します。 
 +</​code>​ 
 + 
 +説明\\ 
 +アニメーションの再生を停止します。 
 + 
 +===== Rewind() ===== 
 + 
 +**Rewind: fun()** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +local Anime = vci.assets.GetTransform("​Anime"​) 
 +local SubitemAnime = Anime.GetAnimation() 
 +function onUse(use) 
 +    SubitemAnime.Rewind() 
 +end 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +アニメーションを最初から再生し直します。 
 +</​code>​ 
 + 
 +説明\\ 
 +再生中のアニメーションを巻き戻します。 (1.8.2a) 
 + 
 +===== サンプル ===== 
 + 
 +**** 
 + 
 +サンプル\\ 
 +<file lua main.lua>​ 
 +</​file>​ 
 + 
 +実行結果\\ 
 +<code lua> 
 +</​code>​ 
 + 
 +説明\\ 
  
-**解説**\\ 
vci/script/reference/exportanimation.1574929144.txt.gz · 最終更新: 2019/11/28 17:19 by fumo

ページ用ツール