public ChannelInputs Update(ChannelInputs shapeInputs, FrameUpdateParameters updateParameters, ControlVertexInfo[] previousFrameControlVertexInfos) { ChannelInputs inputs = new ChannelInputs(shapeInputs); for (int idx = 0; idx < inputs.RawValues.Length; ++idx) { inputs.RawValues[idx] += model.Inputs.RawValues[idx]; } dragHandle.Update(updateParameters); DualQuaternion rootTransform = DualQuaternion.FromMatrix(dragHandle.Transform); var blendedPose = GetBlendedPose(updateParameters.Time); poser.Apply(inputs, blendedPose, rootTransform); ikAnimator.Update(updateParameters, inputs, previousFrameControlVertexInfos); proceduralAnimator.Update(updateParameters, inputs); return(inputs); }