public NewHavokAnimation(HavokAnimationData data, NewAnimSkeleton_HKX skeleton, NewAnimationContainer container) { this.data = data; ParentContainer = container; Skeleton = skeleton; lock (_lock_boneMatrixStuff) { blendableTransforms = new NewBlendableTransform[skeleton.HkxSkeleton.Count]; } RootMotion = new RootMotionDataPlayer(data.RootMotion); }
public void MapToSkeleton(NewAnimSkeleton_HKX skel, bool isRemo) { //if (MODEL.Name.StartsWith("o")) //{ // Console.WriteLine("test"); //} for (int i = 0; i < FlverSkeleton.Count; i++) { var bone = FlverSkeleton[i]; string hkxBoneName = isRemo ? ((bone.Name.ToUpper() == "MASTER" || i == 0) ? MODEL.Name : $"{MODEL.Name}_{bone.Name}") : bone.Name; int boneIndex = skel.HkxSkeleton.FindIndex(b => b.Name == hkxBoneName); bone.HkxBoneIndex = boneIndex; } HavokSkeletonThisIsMappedTo = skel; }
public NewHavokAnimation_InterleavedUncompressed(string name, NewAnimSkeleton_HKX skeleton, HKX.HKADefaultAnimatedReferenceFrame refFrame, HKX.HKAAnimationBinding binding, HKX.HKAInterleavedUncompressedAnimation anim, NewAnimationContainer container) : base(new HavokAnimationData_InterleavedUncompressed(name, skeleton.OriginalHavokSkeleton, refFrame, binding, anim), skeleton, container) { }