Caching(Scrubbing) seems to fail with Path Constraint - ELiZ_Swe - 09-10-2023
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
}
}
RE: Caching(Scrubbing) seems to fail with Path Constraint - tyFlow - 09-10-2023
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.
|