コード例 #1
0
        public void LoadBoneAnim(FSKA.BoneAnimNode boneAnim)
        {
            listViewCustom2.BeginUpdate();
            listViewCustom2.Items.Clear();

            FSKA fska = (FSKA)boneAnim.Parent;

            if (boneAnim.BoneAnimU != null)
            {
                stPropertyGrid1.LoadProperty(boneAnim.BoneAnimU, onPropertyChanged);
            }
            else
            {
                stPropertyGrid1.LoadProperty(boneAnim.BoneAnim, onPropertyChanged);
            }

            frameCountLbl.Text     = $" / {fska.FrameCount}";
            currentFrameUD.Maximum = fska.FrameCount;

            return;

            fska.SetFrame(0);
            for (int frame = 0; frame < fska.FrameCount; frame++)
            {
                bool IsKeyed = boneAnim.HasKeyedFrames(frame);
                if (IsKeyed)
                {
                    KeyFrame key = new KeyFrame();
                    key.Frame = frame;
                    keyFrames.Add(key);

                    Vector3 pos = boneAnim.GetPosition(frame);
                    var     rot = boneAnim.GetRotation(frame);
                    Vector3 sca = boneAnim.GetScale(frame);

                    key.PosX = pos.X;
                    key.PosY = pos.Y;
                    key.PosZ = pos.Z;

                    key.PosX = rot.X;
                    key.PosY = rot.Y;
                    key.PosZ = rot.Z;
                    key.RotW = rot.W;

                    key.ScaX = sca.X;
                    key.ScaY = sca.Y;
                    key.ScaZ = sca.Z;

                    listViewCustom2.Items.Add(key.Frame.ToString()).SubItems.AddRange(
                        new ListViewItem.ListViewSubItem[]
                    {
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.ScaX.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.ScaY.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.ScaZ.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotX.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotY.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotZ.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotW.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.PosX.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.PosY.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.PosZ.ToString()
                        },
                    });
                }
            }
            listViewCustom2.EndUpdate();
        }
コード例 #2
0
        private static BoneAnim createBoneAnim(Animation.KeyNode bone, FSKA anim)
        {
            BoneAnim boneAnim = new BoneAnim();

            boneAnim.Name = bone.Name;
            var posx = bone.XPOS.GetValue(0);
            var posy = bone.YPOS.GetValue(0);
            var posz = bone.ZPOS.GetValue(0);
            var scax = bone.XSCA.GetValue(0);
            var scay = bone.YSCA.GetValue(0);
            var scaz = bone.ZSCA.GetValue(0);
            var rotx = bone.XROT.GetValue(0);
            var roty = bone.YROT.GetValue(0);
            var rotz = bone.ZROT.GetValue(0);
            var rotw = bone.WROT.GetValue(0);

            BoneAnimData boneBaseData = new BoneAnimData();

            boneBaseData.Translate      = new Syroot.Maths.Vector3F(posx, posy, posz);
            boneBaseData.Scale          = new Syroot.Maths.Vector3F(scax, scay, scaz);
            boneBaseData.Rotate         = new Syroot.Maths.Vector4F(rotx, roty, rotz, rotw);
            boneAnim.BaseData           = boneBaseData;
            boneAnim.BeginBaseTranslate = 0;
            boneAnim.BeginRotate        = 0;
            boneAnim.BeginTranslate     = 0;
            boneAnim.Curves             = new List <AnimCurve>();
            boneAnim.FlagsBase          = BoneAnimFlagsBase.Translate | BoneAnimFlagsBase.Scale | BoneAnimFlagsBase.Rotate;
            boneAnim.FlagsTransform     = BoneAnimFlagsTransform.Identity;

            if (bone.XPOS.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.TranslateX;
                boneAnim.Curves.Add(SetAnimationCurve(bone.XPOS));
            }
            if (bone.YPOS.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.TranslateY;
                boneAnim.Curves.Add(SetAnimationCurve(bone.YPOS));
            }
            if (bone.ZPOS.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.TranslateZ;
                boneAnim.Curves.Add(SetAnimationCurve(bone.ZPOS));
            }
            if (bone.XSCA.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.ScaleX;
                boneAnim.Curves.Add(SetAnimationCurve(bone.XSCA));
            }
            if (bone.YSCA.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.ScaleY;
                boneAnim.Curves.Add(SetAnimationCurve(bone.YSCA));
            }
            if (bone.ZSCA.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.ScaleZ;
                boneAnim.Curves.Add(SetAnimationCurve(bone.ZSCA));
            }
            if (bone.XROT.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.RotateX;
                boneAnim.Curves.Add(SetAnimationCurve(bone.XROT));
            }
            if (bone.YROT.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.RotateY;
                boneAnim.Curves.Add(SetAnimationCurve(bone.YROT));
            }
            if (bone.ZROT.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.RotateZ;
                boneAnim.Curves.Add(SetAnimationCurve(bone.ZROT));
            }
            if (bone.WROT.HasAnimation())
            {
                boneAnim.FlagsCurve |= BoneAnimFlagsCurve.RotateW;
                boneAnim.Curves.Add(SetAnimationCurve(bone.WROT));
            }

            return(boneAnim);
        }
コード例 #3
0
        public void LoadBoneAnim(FSKA.BoneAnimNode boneAnim)
        {
            objectListView1.BeginUpdate();
            objectListView1.ClearObjects();
            objectListView1.ShowGroups = false;

            FSKA fska = (FSKA)boneAnim.Parent;

            if (boneAnim.BoneAnimU != null)
            {
                stPropertyGrid1.LoadProperty(boneAnim.BoneAnimU, onPropertyChanged);
            }
            else
            {
                stPropertyGrid1.LoadProperty(boneAnim.BoneAnim, onPropertyChanged);
            }

            frameCountLbl.Text     = $" / {fska.FrameCount}";
            currentFrameUD.Maximum = fska.FrameCount;

            for (int frame = 0; frame < fska.FrameCount; frame++)
            {
                bool IsKeyed = (boneAnim.XPOS.HasAnimation() && boneAnim.XPOS.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.YPOS.HasAnimation() && boneAnim.YPOS.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.ZPOS.HasAnimation() && boneAnim.ZPOS.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.XROT.HasAnimation() && boneAnim.XROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.YROT.HasAnimation() && boneAnim.YROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.ZROT.HasAnimation() && boneAnim.ZROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.WROT.HasAnimation() && boneAnim.WROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.XSCA.HasAnimation() && boneAnim.XSCA.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.YSCA.HasAnimation() && boneAnim.YSCA.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.ZSCA.HasAnimation() && boneAnim.ZSCA.GetKeyFrame(frame).IsKeyed);

                if (IsKeyed)
                {
                    KeyFrame key = new KeyFrame();
                    key.Frame = frame;

                    //Load position
                    if (boneAnim.XPOS.HasAnimation())
                    {
                        key.PosX = boneAnim.XPOS.GetValue(frame);
                    }
                    if (boneAnim.YPOS.HasAnimation())
                    {
                        key.PosY = boneAnim.YPOS.GetValue(frame);
                    }
                    if (boneAnim.ZPOS.HasAnimation())
                    {
                        key.PosZ = boneAnim.ZPOS.GetValue(frame);
                    }

                    //Load Rotation
                    if (boneAnim.XROT.HasAnimation())
                    {
                        key.RotX = boneAnim.XROT.GetValue(frame);
                    }
                    if (boneAnim.YROT.HasAnimation())
                    {
                        key.RotY = boneAnim.YROT.GetValue(frame);
                    }
                    if (boneAnim.ZROT.HasAnimation())
                    {
                        key.RotZ = boneAnim.ZROT.GetValue(frame);
                    }
                    if (boneAnim.WROT.HasAnimation())
                    {
                        key.RotW = boneAnim.WROT.GetValue(frame);
                    }

                    //Load Scale
                    if (boneAnim.XSCA.HasAnimation())
                    {
                        key.ScaX = boneAnim.XSCA.GetValue(frame);
                    }
                    if (boneAnim.YSCA.HasAnimation())
                    {
                        key.ScaY = boneAnim.YSCA.GetValue(frame);
                    }
                    if (boneAnim.ZSCA.HasAnimation())
                    {
                        key.ScaZ = boneAnim.ZSCA.GetValue(frame);
                    }

                    objectListView1.AddObject(key);
                }
            }
            objectListView1.EndUpdate();
        }
コード例 #4
0
        public void LoadBoneAnim(FSKA.BoneAnimNode boneAnim)
        {
            listViewCustom2.BeginUpdate();
            listViewCustom2.Items.Clear();


            FSKA fska = (FSKA)boneAnim.Parent;

            if (boneAnim.BoneAnimU != null)
            {
                stPropertyGrid1.LoadProperty(boneAnim.BoneAnimU, onPropertyChanged);
            }
            else
            {
                stPropertyGrid1.LoadProperty(boneAnim.BoneAnim, onPropertyChanged);
            }

            frameCountLbl.Text     = $" / {fska.FrameCount}";
            currentFrameUD.Maximum = fska.FrameCount;

            for (int frame = 0; frame < fska.FrameCount; frame++)
            {
                bool IsKeyed = (boneAnim.XPOS.HasAnimation() && boneAnim.XPOS.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.YPOS.HasAnimation() && boneAnim.YPOS.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.ZPOS.HasAnimation() && boneAnim.ZPOS.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.XROT.HasAnimation() && boneAnim.XROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.YROT.HasAnimation() && boneAnim.YROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.ZROT.HasAnimation() && boneAnim.ZROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.WROT.HasAnimation() && boneAnim.WROT.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.XSCA.HasAnimation() && boneAnim.XSCA.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.YSCA.HasAnimation() && boneAnim.YSCA.GetKeyFrame(frame).IsKeyed ||
                                boneAnim.ZSCA.HasAnimation() && boneAnim.ZSCA.GetKeyFrame(frame).IsKeyed);

                if (IsKeyed)
                {
                    KeyFrame key = new KeyFrame();
                    key.Frame = frame;
                    keyFrames.Add(key);

                    //Load position
                    if (boneAnim.XPOS.HasAnimation())
                    {
                        key.PosX = boneAnim.XPOS.GetValue(frame);
                    }
                    if (boneAnim.YPOS.HasAnimation())
                    {
                        key.PosY = boneAnim.YPOS.GetValue(frame);
                    }
                    if (boneAnim.ZPOS.HasAnimation())
                    {
                        key.PosZ = boneAnim.ZPOS.GetValue(frame);
                    }

                    //Load Rotation
                    if (boneAnim.XROT.HasAnimation())
                    {
                        key.RotX = boneAnim.XROT.GetValue(frame);
                    }
                    if (boneAnim.YROT.HasAnimation())
                    {
                        key.RotY = boneAnim.YROT.GetValue(frame);
                    }
                    if (boneAnim.ZROT.HasAnimation())
                    {
                        key.RotZ = boneAnim.ZROT.GetValue(frame);
                    }
                    if (boneAnim.WROT.HasAnimation())
                    {
                        key.RotW = boneAnim.WROT.GetValue(frame);
                    }

                    //Load Scale
                    if (boneAnim.XSCA.HasAnimation())
                    {
                        key.ScaX = boneAnim.XSCA.GetValue(frame);
                    }
                    if (boneAnim.YSCA.HasAnimation())
                    {
                        key.ScaY = boneAnim.YSCA.GetValue(frame);
                    }
                    if (boneAnim.ZSCA.HasAnimation())
                    {
                        key.ScaZ = boneAnim.ZSCA.GetValue(frame);
                    }

                    listViewCustom2.Items.Add(key.Frame.ToString()).SubItems.AddRange(
                        new ListViewItem.ListViewSubItem[]
                    {
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.PosX.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.PosY.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.PosZ.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotX.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotY.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotZ.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.RotW.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.ScaX.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.ScaY.ToString()
                        },
                        new ListViewItem.ListViewSubItem()
                        {
                            Text = key.ScaZ.ToString()
                        },
                    });
                }
            }
            listViewCustom2.EndUpdate();
        }