示例#1
0
    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);
    }