Caching(Scrubbing) seems to fail with Path Constraint
#1
When I use a path constraint on an object that I'm using as "Position Object" and as "Object Bind(Surface)" for tyFlow, there seem to be an issue with the caching.

It calculates the whole sequence every time I scrub the timeline(Regardless if I select the last frame and let it calculate to it).
It calculates the whole sequence every frame in a render:
If I do a render of frame 0-480
when it renders frame 0, tyflow calculates frame 0
when it renders frame 1, tyflow calculates frame 0,1
when it renders frame 2, tyflow calculates frame 0,1,2
when it renders frame 3, tyflow calculates frame 0,1,2,3
when it renders frame 480, tyflow calculates frame 0..480

If I bake the animation of the object, everything work as I expect, only 1 calculation per frame, and if allowed to cache(go to frame 480) nothing else is calculated after that point in time.

I suspect it's something to do with the calculated nature of Path Constraints (Percent of path)

Version:
tyFlow Free
v1.027

It seem to be something else.
When I tried replicating the issue I was unable to do so.
I even tried importing the tyFlow object from the scene where I had issues and it did not cause any issues in the new Scene.

You can ignore this.

I've been able to narrow it down to the spline I used at the source as the problem, so I should be able to recreate and move on with my project.
It turned out that I at some point managed to animate one of the vertexes(only one keyframe, so I'm a bit unclear why it would cause tyFlow to spasm).


But as I said I'm good now and can continue.


here is the spline if it's useful(FBX, ASCII):
Code:
; FBX 7.4.0 project file
; ----------------------------------------------------

FBXHeaderExtension:  {
    FBXHeaderVersion: 1003
    FBXVersion: 7400
    CreationTimeStamp:  {
        Version: 1000
        Year: 2023
        Month: 9
        Day: 10
        Hour: 12
        Minute: 19
        Second: 7
        Millisecond: 739
    }
    Creator: "FBX SDK/FBX Plugins version 2020.3"
    SceneInfo: "SceneInfo::GlobalInfo", "UserData" {
        Type: "UserData"
        Version: 100
        MetaData:  {
            Version: 100
            Title: ""
            Subject: ""
            Author: ""
            Keywords: ""
            Revision: ""
            Comment: ""
        }
        Properties70:  {
            P: "DocumentUrl", "KString", "Url", "", "C:\Users\Admin\Desktop\Paths.fbx"
            P: "SrcDocumentUrl", "KString", "Url", "", "C:\Users\Admin\Desktop\Paths.fbx"
            P: "Original", "Compound", "", ""
            P: "Original|ApplicationVendor", "KString", "", "", "Autodesk"
            P: "Original|ApplicationName", "KString", "", "", "3ds Max"
            P: "Original|ApplicationVersion", "KString", "", "", "2023"
            P: "Original|DateTime_GMT", "DateTime", "", "", "10/09/2023 10:19:07.738"
            P: "Original|FileName", "KString", "", "", "C:\Users\Admin\Desktop\Paths.fbx"
            P: "LastSaved", "Compound", "", ""
            P: "LastSaved|ApplicationVendor", "KString", "", "", "Autodesk"
            P: "LastSaved|ApplicationName", "KString", "", "", "3ds Max"
            P: "LastSaved|ApplicationVersion", "KString", "", "", "2023"
            P: "LastSaved|DateTime_GMT", "DateTime", "", "", "10/09/2023 10:19:07.738"
            P: "Original|ApplicationActiveProject", "KString", "", "", "C:\Users\Admin\Documents\3ds Max 2023"
            P: "Original|ApplicationNativeFile", "KString", "", "", "E:\Renders\Competition\Weekly_132_TooClose\Scene\TooClose_004.max"
        }
    }
}
GlobalSettings:  {
    Version: 1000
    Properties70:  {
        P: "UpAxis", "int", "Integer", "",1
        P: "UpAxisSign", "int", "Integer", "",1
        P: "FrontAxis", "int", "Integer", "",2
        P: "FrontAxisSign", "int", "Integer", "",1
        P: "CoordAxis", "int", "Integer", "",0
        P: "CoordAxisSign", "int", "Integer", "",1
        P: "OriginalUpAxis", "int", "Integer", "",2
        P: "OriginalUpAxisSign", "int", "Integer", "",1
        P: "UnitScaleFactor", "double", "Number", "",1
        P: "OriginalUnitScaleFactor", "double", "Number", "",1
        P: "AmbientColor", "ColorRGB", "Color", "",0.490195989608765,0.490195989608765,0.490195989608765
        P: "DefaultCamera", "KString", "", "", "Producer Top"
        P: "TimeMode", "enum", "", "",11
        P: "TimeProtocol", "enum", "", "",2
        P: "SnapOnFrameMode", "enum", "", "",0
        P: "TimeSpanStart", "KTime", "Time", "",0
        P: "TimeSpanStop", "KTime", "Time", "",923723160000
        P: "CustomFrameRate", "double", "Number", "",-1
        P: "TimeMarker", "Compound", "", ""
        P: "CurrentTimeMarker", "int", "Integer", "",-1
    }
}

; Documents Description
;------------------------------------------------------------------

Documents:  {
    Count: 1
    Document: 1344173761232, "", "Scene" {
        Properties70:  {
            P: "SourceObject", "object", "", ""
            P: "ActiveAnimStackName", "KString", "", "", ""
        }
        RootNode: 0
    }
}

; Document References
;------------------------------------------------------------------

References:  {
}

; Object definitions
;------------------------------------------------------------------

Definitions:  {
    Version: 100
    Count: 5
    ObjectType: "GlobalSettings" {
        Count: 1
    }
    ObjectType: "AnimationStack" {
        Count: 1
        PropertyTemplate: "FbxAnimStack" {
            Properties70:  {
                P: "Description", "KString", "", "", ""
                P: "LocalStart", "KTime", "Time", "",0
                P: "LocalStop", "KTime", "Time", "",0
                P: "ReferenceStart", "KTime", "Time", "",0
                P: "ReferenceStop", "KTime", "Time", "",0
            }
        }
    }
    ObjectType: "AnimationLayer" {
        Count: 1
        PropertyTemplate: "FbxAnimLayer" {
            Properties70:  {
                P: "Weight", "Number", "", "A",100
                P: "Mute", "bool", "", "",0
                P: "Solo", "bool", "", "",0
                P: "Lock", "bool", "", "",0
                P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8
                P: "BlendMode", "enum", "", "",0
                P: "RotationAccumulationMode", "enum", "", "",0
                P: "ScaleAccumulationMode", "enum", "", "",0
                P: "BlendModeBypass", "ULongLong", "", "",0
            }
        }
    }
    ObjectType: "Model" {
        Count: 1
        PropertyTemplate: "FbxNode" {
            Properties70:  {
                P: "QuaternionInterpolate", "enum", "", "",0
                P: "RotationOffset", "Vector3D", "Vector", "",0,0,0
                P: "RotationPivot", "Vector3D", "Vector", "",0,0,0
                P: "ScalingOffset", "Vector3D", "Vector", "",0,0,0
                P: "ScalingPivot", "Vector3D", "Vector", "",0,0,0
                P: "TranslationActive", "bool", "", "",0
                P: "TranslationMin", "Vector3D", "Vector", "",0,0,0
                P: "TranslationMax", "Vector3D", "Vector", "",0,0,0
                P: "TranslationMinX", "bool", "", "",0
                P: "TranslationMinY", "bool", "", "",0
                P: "TranslationMinZ", "bool", "", "",0
                P: "TranslationMaxX", "bool", "", "",0
                P: "TranslationMaxY", "bool", "", "",0
                P: "TranslationMaxZ", "bool", "", "",0
                P: "RotationOrder", "enum", "", "",0
                P: "RotationSpaceForLimitOnly", "bool", "", "",0
                P: "RotationStiffnessX", "double", "Number", "",0
                P: "RotationStiffnessY", "double", "Number", "",0
                P: "RotationStiffnessZ", "double", "Number", "",0
                P: "AxisLen", "double", "Number", "",10
                P: "PreRotation", "Vector3D", "Vector", "",0,0,0
                P: "PostRotation", "Vector3D", "Vector", "",0,0,0
                P: "RotationActive", "bool", "", "",0
                P: "RotationMin", "Vector3D", "Vector", "",0,0,0
                P: "RotationMax", "Vector3D", "Vector", "",0,0,0
                P: "RotationMinX", "bool", "", "",0
                P: "RotationMinY", "bool", "", "",0
                P: "RotationMinZ", "bool", "", "",0
                P: "RotationMaxX", "bool", "", "",0
                P: "RotationMaxY", "bool", "", "",0
                P: "RotationMaxZ", "bool", "", "",0
                P: "InheritType", "enum", "", "",0
                P: "ScalingActive", "bool", "", "",0
                P: "ScalingMin", "Vector3D", "Vector", "",0,0,0
                P: "ScalingMax", "Vector3D", "Vector", "",1,1,1
                P: "ScalingMinX", "bool", "", "",0
                P: "ScalingMinY", "bool", "", "",0
                P: "ScalingMinZ", "bool", "", "",0
                P: "ScalingMaxX", "bool", "", "",0
                P: "ScalingMaxY", "bool", "", "",0
                P: "ScalingMaxZ", "bool", "", "",0
                P: "GeometricTranslation", "Vector3D", "Vector", "",0,0,0
                P: "GeometricRotation", "Vector3D", "Vector", "",0,0,0
                P: "GeometricScaling", "Vector3D", "Vector", "",1,1,1
                P: "MinDampRangeX", "double", "Number", "",0
                P: "MinDampRangeY", "double", "Number", "",0
                P: "MinDampRangeZ", "double", "Number", "",0
                P: "MaxDampRangeX", "double", "Number", "",0
                P: "MaxDampRangeY", "double", "Number", "",0
                P: "MaxDampRangeZ", "double", "Number", "",0
                P: "MinDampStrengthX", "double", "Number", "",0
                P: "MinDampStrengthY", "double", "Number", "",0
                P: "MinDampStrengthZ", "double", "Number", "",0
                P: "MaxDampStrengthX", "double", "Number", "",0
                P: "MaxDampStrengthY", "double", "Number", "",0
                P: "MaxDampStrengthZ", "double", "Number", "",0
                P: "PreferedAngleX", "double", "Number", "",0
                P: "PreferedAngleY", "double", "Number", "",0
                P: "PreferedAngleZ", "double", "Number", "",0
                P: "LookAtProperty", "object", "", ""
                P: "UpVectorProperty", "object", "", ""
                P: "Show", "bool", "", "",1
                P: "NegativePercentShapeSupport", "bool", "", "",1
                P: "DefaultAttributeIndex", "int", "Integer", "",-1
                P: "Freeze", "bool", "", "",0
                P: "LODBox", "bool", "", "",0
                P: "Lcl Translation", "Lcl Translation", "", "A",0,0,0
                P: "Lcl Rotation", "Lcl Rotation", "", "A",0,0,0
                P: "Lcl Scaling", "Lcl Scaling", "", "A",1,1,1
                P: "Visibility", "Visibility", "", "A",1
                P: "Visibility Inheritance", "Visibility Inheritance", "", "",1
            }
        }
    }
    ObjectType: "Geometry" {
        Count: 1
        PropertyTemplate: "FbxLine" {
            Properties70:  {
                P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8
                P: "BBoxMin", "Vector3D", "Vector", "",0,0,0
                P: "BBoxMax", "Vector3D", "Vector", "",0,0,0
                P: "Primary Visibility", "bool", "", "",1
                P: "Casts Shadows", "bool", "", "",1
                P: "Receive Shadows", "bool", "", "",1
                P: "Renderable", "bool", "", "",0
            }
        }
    }
}

; Object properties
;------------------------------------------------------------------

Objects:  {
    Geometry: 1343765270080, "Geometry::", "Line" {
        Properties70:  {
            P: "Color", "ColorRGB", "Color", "",0.6,0.894117647058824,0.72156862745098
        }
        GeometryVersion: 124
        Type: "Line"
        LineVersion: 100
        Points: *96 {
            a: -6.193603515625,6940.78564453125,0,-1379.37048339844,6954.5224609375,0,-1816.50268554688,6939.94677734375,0,-2015.62683105469,6923.36962890625,0,-2202.32885742188,6901.0478515625,0,-2377.013671875,6873.31640625,0,-2540.0849609375,6840.51123046875,0,-2691.94799804688,6802.96875,0,-2833.0068359375,6761.0234375,0,-2963.666015625,6715.01318359375,0,-3084.33056640625,6665.27294921875,0,-3195.404296875,6612.1357421875,0,-3297.29150390625,6555.94140625,0,-3390.3974609375,6497.0234375,0,-3475.12622070312,6435.71728515625,0,-3551.88256835938,6372.35986328125,0,-3621.07055664062,6307.28759765625,0,-3683.09448242188,6240.83447265625,0,-3738.35986328125,6173.33740234375,0,-3787.27001953125,6105.1318359375,0,-3830.23046875,6036.55322265625,0,-3867.64501953125,5967.9375,0,-3899.9189453125,5899.6220703125,0,-3927.455078125,5831.939453125,0,-3950.65966796875,5765.228515625,0,-3969.93603515625,5699.82275390625,0,-3985.689453125,5636.0595703125,0,-3998.32397460938,5574.2734375,0,-4008.244140625,5514.8017578125,0,-4021.56005859375,5404.140625,0,-4028.87255859375,5306.7626953125,0,-3990.09423828125,-22995.826171875,0
        }
        PointsIndex: *32 {
            a: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,-32
        }
        Properties70:  {
            P: "Color", "ColorRGB", "Color", "",0.6,0.894117647058824,0.72156862745098
        }
    }
    Model: 1342241985728, "Model::Road_Spline", "Line" {
        Version: 232
        Properties70:  {
            P: "PreRotation", "Vector3D", "Vector", "",-90,-0,0
            P: "RotationActive", "bool", "", "",1
            P: "InheritType", "enum", "", "",1
            P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
            P: "DefaultAttributeIndex", "int", "Integer", "",0
            P: "Lcl Translation", "Lcl Translation", "", "A",2898.1337890625,0,6839.00048828125
            P: "MaxHandle", "int", "Integer", "UH",44
        }
        Shading: T
        Culling: "CullingOff"
    }
    AnimationStack: 1344573525408, "AnimStack::Take 001", "" {
        Properties70:  {
            P: "LocalStop", "KTime", "Time", "",923723160000
            P: "ReferenceStop", "KTime", "Time", "",923723160000
        }
    }
    AnimationLayer: 1345342787728, "AnimLayer::BaseLayer", "" {
    }
}

; Object connections
;------------------------------------------------------------------

Connections:  {
    
    ;Model::Road_Spline, Model::RootNode
    C: "OO",1342241985728,0
    
    ;AnimLayer::BaseLayer, AnimStack::Take 001
    C: "OO",1345342787728,1344573525408
    
    ;Geometry::, Model::Road_Spline
    C: "OO",1343765270080,1342241985728
}
;Takes section
;----------------------------------------------------

Takes:  {
    Current: ""
    Take: "Take 001" {
        FileName: "Take_001.tak"
        LocalTime: 0,923723160000
        ReferenceTime: 0,923723160000
    }
}
  Reply
#2
Yes, you've run into an unfortunate (and known) Max bug - splines will send improper reset notifications if they have animated knots. So if you set any keys on spline knots, they'll repeatedly tell tyFlow (through Max's internal notification system) that the flow should be reset due to a changed dependency....so tyFlow (not knowing the source of the notification, and thus not being able to determine that it's a bug) will reset.

The solution is to remove the keyframes, or set the flow reset mode to "manual" (from the editor right click menu), then manually refresh the sim on demand.
  Reply


Forum Jump: