Skip to main content
Cloth Wave
preview · 1 / 2

Description

Cloth Wave

Drops a travelling ripple onto cloth flags, banners, capes, sails — where the crests actually crawl from the pinned edge out to the free edge, instead of the whole sheet rocking in place. It's a paste-in node group, not a material: you paste it into whatever material is on your cloth and plug its Result into World Position Offset.

The trick is the phase. It measures how far each vertex sits along your Wave Direction (in the mesh's own local space, so a flag rotated anywhere in the level still ripples mast-to-fly), divides that by Wavelength, and subtracts Time x Wave Speed. Feed that into a sine and you get a wave whose crests move down the sheet — a real travelling wave, no flow texture, no scrolling normal map, just maths in the vertex shader. An Edge Pin ramp reads UV.x and pins the attached edge dead still while letting the fly end swing the full Wave Amplitude, so it cantilevers like cloth that's nailed down on one side. By default each vertex pushes along its own surface normal so the sheet billows out of plane; flip that off and it rides a fixed world axis instead for a stiff hanging banner. There's no per-frame reseeding anywhere — the phase is just panned by Time

It's a node group with no Material node in the paste, so the final hookup is on you (root-pin links never survive a T3D paste):

Settings you have to set

  • Material Domain stays Surface. Tick Used with Instanced Static Meshes / Used with Foliage if the cloth is placed that way — WPO runs in the vertex shader.
  • Your cloth mesh needs enough vertices to bend — a flag wants a dense grid, not two triangles. WPO moves vertices; if there are none across the span, there's nothing to ripple.
  • Wire the Result node (in the frame labelled Result -> World Position Offset) into the Material's World Position Offset pin.
  • Author your UVs so U = 0 is the attached/mast edge and U = 1 is the free/fly edge — that's the axis Edge Pin uses. (Standard flag UV layout already does this.)
  • WPO inflates the mesh's render bounds by the push distance. If you crank Wave Amplitude and see the flag pop in/out at screen edges, set Positive/Negative Bounds Extension on the static mesh.

Params:

  • Wave Amplitude, how far the free edge swings, in world units (cm). 0 = dead still.
  • Wavelength, object-space distance between crests, in local units. Roughly the cloth's own size gives one big lazy fold; small
material graph

Preview only · open in editor for full material editing

Want this graph on your blog or forum?

0 comments

Sign in to join the discussion.

No comments yet. Be the first.

source
View T3D source (121 KB)expand
Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_0"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C0"
   End Object
   Begin Object Name="MaterialExpressionComment_C0"
      SizeX=640
      SizeY=720
      Text="01 Wave"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-3360
      MaterialExpressionEditorY=-360
      MaterialExpressionGuid=7AE16EF853A913A7E12219E91E609123
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-3360
   NodePosY=-360
   NodeWidth=640
   NodeHeight=720
   NodeComment="01 Wave"
   NodeGuid=7771A41B8D78C01E61FF718C43F06E9F
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_1"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_1"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_1"
      ParameterName="Wave Amplitude"
      DefaultValue=12
      SliderMin=0
      SliderMax=60
      Group="01 Wave"
      SortPriority=0
      Desc="How far the cloth swings at the free edge, in world units (cm). 0 = dead still."
      MaterialExpressionEditorX=-3320
      MaterialExpressionEditorY=-280
      MaterialExpressionGuid=12CE95EDB8163920CB531C832EBF2886
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_1'"
   NodePosX=-3320
   NodePosY=-280
   NodeGuid=63E517624949C1E1CE87F32B81EC8311
   CustomProperties Pin (PinId=61FBF6D04772CEB8E7920B56830A226D,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_29 E9823E66676896BC2748EAAD99756801,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_2"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_2"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_2"
      ParameterName="Wavelength"
      DefaultValue=160
      SliderMin=10
      SliderMax=1000
      Group="01 Wave"
      SortPriority=1
      Desc="Object-space distance between wave crests, in local units. Roughly the cloth's own size for one big fold; smaller = more ripples across the sheet."
      MaterialExpressionEditorX=-3320
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=8943D1AC2BA1D84439D5F9F12A4AA8FF
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_2'"
   NodePosX=-3320
   NodePosY=-120
   NodeGuid=DC659180ED5A132E7EA11C39980FDFE1
   CustomProperties Pin (PinId=8E9C429D3A74EB1B379876EEF5A4FEFC,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_12 675C81D77332C5675CB310C90C7CF47D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_3"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_3"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_3"
      ParameterName="Wave Speed"
      DefaultValue=0.6
      SliderMin=0
      SliderMax=4
      Group="01 Wave"
      SortPriority=2
      Desc="How many crests pass a point per second — the travel speed of the ripple. 0 = a frozen wave shape."
      MaterialExpressionEditorX=-3320
      MaterialExpressionEditorY=40
      MaterialExpressionGuid=7ECBA3F394301F0694CAA156D3656F7C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_3'"
   NodePosX=-3320
   NodePosY=40
   NodeGuid=B2F401E5C7BDDEC80FEFD00BCA6A0FD6
   CustomProperties Pin (PinId=FBA7A8E6F8FD13A5B454D47FB25FF701,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_14 CBC77D6432D39A9B2FC89A53851989E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_4"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_4"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_4"
      ParameterName="Wave Direction"
      DefaultValue=(R=1,G=0,B=0,A=0)
      Group="01 Wave"
      SortPriority=3
      Desc="Object-XY direction the wave travels along (only X/Y used). (1,0) sends crests along local X — from mast to fly on a standard flag. Needn't be normalised."
      MaterialExpressionEditorX=-3320
      MaterialExpressionEditorY=200
      MaterialExpressionGuid=7D7225C4175119549D1981CFAF700BD5
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_4'"
   NodePosX=-3320
   NodePosY=200
   NodeGuid=EA517613E6A8F7245929B7309E40BF91
   CustomProperties Pin (PinId=3136C00C1C259CEEACCC254309460712,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 DB87F57A5EB90D7E386D084BC64D4378,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=81548DB0DF80AE1B50D3D62B427743CD,PinName="R",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A80CD64912F2A053BAA043559682DCBC,PinName="G",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4D568D4AD48EE2BFEC24BB3302198819,PinName="B",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9C7DCE85B772B4EC3CB0B62F555CBFAB,PinName="A",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_5"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C5"
   End Object
   Begin Object Name="MaterialExpressionComment_C5"
      SizeX=1500
      SizeY=760
      Text="02 Travelling Phase  (dist-along-axis / Wavelength - Time x Speed)"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2640
      MaterialExpressionEditorY=-400
      MaterialExpressionGuid=EC92644F9F9A51F10F4655BF8AB2A039
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C5'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2640
   NodePosY=-400
   NodeWidth=1500
   NodeHeight=760
   NodeComment="02 Travelling Phase  (dist-along-axis / Wavelength - Time x Speed)"
   NodeGuid=B8BC4F5F4281C9914D71E3F4B257FADF
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_6"
   Begin Object Class=/Script/Engine.MaterialExpressionLocalPosition Name="MaterialExpressionLocalPosition_6"
   End Object
   Begin Object Name="MaterialExpressionLocalPosition_6"
      Desc="Object-local vertex position — keeps the wave axis fixed to the mesh, so a flag rotated in the level still ripples mast-to-fly."
      MaterialExpressionEditorX=-2600
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=514B3DAE159883CC840EE8F7AF52EF07
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionLocalPosition'MaterialExpressionLocalPosition_6'"
   NodePosX=-2600
   NodePosY=-300
   NodeGuid=421E030CAED4AE4CD819E84ECA62B670
   CustomProperties Pin (PinId=7BC15E78E571C8FF4F947E15CC65FCC2,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_7 14D7A8389672DB2E2B1702EBC10B50B6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_7"
   End Object
   Begin Object Name="MaterialExpressionComponentMask_7"
      R=True
      G=True
      B=False
      A=False
      Input=(Expression="/Script/Engine.MaterialExpressionLocalPosition'MaterialGraphNode_6.MaterialExpressionLocalPosition_6'")
      MaterialExpressionEditorX=-2380
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=77BA937EF8389A02EA76BF5B1FB6EABD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionComponentMask'MaterialExpressionComponentMask_7'"
   NodePosX=-2380
   NodePosY=-300
   NodeGuid=149D40C330B6C10FBF1DF47EFFC7D424
   CustomProperties Pin (PinId=14D7A8389672DB2E2B1702EBC10B50B6,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_6 7BC15E78E571C8FF4F947E15CC65FCC2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=03FA8C0610333BF422B6B1772C2C2879,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 25DCD34D87F7417489E800AAB652A8D2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_8"
   Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_8"
   End Object
   Begin Object Name="MaterialExpressionComponentMask_8"
      R=True
      G=True
      B=False
      A=False
      Input=(Expression="/Script/Engine.MaterialExpressionVectorParameter'MaterialGraphNode_4.MaterialExpressionVectorParameter_4'")
      MaterialExpressionEditorX=-2380
      MaterialExpressionEditorY=-100
      MaterialExpressionGuid=AB9147944D547F1174073F50CC026F8A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionComponentMask'MaterialExpressionComponentMask_8'"
   NodePosX=-2380
   NodePosY=-100
   NodeGuid=7BB63BB3999FB23472AFAC9E231C8CC6
   CustomProperties Pin (PinId=DB87F57A5EB90D7E386D084BC64D4378,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_4 3136C00C1C259CEEACCC254309460712,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=EF2E66098A4887C987675468DE2522DA,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_9 6FE96480B41C66E0601EA5D3925B9B9A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_9"
   Begin Object Class=/Script/Engine.MaterialExpressionNormalize Name="MaterialExpressionNormalize_9"
   End Object
   Begin Object Name="MaterialExpressionNormalize_9"
      Desc="Unit travel direction in the object XY plane."
      Input=(Expression="/Script/Engine.MaterialExpressionComponentMask'MaterialGraphNode_8.MaterialExpressionComponentMask_8'")
      MaterialExpressionEditorX=-2180
      MaterialExpressionEditorY=-100
      MaterialExpressionGuid=4A6B17B256A36F99792CFA2B749E2074
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNormalize'MaterialExpressionNormalize_9'"
   NodePosX=-2180
   NodePosY=-100
   NodeGuid=9D7F3E7E9B2BF47365CDFF04C6E0A59F
   CustomProperties Pin (PinId=6FE96480B41C66E0601EA5D3925B9B9A,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_8 EF2E66098A4887C987675468DE2522DA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C7781A14CEAE55EF1D8FC1D83F04C7F7,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_10 D6A78274065C157579884F35F1BEE48C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_10"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_10"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_10"
      Name="WaveDir2D"
      NodeColor=(R=0.360000,G=0.610000,B=0.840000,A=1.000000)
      VariableGuid=7C1A3E9F2B6D4A18B5E07C24F1D3A960
      Desc="Bus: unit object-XY travel direction -> the axis-projection dot and the normal-perturbation tilt."
      Input=(Expression="/Script/Engine.MaterialExpressionNormalize'MaterialGraphNode_9.MaterialExpressionNormalize_9'")
      MaterialExpressionEditorX=-1980
      MaterialExpressionEditorY=-100
      MaterialExpressionGuid=52DCFDB6DF7BFE093E53E0718B790576
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_10'"
   NodePosX=-1980
   NodePosY=-100
   NodeGuid=04A6825CE149A0BD447275D52978578B
   CustomProperties Pin (PinId=D6A78274065C157579884F35F1BEE48C,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_9 C7781A14CEAE55EF1D8FC1D83F04C7F7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BB2C958AF5721AE427ACE5A4FD2BCF82,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 00ADF21F145B61961AFC31EC966D135E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_11"
   Begin Object Class=/Script/Engine.MaterialExpressionDotProduct Name="MaterialExpressionDotProduct_11"
   End Object
   Begin Object Name="MaterialExpressionDotProduct_11"
      Desc="Project the vertex onto the travel direction -> signed distance (local units) along the axis the wave moves down."
      A=(Expression="/Script/Engine.MaterialExpressionComponentMask'MaterialGraphNode_7.MaterialExpressionComponentMask_7'")
      B=(Expression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialGraphNode_10.MaterialExpressionNamedRerouteDeclaration_10'")
      MaterialExpressionEditorX=-1980
      MaterialExpressionEditorY=-280
      MaterialExpressionGuid=EB28AEEE8CE504255927C1F93F3B9C27
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionDotProduct'MaterialExpressionDotProduct_11'"
   NodePosX=-1980
   NodePosY=-280
   NodeGuid=2DD5C321D764E7570780B233DB6E7FE2
   CustomProperties Pin (PinId=25DCD34D87F7417489E800AAB652A8D2,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_7 03FA8C0610333BF422B6B1772C2C2879,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=00ADF21F145B61961AFC31EC966D135E,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_10 BB2C958AF5721AE427ACE5A4FD2BCF82,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F424E731B9503D7B945254989CAA4A87,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_12 AFB94914B00E04ECA8F21DA5D3F68873,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_12"
   Begin Object Class=/Script/Engine.MaterialExpressionDivide Name="MaterialExpressionDivide_12"
   End Object
   Begin Object Name="MaterialExpressionDivide_12"
      Desc="distance / Wavelength = position in wave-cycles along the axis."
      A=(Expression="/Script/Engine.MaterialExpressionDotProduct'MaterialGraphNode_11.MaterialExpressionDotProduct_11'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_2.MaterialExpressionScalarParameter_2'")
      MaterialExpressionEditorX=-1780
      MaterialExpressionEditorY=-280
      MaterialExpressionGuid=15F3DFE801FB88CE537AEC623AC80DFB
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionDivide'MaterialExpressionDivide_12'"
   NodePosX=-1780
   NodePosY=-280
   NodeGuid=7D6F4925106638B67B8F8C4261283408
   CustomProperties Pin (PinId=AFB94914B00E04ECA8F21DA5D3F68873,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_11 F424E731B9503D7B945254989CAA4A87,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=675C81D77332C5675CB310C90C7CF47D,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_2 8E9C429D3A74EB1B379876EEF5A4FEFC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=1532B528120382C5A5E149646098BC0B,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_15 D4D2DC96CA5071C1226F5C1615EC19C9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_13"
   Begin Object Class=/Script/Engine.MaterialExpressionTime Name="MaterialExpressionTime_13"
   End Object
   Begin Object Name="MaterialExpressionTime_13"
      Desc="Engine game time — TSR-safe (the phase is panned by Time, never reseeded)."
      MaterialExpressionEditorX=-2180
      MaterialExpressionEditorY=120
      MaterialExpressionGuid=5FAA10FBCC29BF839C9C1406C3B2BF9D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTime'MaterialExpressionTime_13'"
   NodePosX=-2180
   NodePosY=120
   NodeGuid=1482D3970B53FBEA1ED3BF384F249735
   CustomProperties Pin (PinId=DDCC3589469FE797E3ADFC9E523B7FEE,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_14 673D9D9D2E69BCC32D55CB0EFA5E7C03,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_14"
   End Object
   Begin Object Name="MaterialExpressionMultiply_14"
      Desc="Time x Wave Speed = how many cycles the wave has travelled. Subtracting this makes the crest move forward (a travelling wave, not a standing one)."
      A=(Expression="/Script/Engine.MaterialExpressionTime'MaterialGraphNode_13.MaterialExpressionTime_13'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_3.MaterialExpressionScalarParameter_3'")
      MaterialExpressionEditorX=-1780
      MaterialExpressionEditorY=80
      MaterialExpressionGuid=A724C506FCB56306CC30AB1A4F3B9B49
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_14'"
   NodePosX=-1780
   NodePosY=80
   NodeGuid=F271DFCE1A3736A36A10C8734F0AF5F6
   CustomProperties Pin (PinId=673D9D9D2E69BCC32D55CB0EFA5E7C03,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_13 DDCC3589469FE797E3ADFC9E523B7FEE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=CBC77D6432D39A9B2FC89A53851989E7,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_3 FBA7A8E6F8FD13A5B454D47FB25FF701,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=181105107FD775E0A60D90A202ED0B24,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_15 C19378F4C977D08297C862ACCA9CD02C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_15"
   Begin Object Class=/Script/Engine.MaterialExpressionSubtract Name="MaterialExpressionSubtract_15"
   End Object
   Begin Object Name="MaterialExpressionSubtract_15"
      Desc="cycles-along-axis - cycles-of-travel = the travelling-wave phase, in cycles."
      A=(Expression="/Script/Engine.MaterialExpressionDivide'MaterialGraphNode_12.MaterialExpressionDivide_12'")
      B=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_14.MaterialExpressionMultiply_14'")
      MaterialExpressionEditorX=-1560
      MaterialExpressionEditorY=-160
      MaterialExpressionGuid=0CF57DF9A74B2100B13A88CEFA2C1CCA
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSubtract'MaterialExpressionSubtract_15'"
   NodePosX=-1560
   NodePosY=-160
   NodeGuid=6F40D00FECFCC730C0B8E346D402F4C4
   CustomProperties Pin (PinId=D4D2DC96CA5071C1226F5C1615EC19C9,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_12 1532B528120382C5A5E149646098BC0B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C19378F4C977D08297C862ACCA9CD02C,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_14 181105107FD775E0A60D90A202ED0B24,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=7FD9CF3265CF4CC38D5DD0AE018BBF12,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_17 1381399B15D35CB4B625CA6958E7EAF1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_16"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_16"
   End Object
   Begin Object Name="MaterialExpressionConstant_16"
      R=6.2831855
      MaterialExpressionEditorX=-1560
      MaterialExpressionEditorY=140
      MaterialExpressionGuid=E51B8E070A79E7C9FDDF1A6C3686C66D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_16'"
   NodePosX=-1560
   NodePosY=140
   NodeGuid=A96301709CA7590AC070661BCAFC1A05
   CustomProperties Pin (PinId=DEFCE36C7CD0481A80B6A30B7C2D8BFE,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_17 A03F85BBDF39A49A305AF8B0019AD115,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_17"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_17"
   End Object
   Begin Object Name="MaterialExpressionMultiply_17"
      Desc="cycles -> radians (x 2pi) so one Wavelength is exactly one sine period."
      A=(Expression="/Script/Engine.MaterialExpressionSubtract'MaterialGraphNode_15.MaterialExpressionSubtract_15'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_16.MaterialExpressionConstant_16'")
      MaterialExpressionEditorX=-1360
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=AAB94817B479F6E79DA685D62BA7840E
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_17'"
   NodePosX=-1360
   NodePosY=-120
   NodeGuid=A7A9290DD01AF634BF5CB12B0516397B
   CustomProperties Pin (PinId=1381399B15D35CB4B625CA6958E7EAF1,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_15 7FD9CF3265CF4CC38D5DD0AE018BBF12,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A03F85BBDF39A49A305AF8B0019AD115,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_16 DEFCE36C7CD0481A80B6A30B7C2D8BFE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=207E4DF1EFBC35903CBDDA6E76E1E429,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_18 C2060322AF3F95F2D51AAAD63D42CB45,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_18"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_18"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_18"
      Name="WavePhaseRad"
      NodeColor=(R=0.360000,G=0.610000,B=0.840000,A=1.000000)
      VariableGuid=2E84F0C7A1934D6BB02C7E51A9F3D814
      Desc="Bus: the travelling phase in radians -> the displacement sine and the normal-slope cosine."
      Input=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_17.MaterialExpressionMultiply_17'")
      MaterialExpressionEditorX=-1160
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=384A0C8A2C23ABBC5ED594863739E438
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_18'"
   NodePosX=-1160
   NodePosY=-120
   NodeGuid=AC8FA0D2DABA9162D91F7C1597F06B78
   CustomProperties Pin (PinId=C2060322AF3F95F2D51AAAD63D42CB45,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_17 207E4DF1EFBC35903CBDDA6E76E1E429,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=139BCDF10FBF3E8902840F3A9E9D302B,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_19"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C19"
   End Object
   Begin Object Name="MaterialExpressionComment_C19"
      SizeX=900
      SizeY=560
      Text="03 Edge Pin  (mast = 0, fly = full;  pow(UV.x, Edge Pin))"
      CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
      MaterialExpressionEditorX=-2640
      MaterialExpressionEditorY=500
      MaterialExpressionGuid=F6A21C2AB13220748A407D8B0DE93427
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C19'"
   CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
   NodePosX=-2640
   NodePosY=500
   NodeWidth=900
   NodeHeight=560
   NodeComment="03 Edge Pin  (mast = 0, fly = full;  pow(UV.x, Edge Pin))"
   NodeGuid=05563ED4D9B74B61F281D62F089B4F02
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_20"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_20"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_20"
      ParameterName="Edge Pin"
      DefaultValue=1.6
      SliderMin=0.2
      SliderMax=6
      Group="02 Edge Pin"
      SortPriority=0
      Desc="Shapes the amplitude ramp from the attached edge to the free edge. 1 = linear; higher keeps more of the cloth near the mast stiff and concentrates the swing at the fly end."
      MaterialExpressionEditorX=-2600
      MaterialExpressionEditorY=580
      MaterialExpressionGuid=676DD8B484C2E4511CA28DA4A9F94890
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_20'"
   NodePosX=-2600
   NodePosY=580
   NodeGuid=CE7415656AE47686158F71F043BA7B85
   CustomProperties Pin (PinId=74689EA8C94CC7B23874EA9E1F01D5F0,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_24 CC708EDC0EA751A395E27839BDAF127C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_21"
   Begin Object Class=/Script/Engine.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_21"
   End Object
   Begin Object Name="MaterialExpressionTextureCoordinate_21"
      CoordinateIndex=0
      UTiling=1
      VTiling=1
      Desc="UV.x is the pin axis: 0 at the attached/mast edge, 1 at the free/fly edge (standard flag UV layout)."
      MaterialExpressionEditorX=-2600
      MaterialExpressionEditorY=740
      MaterialExpressionGuid=C03269B43D1EE98708A7726188C89BD9
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_21'"
   NodePosX=-2600
   NodePosY=740
   NodeGuid=17BF5065FA48FF83C8EC2DD69E8173B2
   CustomProperties Pin (PinId=C8E0635912DFA41E6B0A064A784235F7,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_22 B26DEB947DFBF06561E1904BA2C9FA3C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_22"
   Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_22"
   End Object
   Begin Object Name="MaterialExpressionComponentMask_22"
      R=True
      G=False
      B=False
      A=False
      Input=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_21.MaterialExpressionTextureCoordinate_21'")
      MaterialExpressionEditorX=-2380
      MaterialExpressionEditorY=740
      MaterialExpressionGuid=1BEAEE37A2D77A87B9495614C2A64DB3
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionComponentMask'MaterialExpressionComponentMask_22'"
   NodePosX=-2380
   NodePosY=740
   NodeGuid=60320E300251F47DB88F65F20F84026E
   CustomProperties Pin (PinId=B26DEB947DFBF06561E1904BA2C9FA3C,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_21 C8E0635912DFA41E6B0A064A784235F7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=3FB7C517B464339EE6480A8DA5561196,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_23 98AF5482568D35E06D61F548D6268289,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_23"
   Begin Object Class=/Script/Engine.MaterialExpressionSaturate Name="MaterialExpressionSaturate_23"
   End Object
   Begin Object Name="MaterialExpressionSaturate_23"
      Desc="Clamp the pin coordinate to 0..1 before shaping."
      Input=(Expression="/Script/Engine.MaterialExpressionComponentMask'MaterialGraphNode_22.MaterialExpressionComponentMask_22'")
      MaterialExpressionEditorX=-2180
      MaterialExpressionEditorY=740
      MaterialExpressionGuid=0E321F66096A34CF1200719E1CF0D0A6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSaturate'MaterialExpressionSaturate_23'"
   NodePosX=-2180
   NodePosY=740
   NodeGuid=92A46FD8E41FAA47D7B8CBDD92C74585
   CustomProperties Pin (PinId=98AF5482568D35E06D61F548D6268289,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_22 3FB7C517B464339EE6480A8DA5561196,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E24BF43C77FC7648C4BA26318F06C8C0,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_24 CE41A7E24D79B3EA5F51008316423160,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_24"
   Begin Object Class=/Script/Engine.MaterialExpressionPower Name="MaterialExpressionPower_24"
   End Object
   Begin Object Name="MaterialExpressionPower_24"
      Desc="pow(UV.x, Edge Pin): 0 stays 0 (mast pinned), 1 stays 1 (fly full); the curve sets how fast amplitude grows between them."
      Base=(Expression="/Script/Engine.MaterialExpressionSaturate'MaterialGraphNode_23.MaterialExpressionSaturate_23'")
      Exponent=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_20.MaterialExpressionScalarParameter_20'")
      MaterialExpressionEditorX=-1980
      MaterialExpressionEditorY=660
      MaterialExpressionGuid=ED64F26D64744EE02C4B7557A345465F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionPower'MaterialExpressionPower_24'"
   NodePosX=-1980
   NodePosY=660
   NodeGuid=1FE15A63C916E47159E44ED641218D25
   CustomProperties Pin (PinId=CE41A7E24D79B3EA5F51008316423160,PinName="Base",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_23 E24BF43C77FC7648C4BA26318F06C8C0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=CC708EDC0EA751A395E27839BDAF127C,PinName="Exp",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_20 74689EA8C94CC7B23874EA9E1F01D5F0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=CD4ED2D23BD625718FEAE420F130AFC8,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_25 6DA243C80A41D69DB554B7382A5C5ED0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_25"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_25"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_25"
      Name="EdgePinRamp"
      NodeColor=(R=0.440000,G=0.680000,B=0.280000,A=1.000000)
      VariableGuid=B5D27A60E3914C8FA61D08F4527C3E19
      Desc="Bus: the 0..1 amplitude ramp -> the displacement amplitude and the normal-perturbation strength."
      Input=(Expression="/Script/Engine.MaterialExpressionPower'MaterialGraphNode_24.MaterialExpressionPower_24'")
      MaterialExpressionEditorX=-1780
      MaterialExpressionEditorY=660
      MaterialExpressionGuid=BA41FE7DCDB2D03E436405CCD2CBACC6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_25'"
   NodePosX=-1780
   NodePosY=660
   NodeGuid=3E4349DF0D08199AFD69965F6C84773C
   CustomProperties Pin (PinId=6DA243C80A41D69DB554B7382A5C5ED0,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_24 CD4ED2D23BD625718FEAE420F130AFC8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C924F78E11060A4DA2386563853BE6BA,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_26"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C26"
   End Object
   Begin Object Name="MaterialExpressionComment_C26"
      SizeX=760
      SizeY=520
      Text="04 Displacement  (sin x Amplitude x Edge Pin)"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-1080
      MaterialExpressionEditorY=-400
      MaterialExpressionGuid=BCFA95F18A4F80719E6C41A8FFA6E3B1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C26'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-1080
   NodePosY=-400
   NodeWidth=760
   NodeHeight=520
   NodeComment="04 Displacement  (sin x Amplitude x Edge Pin)"
   NodeGuid=3C15209B0B2FE216346FF693F7BA887B
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_27"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_27"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_27"
      DeclarationGuid=2E84F0C7A1934D6BB02C7E51A9F3D814
      MaterialExpressionEditorX=-1040
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=34D586E25D62ED02E4FA24BDAECC3A87
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_27'"
   NodePosX=-1040
   NodePosY=-300
   NodeGuid=0A7E7A96F94F09AD8532421E23EB80B1
   CustomProperties Pin (PinId=06A019138539E7C58A9528A5437DC3A1,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_28 45BBBDAD02BD7EDE03D1EED06079711E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_28"
   Begin Object Class=/Script/Engine.MaterialExpressionSine Name="MaterialExpressionSine_28"
   End Object
   Begin Object Name="MaterialExpressionSine_28"
      Desc="The travelling ripple, -1..1."
      Input=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_27.MaterialExpressionNamedRerouteUsage_27'")
      MaterialExpressionEditorX=-860
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=BE4E6BD40C462C0B47C64841F050B09D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSine'MaterialExpressionSine_28'"
   NodePosX=-860
   NodePosY=-300
   NodeGuid=073FB3AD68F7BEB7C98759041489E636
   CustomProperties Pin (PinId=45BBBDAD02BD7EDE03D1EED06079711E,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_27 06A019138539E7C58A9528A5437DC3A1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=6A1EF6318450ED48F9D34E70562BC40B,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_29 A250840F9C931CD9DE29F8D0DEF34D56,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_29"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_29"
   End Object
   Begin Object Name="MaterialExpressionMultiply_29"
      Desc="wave x Wave Amplitude = the swing in world units (still full-sheet)."
      A=(Expression="/Script/Engine.MaterialExpressionSine'MaterialGraphNode_28.MaterialExpressionSine_28'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_1.MaterialExpressionScalarParameter_1'")
      MaterialExpressionEditorX=-660
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=8423747C7D8B622328C149921D904061
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_29'"
   NodePosX=-660
   NodePosY=-300
   NodeGuid=2FDB35BBD8D973E024937F690B6DE34E
   CustomProperties Pin (PinId=A250840F9C931CD9DE29F8D0DEF34D56,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_28 6A1EF6318450ED48F9D34E70562BC40B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E9823E66676896BC2748EAAD99756801,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_1 61FBF6D04772CEB8E7920B56830A226D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=31A5D7686C0A411CCC09110848D5AB22,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_31 0585EEDD18B571EE4319AF85B93BAB29,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_30"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_30"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_30"
      DeclarationGuid=B5D27A60E3914C8FA61D08F4527C3E19
      MaterialExpressionEditorX=-660
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=A3733206CD3F7F12B64E72A0434020DC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_30'"
   NodePosX=-660
   NodePosY=-120
   NodeGuid=595BCE3228CD94F298FDF30B1E7F33BC
   CustomProperties Pin (PinId=E94B04A38411E4DDE4D38E2AD17A6650,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_31 E026389EB4BE64FA2810126A4E36E415,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_31"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_31"
   End Object
   Begin Object Name="MaterialExpressionMultiply_31"
      Desc="x Edge Pin ramp = the per-vertex signed push distance (0 at the mast, full at the fly)."
      A=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_29.MaterialExpressionMultiply_29'")
      B=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_30.MaterialExpressionNamedRerouteUsage_30'")
      MaterialExpressionEditorX=-460
      MaterialExpressionEditorY=-240
      MaterialExpressionGuid=4DA1B920561A22F55DB031D80F7709B6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_31'"
   NodePosX=-460
   NodePosY=-240
   NodeGuid=A078BD557E6A1E4D8AC1946F58E4BBA7
   CustomProperties Pin (PinId=0585EEDD18B571EE4319AF85B93BAB29,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_29 31A5D7686C0A411CCC09110848D5AB22,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E026389EB4BE64FA2810126A4E36E415,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_30 E94B04A38411E4DDE4D38E2AD17A6650,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=703634D2DECC58A45C37431A624BEC6F,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_32 A820AD5A0E26200DB301C5A4C16A35AA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_32"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_32"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_32"
      Name="PushAmount"
      NodeColor=(R=0.360000,G=0.610000,B=0.840000,A=1.000000)
      VariableGuid=9A0F6C23D5B74E18BC2F71A04E6D35C2
      Desc="Bus: signed push distance (world units) -> multiplied onto the chosen push axis."
      Input=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_31.MaterialExpressionMultiply_31'")
      MaterialExpressionEditorX=-260
      MaterialExpressionEditorY=-240
      MaterialExpressionGuid=8BAF6D27E1F957288BADBBE3C8CC2348
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_32'"
   NodePosX=-260
   NodePosY=-240
   NodeGuid=4AE08E37BB896F4EED0D03DE3DDE257B
   CustomProperties Pin (PinId=A820AD5A0E26200DB301C5A4C16A35AA,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_31 703634D2DECC58A45C37431A624BEC6F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4127F6673D787C8F3E8E6837B6C54704,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_33"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C33"
   End Object
   Begin Object Name="MaterialExpressionComment_C33"
      SizeX=900
      SizeY=520
      Text="05 Push Axis  (surface normal, or a fixed world axis)"
      CommentColor=(R=0.162029,G=0.029557,B=0.351533,A=1.000000)
      MaterialExpressionEditorX=-1080
      MaterialExpressionEditorY=220
      MaterialExpressionGuid=B9CC682F11C89F65A98B272418F7694E
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C33'"
   CommentColor=(R=0.162029,G=0.029557,B=0.351533,A=1.000000)
   NodePosX=-1080
   NodePosY=220
   NodeWidth=900
   NodeHeight=520
   NodeComment="05 Push Axis  (surface normal, or a fixed world axis)"
   NodeGuid=DFE4EC6D5A7AE96432D1C97AAE989B89
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_34"
   Begin Object Class=/Script/Engine.MaterialExpressionVertexNormalWS Name="MaterialExpressionVertexNormalWS_34"
   End Object
   Begin Object Name="MaterialExpressionVertexNormalWS_34"
      Desc="World-space surface normal — push along this and the sheet billows out of its own plane (default cloth look)."
      MaterialExpressionEditorX=-1040
      MaterialExpressionEditorY=300
      MaterialExpressionGuid=AF724B312A0123F509AB7B6DD057D224
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVertexNormalWS'MaterialExpressionVertexNormalWS_34'"
   NodePosX=-1040
   NodePosY=300
   NodeGuid=3487FC6F0C099B8BC35484C2D8821869
   CustomProperties Pin (PinId=A5CB1B3291D4F6D640641070952AA747,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_37 C93BBDD173D5585C6A55335AFFB1541A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_35"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_35"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_35"
      ParameterName="Push Axis"
      DefaultValue=(R=0,G=0,B=1,A=0)
      Group="03 Push Axis"
      SortPriority=1
      Desc="Fixed world-space push direction used when 'Push Along Normal' is OFF. Default world up (0,0,1) — a hanging banner ripples vertically along this."
      MaterialExpressionEditorX=-1040
      MaterialExpressionEditorY=460
      MaterialExpressionGuid=F83A0FEBEBAD94B20B18F730FFABB339
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_35'"
   NodePosX=-1040
   NodePosY=460
   NodeGuid=BF55075597FCCEEE8B6B58AEAA6045CD
   CustomProperties Pin (PinId=4BB6E61CAFC40C2676A1215037F3844A,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_36 C5136ED2165964E81CC986FC6FA86D35,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9C83B70839DDEFB4A2CD7B195FA802A0,PinName="R",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=04B3B835C5AC3D62F492C18C28E54502,PinName="G",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4DB565A0E307BF41B988B7C60E3E6B78,PinName="B",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=D1606B98285687F072866A829B1A26D9,PinName="A",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_36"
   Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name="MaterialExpressionComponentMask_36"
   End Object
   Begin Object Name="MaterialExpressionComponentMask_36"
      R=True
      G=True
      B=True
      A=False
      Input=(Expression="/Script/Engine.MaterialExpressionVectorParameter'MaterialGraphNode_35.MaterialExpressionVectorParameter_35'")
      MaterialExpressionEditorX=-820
      MaterialExpressionEditorY=460
      MaterialExpressionGuid=67F06E6D3E593BF6BEAD4ADDB37B1354
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionComponentMask'MaterialExpressionComponentMask_36'"
   NodePosX=-820
   NodePosY=460
   NodeGuid=92C9659721AF9C30932ACDDC1B962AD4
   CustomProperties Pin (PinId=C5136ED2165964E81CC986FC6FA86D35,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_35 4BB6E61CAFC40C2676A1215037F3844A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9889DB70F53E18901D292CD0452723B6,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_37 A84AE0AFECB01CBB9CDF6B1BF0BBECD7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_37"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_37"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_37"
      ParameterName="Push Along Normal"
      DefaultValue=True
      Group="03 Push Axis"
      SortPriority=0
      Desc="ON = push along the surface normal (the cloth billows out of plane). OFF = push along the fixed Push Axis (e.g. world up for a stiff hanging banner)."
      A=(Expression="/Script/Engine.MaterialExpressionVertexNormalWS'MaterialGraphNode_34.MaterialExpressionVertexNormalWS_34'")
      B=(Expression="/Script/Engine.MaterialExpressionComponentMask'MaterialGraphNode_36.MaterialExpressionComponentMask_36'")
      MaterialExpressionEditorX=-620
      MaterialExpressionEditorY=360
      MaterialExpressionGuid=43F51DF36D834F365D127B5768C48BD1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_37'"
   NodePosX=-620
   NodePosY=360
   NodeGuid=04123959656CEC1D5DEE10DC46AD95E8
   CustomProperties Pin (PinId=C93BBDD173D5585C6A55335AFFB1541A,PinName="True",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_34 A5CB1B3291D4F6D640641070952AA747,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A84AE0AFECB01CBB9CDF6B1BF0BBECD7,PinName="False",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_36 9889DB70F53E18901D292CD0452723B6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=00DAE65C7A6E2F4B25EF4040BD929CED,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_38 A4A3F6FFE66061B5AFE997FE53C4243B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_38"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_38"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_38"
      Name="PushAxis3D"
      NodeColor=(R=0.440000,G=0.190000,B=0.630000,A=1.000000)
      VariableGuid=4F71C8A2069B4D53AE1C70F26D8B9A30
      Desc="Bus: the chosen unit push axis -> the WPO multiply."
      Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_37.MaterialExpressionStaticSwitchParameter_37'")
      MaterialExpressionEditorX=-420
      MaterialExpressionEditorY=360
      MaterialExpressionGuid=073864311DB26CA9147AB9E30787F5DE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_38'"
   NodePosX=-420
   NodePosY=360
   NodeGuid=69DFDF20DA520B4AA8BE460893E4FDCB
   CustomProperties Pin (PinId=A4A3F6FFE66061B5AFE997FE53C4243B,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_37 00DAE65C7A6E2F4B25EF4040BD929CED,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F086A82562CD6F636E765C4C80385A72,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_39"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C39"
   End Object
   Begin Object Name="MaterialExpressionComment_C39"
      SizeX=1320
      SizeY=620
      Text="06 Recompute Normal (optional)  cos-slope -> tangent normal"
      CommentColor=(R=0.162029,G=0.029557,B=0.351533,A=1.000000)
      MaterialExpressionEditorX=-1080
      MaterialExpressionEditorY=820
      MaterialExpressionGuid=98A4075211CEF780090FA42BE843FE6D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C39'"
   CommentColor=(R=0.162029,G=0.029557,B=0.351533,A=1.000000)
   NodePosX=-1080
   NodePosY=820
   NodeWidth=1320
   NodeHeight=620
   NodeComment="06 Recompute Normal (optional)  cos-slope -> tangent normal"
   NodeGuid=1A842C2F1D1E7CFF7A71A5DF187BE70F
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_40"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_40"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_40"
      ParameterName="Normal Strength"
      DefaultValue=1
      SliderMin=0
      SliderMax=4
      Group="04 Recompute Normal"
      SortPriority=1
      Desc="How hard the recomputed normal tilts with the wave. 0 = flat; raise it so the lit ripple reads as strongly as the silhouette. Only matters when Recompute Normal is ON."
      MaterialExpressionEditorX=-1040
      MaterialExpressionEditorY=900
      MaterialExpressionGuid=66760C24DC8A2FB1F22A13B60975ECAE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_40'"
   NodePosX=-1040
   NodePosY=900
   NodeGuid=E797366E3D4DA5BB0083294223FCD2F1
   CustomProperties Pin (PinId=BE9E6952EA4B3C3C663005CA5668EB39,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_43 4A0DAE7E0E330970E57907B97EFB9DB9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_41"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_41"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_41"
      DeclarationGuid=2E84F0C7A1934D6BB02C7E51A9F3D814
      MaterialExpressionEditorX=-1040
      MaterialExpressionEditorY=1060
      MaterialExpressionGuid=B9D9EEC827250811A529B0508A8678DC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_41'"
   NodePosX=-1040
   NodePosY=1060
   NodeGuid=73485F2D77F2DE26E16E8DAD2B8F7871
   CustomProperties Pin (PinId=D029F52FF874FBED5B5283A6067E88AF,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_42 B1A6DD76E0F75E966FA1CE8E041BE58E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_42"
   Begin Object Class=/Script/Engine.MaterialExpressionCosine Name="MaterialExpressionCosine_42"
   End Object
   Begin Object Name="MaterialExpressionCosine_42"
      Desc="d/dphase of the sine = the wave's slope along the travel axis; the surface tilts most where the wave is steepest."
      Input=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_41.MaterialExpressionNamedRerouteUsage_41'")
      MaterialExpressionEditorX=-840
      MaterialExpressionEditorY=1060
      MaterialExpressionGuid=AFF19CA95B50A10EB4A354308DA22887
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCosine'MaterialExpressionCosine_42'"
   NodePosX=-840
   NodePosY=1060
   NodeGuid=3E548C6E74213D59EF8A5956044AEAFC
   CustomProperties Pin (PinId=B1A6DD76E0F75E966FA1CE8E041BE58E,PinName="Input",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_41 D029F52FF874FBED5B5283A6067E88AF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5103B945AB549755B4D5F529CDB3A1E7,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_43 FEBBC09E539E03B1C986EBE3C5F59277,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_43"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_43"
   End Object
   Begin Object Name="MaterialExpressionMultiply_43"
      Desc="slope x Normal Strength = signed tilt magnitude."
      A=(Expression="/Script/Engine.MaterialExpressionCosine'MaterialGraphNode_42.MaterialExpressionCosine_42'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_40.MaterialExpressionScalarParameter_40'")
      MaterialExpressionEditorX=-640
      MaterialExpressionEditorY=1000
      MaterialExpressionGuid=FAA3A32E6E28658E133B89C76D7533E9
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_43'"
   NodePosX=-640
   NodePosY=1000
   NodeGuid=C2B6C43E110D93BDC6183287BFB6E005
   CustomProperties Pin (PinId=FEBBC09E539E03B1C986EBE3C5F59277,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_42 5103B945AB549755B4D5F529CDB3A1E7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4A0DAE7E0E330970E57907B97EFB9DB9,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_40 BE9E6952EA4B3C3C663005CA5668EB39,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=28DA89902764227E5DEA67E83CE63E00,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_45 877690D884E035F53B9BA6BE2986D483,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_44"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_44"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_44"
      DeclarationGuid=B5D27A60E3914C8FA61D08F4527C3E19
      MaterialExpressionEditorX=-640
      MaterialExpressionEditorY=1160
      MaterialExpressionGuid=9111376EFB190A0C49585BAAD723DE65
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_44'"
   NodePosX=-640
   NodePosY=1160
   NodeGuid=9D2CCE1705D16740EF4F9240A9A16680
   CustomProperties Pin (PinId=1EECB23EA32880BEF80D6BBB05DFD87B,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_45 68B3BFFF9D9B019C5B97303913CD865A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_45"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_45"
   End Object
   Begin Object Name="MaterialExpressionMultiply_45"
      Desc="x Edge Pin ramp so the tilt vanishes at the pinned edge too."
      A=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_43.MaterialExpressionMultiply_43'")
      B=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_44.MaterialExpressionNamedRerouteUsage_44'")
      MaterialExpressionEditorX=-440
      MaterialExpressionEditorY=1060
      MaterialExpressionGuid=4EB2D79564E54C61C198F11C73A1B368
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_45'"
   NodePosX=-440
   NodePosY=1060
   NodeGuid=A41A21BC083F9A826BC2AE083BA2BE2D
   CustomProperties Pin (PinId=877690D884E035F53B9BA6BE2986D483,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_43 28DA89902764227E5DEA67E83CE63E00,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=68B3BFFF9D9B019C5B97303913CD865A,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_44 1EECB23EA32880BEF80D6BBB05DFD87B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5BABF48F2B06144DBEE03798A8803CE9,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_47 75D25F704D15C75D37C057FD933F0139,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_46"
   Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_46"
   End Object
   Begin Object Name="MaterialExpressionConstant_46"
      R=-1
      MaterialExpressionEditorX=-440
      MaterialExpressionEditorY=1220
      MaterialExpressionGuid=86AA4BB49437E0CAAE68AF058CA9A41A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_46'"
   NodePosX=-440
   NodePosY=1220
   NodeGuid=44DB00651E88FA0AEEF9DB39EE5DC19D
   CustomProperties Pin (PinId=3273523832B27304CE9B4E620E78A856,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_47 2BD7CAC778C51AA453DA57B1F8CC28ED,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_47"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_47"
   End Object
   Begin Object Name="MaterialExpressionMultiply_47"
      Desc="Negate: the tangent normal tilts against the up-slope of the crest."
      A=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_45.MaterialExpressionMultiply_45'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_46.MaterialExpressionConstant_46'")
      MaterialExpressionEditorX=-240
      MaterialExpressionEditorY=1060
      MaterialExpressionGuid=3F39D9A90563845B3636C0000D5B8861
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.M_ClothWave'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_47'"
   NodePosX=-240
   NodePosY=1060
   NodeGuid=E8AB36C54CC8DE93665AD33AD2BDBCA0
   CustomProperties Pin (PinId=75D25F704D15C75D37C057FD933F0139,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_45 5BABF48F2B06144DBEE03798A8803CE9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefa
…

Source truncated for rendering. Use Copy to grab the full 121 KB.

Nodes: Multiply (x9), Comment (x8), NamedRerouteUsage (x7), NamedRerouteDeclaration (x5), ScalarParameter (x5), ComponentMask (x4), Constant (x2), StaticSwitchParameter (x2), VectorParameter (x2), Constant3Vector, Cosine, DeriveNormalZ, Divide, DotProduct, LocalPosition, Material, Normalize, Power, Saturate, Sine, Subtract, TextureCoordinate, Time, VertexNormalWS

more from @hazesee all

Refractive Lens

@hazeUE 5.6+

Contact Mask

@hazeUE 5.6+

Iridescent Thin-Film

@hazeUE 5.7

More like this

Wobble

@hazeUE 5.6+

Simple Wind

@hazeUE 5.6+

Stylized Grass

@hazeUE 5.6+

Cloth Wave

@hazefounder
UE 5.6UE 5.7

1
license

CC0 1.0: Public Domain

Public domain: use it however you like, no credit required.

dependencies

Zero dependencies

Pastes and works in any UE 5.3+ project. No textures, no material functions, no MPCs.

ue compatibility
UE 5.3UE 5.4UE 5.5UE 5.6UE 5.7

Details

Last update
1 hour ago
Published
2 hours ago
Nodes
58