====== パラパラ漫画アニメーション ====== このサンプルは[[vci/sample/onuse/no5|「切り替えポスター」]]の応用になります。\\ [[https://developer.virtualcast.jp/vci-docs/api/classes/ExportMaterial/SetTextureOffset.html|SetTextureOffset]] を利用して、タイリングされたテクスチャを自動で切り替えてパラパラ漫画のようなアニメーションをさせることができます。\\ === サンプルデータ === https://virtualcast.jp/products/c6b9435426795fcc1cfee8312c34f6d51a1c2f2688d0d3ea03287f149e73b6e0 {{ :vci:sample:material:パラパラ漫画アニメーション.zip |}} ==== 画像作成 ==== モデルに割り当てるUVは4x4の1マス分を指定しています。\\ (UVの設定はblender、Mayaなどの3Dツールをご使用ください)\\ \\ {{vci:sample:material:tutorial_paraanim1.png?400|}} 使用しているテクスチャは以下のように4x4に画像をタイリングしたものを\\ 「**vci.assets._ALL_SetMaterialTextureOffsetFromIndex**」でUVのOffset移動を行っています。 Material名を指定する「**vci.assets._ALL_SetMaterialTextureOffsetFromName**」でも変更可能です。\\ 本サンプルでは「v」というMaterial名で指定できます。 {{vci:sample:material:tutorial_paraanim2.png?400|}} \\ 左から右、上から下の順番でカウントされていきます ===== VCIスクリプト ===== local assets = vci.assets local count = 0 local timecount=0 --共通変数による同期管理部分 if vci.state.Get("COUNT") then count = vci.state.Get("COUNT") end --全体の切り替え枚数 今回は4X4 local TOTAL = 16 --縦と横の分割数 4 function SetTextureOffset( count ) local offset = Vector2.zero -- y shift local Yshift = math.floor(count / 4) offset.y = -(1/4) * Yshift -- x shift local Xshift = count % 4 offset.x = (1/4) * Xshift assets.material._ALL_SetTextureOffsetFromIndex(0, offset) end SetTextureOffset(count) function update() timecount=timecount+1 --何フレームごとに画像を切り替えるか if timecount>3 then anim() timecount=0 end end --自作関数 function anim() if count >= TOTAL then count = 0 else count = count + 1 end vci.state.Set("COUNT", count) SetTextureOffset(count) end