Esempio n. 1
0
 public MeshGroupFrame CreateMeshGroupFrame(string aniname, int frameid)
 {
     Debug.Log("CreateMeshGroupFrame:" + aniname + "," + frameid);
     ha_ani_tool.hadata.AniRuntime ani = getAniRunTime(aniname);
     if (ani != null)
     {
         MeshGroupFrame f = new MeshGroupFrame();
         CreateMesh(f, ani.frames[frameid]);
         return(f);
     }
     return(null);
 }
Esempio n. 2
0
 public int GetMeshGroupMaxFrame(string aniname)
 {
     Debug.Log("GetMeahGroupMaxFrame:" + aniname);
     ha_ani_tool.hadata.AniRuntime ani = getAniRunTime(aniname);
     if (ani != null)
     {
         return(ani.MaxFrame);
     }
     else
     {
         return(-1);
     }
 }
Esempio n. 3
0
        public static AniRuntime CreateFrom(puppetanimdata data)
        {
            AniRuntime ar = new AniRuntime();

            foreach (var node in data.nodes)
            {
                foreach (var frame in node.frames)
                {
                    int iframe = (int)Math.Round(frame.time * 24);
                    if (iframe > ar.MaxFrame)
                    {
                        ar.MaxFrame = iframe;
                    }
                    if (ar.frames.ContainsKey(iframe) == false)
                    {
                        for (int i = 0; i <= iframe; i++)
                        {
                            if (ar.frames.ContainsKey(i) == false)
                            {
                                ar.frames[i] = new Dictionary <string, Node.Frame>();
                            }
                        }
                    }
                    ar.frames[iframe][node.name] = frame;
                }
            }
            foreach (var node in data.nodes)
            {
                for (int i = 0; i <= ar.MaxFrame; i++)
                {
                    if (!ar.frames[i].ContainsKey(node.name) && i > 0)
                    {
                        if (ar.frames[i - 1].ContainsKey(node.name))
                        {
                            ar.frames[i][node.name] = ar.frames[i - 1][node.name];
                        }
                    }
                }
            }
            return(ar);
        }
Esempio n. 4
0
        public static AniRuntime CreateFrom(puppetanimdata data)
        {
            AniRuntime ar = new AniRuntime();
            foreach (var node in data.nodes)
            {
                foreach (var frame in node.frames)
                {
                    int iframe = (int)Math.Round(frame.time * 24);
                    if (iframe > ar.MaxFrame) ar.MaxFrame = iframe;
                    if (ar.frames.ContainsKey(iframe) == false)
                    {
                        for (int i = 0; i <= iframe; i++)
                        {
                            if (ar.frames.ContainsKey(i) == false)
                            {
                                ar.frames[i] = new Dictionary<string, Node.Frame>();
                            }
                        }

                    }
                    ar.frames[iframe][node.name] = frame;
                }
            }
            foreach (var node in data.nodes)
            {
                for (int i = 0; i <= ar.MaxFrame; i++)
                {
                    if (!ar.frames[i].ContainsKey(node.name) && i > 0)
                    {
                        if (ar.frames[i - 1].ContainsKey(node.name))
                            ar.frames[i][node.name] = ar.frames[i - 1][node.name];
                    }
                }
            }
            return ar;
        }