public static ResNX.SkeletalAnim FSKAConvertWiiUToSwitch(ResU.SkeletalAnim skeletalAnimU) { ResNX.SkeletalAnim ska = new ResNX.SkeletalAnim(); ska.Name = skeletalAnimU.Name; ska.Path = skeletalAnimU.Path; ska.FrameCount = skeletalAnimU.FrameCount; ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.None; if (skeletalAnimU.FlagsScale.HasFlag(ResU.SkeletalAnimFlagsScale.Maya)) { ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.Maya; } if (skeletalAnimU.FlagsScale.HasFlag(ResU.SkeletalAnimFlagsScale.Softimage)) { ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.Softimage; } if (skeletalAnimU.FlagsScale.HasFlag(ResU.SkeletalAnimFlagsScale.Standard)) { ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.Standard; } ska.FrameCount = skeletalAnimU.FrameCount; ska.BindIndices = skeletalAnimU.BindIndices; ska.BakedSize = skeletalAnimU.BakedSize; ska.Loop = skeletalAnimU.Loop; ska.Baked = skeletalAnimU.Baked; foreach (var boneAnimU in skeletalAnimU.BoneAnims) { var boneAnim = new ResNX.BoneAnim(); ska.BoneAnims.Add(boneAnim); boneAnim.Name = boneAnimU.Name; boneAnim.BeginRotate = boneAnimU.BeginRotate; boneAnim.BeginTranslate = boneAnimU.BeginTranslate; boneAnim.BeginBaseTranslate = boneAnimU.BeginBaseTranslate; var baseData = new ResNX.BoneAnimData(); baseData.Translate = boneAnimU.BaseData.Translate; baseData.Scale = boneAnimU.BaseData.Scale; baseData.Rotate = boneAnimU.BaseData.Rotate; baseData.Flags = boneAnimU.BaseData.Flags; boneAnim.BaseData = baseData; boneAnim.FlagsBase = (ResNX.BoneAnimFlagsBase)boneAnimU.FlagsBase; boneAnim.FlagsCurve = (ResNX.BoneAnimFlagsCurve)boneAnimU.FlagsCurve; boneAnim.FlagsTransform = (ResNX.BoneAnimFlagsTransform)boneAnimU.FlagsTransform; boneAnim.Curves = ConvertAnimCurveWiiUToSwitch(boneAnimU.Curves); } return(ska); }
public static ResNX.SkeletalAnim FSKAConvertWiiUToSwitch(ResU.SkeletalAnim skeletalAnimU) { ResNX.SkeletalAnim ska = new ResNX.SkeletalAnim(); ska.Name = skeletalAnimU.Name; ska.Path = skeletalAnimU.Path; ska.FrameCount = skeletalAnimU.FrameCount; ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.None; if (skeletalAnimU.FlagsScale.HasFlag(ResU.SkeletalAnimFlagsScale.Maya)) { ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.Maya; } if (skeletalAnimU.FlagsScale.HasFlag(ResU.SkeletalAnimFlagsScale.Softimage)) { ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.Softimage; } if (skeletalAnimU.FlagsScale.HasFlag(ResU.SkeletalAnimFlagsScale.Standard)) { ska.FlagsScale = ResNX.SkeletalAnimFlagsScale.Standard; } ska.FrameCount = skeletalAnimU.FrameCount; ska.BindIndices = skeletalAnimU.BindIndices; ska.BakedSize = skeletalAnimU.BakedSize; ska.Loop = skeletalAnimU.Loop; ska.Baked = skeletalAnimU.Baked; foreach (var userDataU in skeletalAnimU.UserData) { var parser = new UserDataParser(); var userDataNX = new ResNX.UserData(); parser.Type = userDataU.Value.Type.ToString(); parser.UserDataName = userDataU.Value.Name; userDataNX.Name = parser.UserDataName; if (parser.Type == "Byte") { userDataNX.SetValue(parser.GetBytes()); } if (parser.Type == "Single") { parser.LoadValues(userDataU.Value.GetValueSingleArray()); } userDataNX.SetValue(parser.GetFloats()); if (parser.Type == "Int32") { userDataNX.SetValue(parser.GetInts()); } if (parser.Type == "String") { userDataNX.SetValue(parser.GetStringASCII()); } if (parser.Type == "WString") { userDataNX.SetValue(parser.GetStringUnicode()); } ska.UserDatas.Add(userDataNX); } foreach (var boneAnimU in skeletalAnimU.BoneAnims) { var boneAnim = new ResNX.BoneAnim(); ska.BoneAnims.Add(boneAnim); boneAnim.Name = boneAnimU.Name; boneAnim.BeginRotate = boneAnimU.BeginRotate; boneAnim.BeginTranslate = boneAnimU.BeginTranslate; boneAnim.BeginBaseTranslate = boneAnimU.BeginBaseTranslate; var baseData = new ResNX.BoneAnimData(); baseData.Translate = boneAnimU.BaseData.Translate; baseData.Scale = boneAnimU.BaseData.Scale; baseData.Rotate = boneAnimU.BaseData.Rotate; baseData.Flags = boneAnimU.BaseData.Flags; boneAnim.BaseData = baseData; boneAnim.FlagsBase = (ResNX.BoneAnimFlagsBase)boneAnimU.FlagsBase; boneAnim.FlagsCurve = (ResNX.BoneAnimFlagsCurve)boneAnimU.FlagsCurve; boneAnim.FlagsTransform = (ResNX.BoneAnimFlagsTransform)boneAnimU.FlagsTransform; boneAnim.Curves = ConvertAnimCurveWiiUToSwitch(boneAnimU.Curves); } return(ska); }