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(); }
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); }
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(); }
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(); }