public void MeshInSpaceAnimationController_CalculateBoneTransforms(NeoAxis.Component_MeshInSpaceAnimationController sender, NeoAxis.Component_SkeletonAnimationTrack.CalculateBoneTransformsItem[] result) { //to enable this event handler in the editor change "When Enable" property to "Simulation | Instance | Editor". //component: Character/Mesh In Space/C# Script/Event Handler CalculateBoneTransforms. var boneIndex = sender.GetBoneIndex("chest"); if (boneIndex != -1) { ref var item = ref result[boneIndex]; //calculate bone offset var angle = new Degree(60) * Math.Sin(Time.Current); var offset = Matrix3F.FromRotateByY((float)angle.InRadians()).ToQuaternion(); //update the bone item.Rotation *= offset; }
public static void FromRotateByY(RadianF angle, out QuaternionF result) { Matrix3F.FromRotateByY(angle, out var mat); mat.ToQuaternion(out result); }
public static QuaternionF FromRotateByY(RadianF angle) { Matrix3F.FromRotateByY(angle, out var mat); return(mat.ToQuaternion()); }