Skip to main content

Description

Contact Mask

A geometry-aware proximity mask — it lights up where a surface gets close to other stuff in the scene, so you can pool grime, darkening, snow or AO right into the contact seams. It's a paste-in node group, not a material: it hands you a clean 0-1 mask (and an optional contact normal), and you multiply that into whatever you want to localize.

Under the hood it reads the global mesh distance field — the engine's running tally of how far any point is from the nearest surface — with a single DistanceToNearestSurface tap at the shaded pixel. That distance gets remapped to a soft mask: 1 when this surface is right up against other geometry, fading to 0 by Contact Distance away. Crank Contact Distance up for a broad ambient-occlusion-ish pool, drop it for a tight crevice line. Sharpness bends the falloff — high pinches it to a crisp grime seam, low spreads it into a gentle gradient. There's no Time anywhere in here, so it's TSR-safe, and it's all native nodes, no HLSL.

This is the geometry-aware cousin of a blob-shadow decal: a blob shadow is a flat projected shape that knows nothing about the world, whereas this reacts to the actual meshes nearby. Set props down next to a wall and the grime finds the corner on its own.

It's a node group with no Material node in the paste, so the hookups are on you (downstream links never survive a T3D paste):

Settings you have to set

  • Project Settings -> Engine -> Rendering -> Generate Mesh Distance Fields = ON, then restart the editor. This is non-negotiable — without it the distance field doesn't exist, DistanceToNearestSurface returns a big constant, and the mask reads flat 0 everywhere.
  • Wire the Result node (in the frame labelled Result -> multiply into grime / darkening / snow / AO) into whatever you're localizing: Lerp(clean, grimy, alpha=Result), or multiply it onto a darkening tint feeding Base Color, or use it as the alpha that brings a snow/water layer in at object bases.
  • Material Domain stays Surface. Shading model and blend mode are whatever your host material already is — this tool just produces a scalar, it doesn't care.
  • Meshes that should cast into the mask need Affect Distance Field Lighting on (that's the default). Distance fields are coarse, low-res voxels, so this is for soft, large-scale contact — not pixel-sharp edges.

Params:

  • Contact Distance — the world-unit reach. The distance to nearby geometry at which the mask fade
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 (70 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=1520
      SizeY=520
      Text="01 Contact"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=E748A9B58D2504EAC03ADA7F16007265
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-2520
   NodePosY=-120
   NodeWidth=1520
   NodeHeight=520
   NodeComment="01 Contact"
   NodeGuid=5267DBAD2DE1113D996B194168C09E26
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="Contact Distance"
      DefaultValue=64
      SliderMin=1
      SliderMax=1024
      Group="01 Contact"
      SortPriority=0
      Desc="World-unit reach of the mask: the distance to nearby geometry at which the proximity mask fades to 0. Small (~16) = a tight crevice line; large (~256) = a broad AO-like contact pool. Distance fields are coarse, so very small values read soft, not crisp."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=98195C34C8319A3255531EECF6E14352
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_1'"
   NodePosX=-2480
   NodePosY=60
   NodeGuid=B30D0E4D291BAD2A3984F28AD6B0A724
   CustomProperties Pin (PinId=42F9E5BCF9F21A9B5A017DE08B3F54C2,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_21 5FC0AB0EA4966FE163EA4A7CC2263EA4,MaterialGraphNode_5 86023DA5448300EAE618D12C83491143,),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="Sharpness"
      DefaultValue=1
      SliderMin=0.1
      SliderMax=8
      Group="01 Contact"
      SortPriority=1
      Desc="Falloff shaping (a Power on the 0-1 mask). 1 = the plain fade; higher pinches the mask toward the contact line for a crisp grime seam; below 1 spreads it into a soft gradient."
      MaterialExpressionEditorX=-1120
      MaterialExpressionEditorY=300
      MaterialExpressionGuid=B50D8006B008739205243A438A6551AE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_2'"
   NodePosX=-1120
   NodePosY=300
   NodeGuid=05256D40AAAA2A801DE7B326C694A1CE
   CustomProperties Pin (PinId=B560C53EB4F4D0875F9026238FA00608,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 643CFB73D0A6FEFF615D0BE884FD56A4,),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.MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_3"
   End Object
   Begin Object Name="MaterialExpressionWorldPosition_3"
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=ECBD5A35C78DD34C9C95DB6FD15FED41
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_3'"
   NodePosX=-2480
   NodePosY=-60
   NodeGuid=5CAA3A051EB9C4757C7775C8EEBF0F12
   CustomProperties Pin (PinId=5C7D1BD7955372BBB94F40BEC68BFCBD,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_4 36299F86F0BD907130D8D88D189E1F2B,),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.MaterialExpressionDistanceToNearestSurface Name="MaterialExpressionDistanceToNearestSurface_4"
   End Object
   Begin Object Name="MaterialExpressionDistanceToNearestSurface_4"
      Position=(Expression="/Script/Engine.MaterialExpressionWorldPosition'MaterialGraphNode_3.MaterialExpressionWorldPosition_3'")
      MaterialExpressionEditorX=-2240
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=F6B6C0A898072E5439FA0F6C2F447496
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionDistanceToNearestSurface'MaterialExpressionDistanceToNearestSurface_4'"
   NodePosX=-2240
   NodePosY=-60
   NodeGuid=D15AE15DF7DD38A09CD09CADE19CE53D
   CustomProperties Pin (PinId=36299F86F0BD907130D8D88D189E1F2B,PinName="WorldPosition",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 5C7D1BD7955372BBB94F40BEC68BFCBD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=EB172835CC14491DAD467331A93417F9,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_6 8EAA18D9B1EDDD72AAE5DC2F53D5542A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_5"
   Begin Object Class=/Script/Engine.MaterialExpressionAdd Name="MaterialExpressionAdd_5"
   End Object
   Begin Object Name="MaterialExpressionAdd_5"
      A=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_1.MaterialExpressionScalarParameter_1'")
      B=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_14.MaterialExpressionStaticSwitchParameter_14'")
      MaterialExpressionEditorX=-1720
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=1068BFA32A60786AA6390AD75A15D8C7
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionAdd'MaterialExpressionAdd_5'"
   NodePosX=-1720
   NodePosY=60
   NodeGuid=AA270351A0CA2CF04DF17451BFA500B5
   CustomProperties Pin (PinId=86023DA5448300EAE618D12C83491143,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_1 42F9E5BCF9F21A9B5A017DE08B3F54C2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=324AD6738F45B9032AA1E3700012D930,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 78ADBCF3BEE38CEED611FF2EF25DBB3B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=D112F9896A628E2AA3F8F5DC4838AB66,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_6 9D8ED99C0BE28C45B608536E65C3889B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_6"
   Begin Object Class=/Script/Engine.MaterialExpressionDivide Name="MaterialExpressionDivide_6"
   End Object
   Begin Object Name="MaterialExpressionDivide_6"
      A=(Expression="/Script/Engine.MaterialExpressionDistanceToNearestSurface'MaterialGraphNode_4.MaterialExpressionDistanceToNearestSurface_4'")
      B=(Expression="/Script/Engine.MaterialExpressionAdd'MaterialGraphNode_5.MaterialExpressionAdd_5'")
      MaterialExpressionEditorX=-1480
      MaterialExpressionEditorY=40
      MaterialExpressionGuid=848579CCE06C59A5E6CFFE2DC55A8F13
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionDivide'MaterialExpressionDivide_6'"
   NodePosX=-1480
   NodePosY=40
   NodeGuid=63CEB459122569941E5C05C9D9C74701
   CustomProperties Pin (PinId=8EAA18D9B1EDDD72AAE5DC2F53D5542A,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_4 EB172835CC14491DAD467331A93417F9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9D8ED99C0BE28C45B608536E65C3889B,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_5 D112F9896A628E2AA3F8F5DC4838AB66,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BABA43A438B2BAE4813F4D96B9053B73,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 D31D1DFAE85C2593ECC3D45500E5B2D9,),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.MaterialExpressionSaturate Name="MaterialExpressionSaturate_7"
   End Object
   Begin Object Name="MaterialExpressionSaturate_7"
      Input=(Expression="/Script/Engine.MaterialExpressionDivide'MaterialGraphNode_6.MaterialExpressionDivide_6'")
      MaterialExpressionEditorX=-1280
      MaterialExpressionEditorY=40
      MaterialExpressionGuid=A9E5F9BB50FD29078BC2101222A08CE6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSaturate'MaterialExpressionSaturate_7'"
   NodePosX=-1280
   NodePosY=40
   NodeGuid=2E88E6D1ECC22467FBD4EE1D470E2A1F
   CustomProperties Pin (PinId=D31D1DFAE85C2593ECC3D45500E5B2D9,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 BABA43A438B2BAE4813F4D96B9053B73,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4739E65938F1491CDAE6D90ED5FC7E2B,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 9FED6EF8B2C1F7712CB4283CFFAC5828,),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.MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_8"
   End Object
   Begin Object Name="MaterialExpressionOneMinus_8"
      Input=(Expression="/Script/Engine.MaterialExpressionSaturate'MaterialGraphNode_7.MaterialExpressionSaturate_7'")
      MaterialExpressionEditorX=-1100
      MaterialExpressionEditorY=40
      MaterialExpressionGuid=FE5AA76642DF10FBA6F7E10536126A96
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionOneMinus'MaterialExpressionOneMinus_8'"
   NodePosX=-1100
   NodePosY=40
   NodeGuid=8FC5CE3A8EDF6E428D4EF1AE4B0C47BA
   CustomProperties Pin (PinId=9FED6EF8B2C1F7712CB4283CFFAC5828,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_7 4739E65938F1491CDAE6D90ED5FC7E2B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2ACF4A1F0F4EEE81F972747478E98032,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 C5B7942CB1100F1AB9B33A318491A814,),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.MaterialExpressionPower Name="MaterialExpressionPower_9"
   End Object
   Begin Object Name="MaterialExpressionPower_9"
      Base=(Expression="/Script/Engine.MaterialExpressionOneMinus'MaterialGraphNode_8.MaterialExpressionOneMinus_8'")
      Exponent=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_2.MaterialExpressionScalarParameter_2'")
      MaterialExpressionEditorX=-900
      MaterialExpressionEditorY=100
      MaterialExpressionGuid=C10935D6C63E834001F6E271C439A8E0
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionPower'MaterialExpressionPower_9'"
   NodePosX=-900
   NodePosY=100
   NodeGuid=8FDB324F926C804C0BCF0F2F42FC23E9
   CustomProperties Pin (PinId=C5B7942CB1100F1AB9B33A318491A814,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_8 2ACF4A1F0F4EEE81F972747478E98032,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=643CFB73D0A6FEFF615D0BE884FD56A4,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_2 B560C53EB4F4D0875F9026238FA00608,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=B5948994059EB0C83433BE4172663868,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 41EBF4C151BA0097CBE59D04ACD9AC82,MaterialGraphNode_12 5F778953A70AF14ED5ECB7AA35A171F8,),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_10"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C10"
   End Object
   Begin Object Name="MaterialExpressionComment_C10"
      SizeX=560
      SizeY=420
      Text="02 Sense"
      CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
      MaterialExpressionEditorX=-720
      MaterialExpressionEditorY=-120
      MaterialExpressionGuid=E1645001465475CDE156B0DD2B06F0E4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C10'"
   CommentColor=(R=0.162029,G=0.417885,B=0.063010,A=1.000000)
   NodePosX=-720
   NodePosY=-120
   NodeWidth=560
   NodeHeight=420
   NodeComment="02 Sense"
   NodeGuid=A64393ADAD7552EF42662CAE29760FC9
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_11"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_11"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_11"
      ParameterName="Invert"
      DefaultValue=False
      Group="02 Sense"
      SortPriority=0
      Desc="Off = 1 in contact with geometry, 0 far away (the normal contact-grime sense). On = flips it: 1 far from geometry, 0 in contact, e.g. to fade something OUT near other objects."
      A=(Expression="/Script/Engine.MaterialExpressionOneMinus'MaterialGraphNode_12.MaterialExpressionOneMinus_12'")
      B=(Expression="/Script/Engine.MaterialExpressionPower'MaterialGraphNode_9.MaterialExpressionPower_9'")
      MaterialExpressionEditorX=-440
      MaterialExpressionEditorY=60
      MaterialExpressionGuid=46B2D4D550AA7C87BCCF7BA70E35E3D7
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_11'"
   NodePosX=-440
   NodePosY=60
   NodeGuid=7A782610E7347767B1922703BFA0E3FD
   CustomProperties Pin (PinId=14061F617E0684EED404ED8D201A9110,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_12 240030075F0CDDABEC824040BCAB0AB9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=41EBF4C151BA0097CBE59D04ACD9AC82,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_9 B5948994059EB0C83433BE4172663868,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A859C76BD4768F1ADE6729120B4AD0DB,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_30 ED2DE59F2F9D86B21AADF6A51EB51DB4,),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.MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_12"
   End Object
   Begin Object Name="MaterialExpressionOneMinus_12"
      Input=(Expression="/Script/Engine.MaterialExpressionPower'MaterialGraphNode_9.MaterialExpressionPower_9'")
      MaterialExpressionEditorX=-680
      MaterialExpressionEditorY=220
      MaterialExpressionGuid=30BB4D05CF37269929A752FBCAF4248B
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionOneMinus'MaterialExpressionOneMinus_12'"
   NodePosX=-680
   NodePosY=220
   NodeGuid=DF1EA5EE5512635C74C216183D620DF1
   CustomProperties Pin (PinId=5F778953A70AF14ED5ECB7AA35A171F8,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 B5948994059EB0C83433BE4172663868,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=240030075F0CDDABEC824040BCAB0AB9,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 14061F617E0684EED404ED8D201A9110,),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_13"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C13"
   End Object
   Begin Object Name="MaterialExpressionComment_C13"
      SizeX=960
      SizeY=560
      Text="03 Contact Noise (optional)"
      CommentColor=(R=0.162029,G=0.029557,B=0.351533,A=1.000000)
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=460
      MaterialExpressionGuid=2405BC8BEBDBDE0CDE88A3E691D0947D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C13'"
   CommentColor=(R=0.162029,G=0.029557,B=0.351533,A=1.000000)
   NodePosX=-2520
   NodePosY=460
   NodeWidth=960
   NodeHeight=560
   NodeComment="03 Contact Noise (optional)"
   NodeGuid=349A05CF22D86E6FEE19BD05EDB92375
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_14"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_14"
      ParameterName="Use Contact Noise"
      DefaultValue=False
      Group="03 Contact Noise"
      SortPriority=0
      Desc="Off = a dead-even contact band straight from the distance field (no texture cost). On = jitter the effective Contact Distance per-pixel by a grayscale noise so the contact band breaks into organic grime."
      A=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_21.MaterialExpressionMultiply_21'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_22.MaterialExpressionConstant_22'")
      MaterialExpressionEditorX=-1760
      MaterialExpressionEditorY=600
      MaterialExpressionGuid=9C9B36834E7BA936C178FFBA66ED76FC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_14'"
   NodePosX=-1760
   NodePosY=600
   NodeGuid=8CBDD195187C3FEFE78DFB781A6FCEEC
   CustomProperties Pin (PinId=B0D893A0AE23301EB8C2F2AA8AA4613B,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_21 F37C00E61C45A25A6B225E1EEA4F84F2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=B235E6BC4CE749FAD690BD5A8977D288,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_22 FB0F8F1663E11234A7395BFF2915016E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=78ADBCF3BEE38CEED611FF2EF25DBB3B,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_5 324AD6738F45B9032AA1E3700012D930,),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.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_15"
   End Object
   Begin Object Name="MaterialExpressionTextureCoordinate_15"
      CoordinateIndex=0
      UTiling=1
      VTiling=1
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=800
      MaterialExpressionGuid=8ED030446A4C22711908F18BCDDDFD47
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_15'"
   NodePosX=-2480
   NodePosY=800
   NodeGuid=C04A9B333D8056BBDAF980DE3303B571
   CustomProperties Pin (PinId=3B93DD401372B42FA949685BB166FDC3,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_16 08BE9382B8F2AA4F66E521CD35252812,),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.MaterialExpressionTextureSampleParameter2D Name="MaterialExpressionTextureSampleParameter2D_16"
   End Object
   Begin Object Name="MaterialExpressionTextureSampleParameter2D_16"
      ParameterName="Contact Noise"
      Group="03 Contact Noise"
      SortPriority=1
      Texture=Texture2D'/Engine/EngineResources/WhiteSquareTexture'
      SamplerType=SAMPLERTYPE_Grayscale
      Desc="Tiling grayscale noise that jitters the contact distance. Centred on 0.5 (grey = no shift). Defaults to white, so assign your own noise when you enable this."
      Coordinates=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_15.MaterialExpressionTextureCoordinate_15'")
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=600
      MaterialExpressionGuid=31B2792D56EF656B6AB5C3286A7D79CD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialExpressionTextureSampleParameter2D_16'"
   NodePosX=-2480
   NodePosY=600
   NodeGuid=1FAA12ADC99AA210E830A07CF19927A5
   CustomProperties Pin (PinId=08BE9382B8F2AA4F66E521CD35252812,PinName="UVs",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 3B93DD401372B42FA949685BB166FDC3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=6D713C9CC43A4ACCDD1984AF3F927099,PinName="ApplyViewMipBias",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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BED167BF19CBBAA39AC5A78700CF8B04,PinName="RGB",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=CE536BFAAE4479358DE575FBA62274E6,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,LinkedTo=(MaterialGraphNode_19 DA407CFBAD9DADF11CDBF42461805C26,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F647EBDF07CC096198F877FE745A5D67,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=545E4E2B9D807FA3ADDF8F889B10A130,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=DC8D26C256CCBBADE9348B8D518C15BF,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)
   CustomProperties Pin (PinId=BA2DC2C8773476E5AA9FB6B3EE270C3C,PinName="RGBA",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_17"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_17"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_17"
      ParameterName="Contact Noise Amount"
      DefaultValue=0.4
      SliderMin=0
      SliderMax=1
      Group="03 Contact Noise"
      SortPriority=2
      Desc="How hard the noise modulates the effective Contact Distance, as a fraction (0 = no break-up, 1 = full). Scaled by Contact Distance so it tracks the chosen reach."
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=960
      MaterialExpressionGuid=55721B94E91B644A5BBC6E07A80C6BBC
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_17'"
   NodePosX=-2480
   NodePosY=960
   NodeGuid=8C92F154FEEAE2E09008EE746B2C1FB8
   CustomProperties Pin (PinId=4C5A272DC85D8D3993D557D8B460BE0E,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_20 BD18D4A4232E5C8B57AC34C9C37D4D7F,),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.MaterialExpressionConstant Name="MaterialExpressionConstant_18"
   End Object
   Begin Object Name="MaterialExpressionConstant_18"
      R=0.5
      MaterialExpressionEditorX=-2240
      MaterialExpressionEditorY=800
      MaterialExpressionGuid=8EB87E096BEDE2237D4D74A33AF22FE8
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_18'"
   NodePosX=-2240
   NodePosY=800
   NodeGuid=A9DBCEA7586B5041739366A2AC7CD17B
   CustomProperties Pin (PinId=55EE2B5A3ACE79A8AA37703F0A577C24,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_19 76CEF275ABBCBACD3C7BF3B99AD4A3E5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_19"
   Begin Object Class=/Script/Engine.MaterialExpressionSubtract Name="MaterialExpressionSubtract_19"
   End Object
   Begin Object Name="MaterialExpressionSubtract_19"
      A=(Expression="/Script/Engine.MaterialExpressionTextureSampleParameter2D'MaterialGraphNode_16.MaterialExpressionTextureSampleParameter2D_16'",OutputIndex=1)
      B=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_18.MaterialExpressionConstant_18'")
      MaterialExpressionEditorX=-2060
      MaterialExpressionEditorY=660
      MaterialExpressionGuid=EC7C939F1370BBBB9060C70718F75D3B
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSubtract'MaterialExpressionSubtract_19'"
   NodePosX=-2060
   NodePosY=660
   NodeGuid=65D703E7823E651A8441E97715F52009
   CustomProperties Pin (PinId=DA407CFBAD9DADF11CDBF42461805C26,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_16 CE536BFAAE4479358DE575FBA62274E6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=76CEF275ABBCBACD3C7BF3B99AD4A3E5,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_18 55EE2B5A3ACE79A8AA37703F0A577C24,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=09DEB5205811C636D2FB931A7D77BEB2,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_20 4D311B66C28378E52630620AABBD374B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_20"
   Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_20"
   End Object
   Begin Object Name="MaterialExpressionMultiply_20"
      A=(Expression="/Script/Engine.MaterialExpressionSubtract'MaterialGraphNode_19.MaterialExpressionSubtract_19'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_17.MaterialExpressionScalarParameter_17'")
      MaterialExpressionEditorX=-2000
      MaterialExpressionEditorY=880
      MaterialExpressionGuid=046CD5F9D33E33DD3D389964F4342FD1
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_20'"
   NodePosX=-2000
   NodePosY=880
   NodeGuid=9C921FAB64B18906C4FE0D519A0BFC14
   CustomProperties Pin (PinId=4D311B66C28378E52630620AABBD374B,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_19 09DEB5205811C636D2FB931A7D77BEB2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BD18D4A4232E5C8B57AC34C9C37D4D7F,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_17 4C5A272DC85D8D3993D557D8B460BE0E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=26310BE3461D88A2B91E12B9255AA4F9,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_21 499F77F5C55499F56C51D3E053FC3103,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_21"
   End Object
   Begin Object Name="MaterialExpressionMultiply_21"
      A=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_20.MaterialExpressionMultiply_20'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_1.MaterialExpressionScalarParameter_1'")
      MaterialExpressionEditorX=-1740
      MaterialExpressionEditorY=940
      MaterialExpressionGuid=B01246E6205DF43D682B08DBE4D65ACE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_21'"
   NodePosX=-1740
   NodePosY=940
   NodeGuid=EBC05DB83C29CC65BA2579C43A88EFBE
   CustomProperties Pin (PinId=499F77F5C55499F56C51D3E053FC3103,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_20 26310BE3461D88A2B91E12B9255AA4F9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5FC0AB0EA4966FE163EA4A7CC2263EA4,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 42F9E5BCF9F21A9B5A017DE08B3F54C2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F37C00E61C45A25A6B225E1EEA4F84F2,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 B0D893A0AE23301EB8C2F2AA8AA4613B,),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.MaterialExpressionConstant Name="MaterialExpressionConstant_22"
   End Object
   Begin Object Name="MaterialExpressionConstant_22"
      R=0
      MaterialExpressionEditorX=-2000
      MaterialExpressionEditorY=1040
      MaterialExpressionGuid=536082C1BF8CBAC5C2FD7064C5690149
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_22'"
   NodePosX=-2000
   NodePosY=1040
   NodeGuid=714BB44C6624AC824F31BFE2264A55A6
   CustomProperties Pin (PinId=FB0F8F1663E11234A7395BFF2915016E,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 B235E6BC4CE749FAD690BD5A8977D288,),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_23"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C23"
   End Object
   Begin Object Name="MaterialExpressionComment_C23"
      SizeX=1200
      SizeY=480
      Text="04 Contact Normal (optional)"
      CommentColor=(R=0.520996,G=0.278894,B=0.000000,A=1.000000)
      MaterialExpressionEditorX=-2520
      MaterialExpressionEditorY=1060
      MaterialExpressionGuid=C20536F9CA03C43F28D8CFDE503CC1A3
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C23'"
   CommentColor=(R=0.520996,G=0.278894,B=0.000000,A=1.000000)
   NodePosX=-2520
   NodePosY=1060
   NodeWidth=1200
   NodeHeight=480
   NodeComment="04 Contact Normal (optional)"
   NodeGuid=71A3F12246331FEAE504C0133C9977A8
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_24"
   Begin Object Class=/Script/Engine.MaterialExpressionStaticSwitchParameter Name="MaterialExpressionStaticSwitchParameter_24"
   End Object
   Begin Object Name="MaterialExpressionStaticSwitchParameter_24"
      ParameterName="Use Contact Normal"
      DefaultValue=False
      Group="04 Contact Normal"
      SortPriority=0
      Desc="Off = the second Result outputs a flat up-vector (0,0,1) and the distance-field gradient sample compiles out (free). On = output the normalized distance-field gradient — a unit vector pointing away from the nearest surface — for tilting normals or directional pooling."
      A=(Expression="/Script/Engine.MaterialExpressionNormalize'MaterialGraphNode_27.MaterialExpressionNormalize_27'")
      B=(Expression="/Script/Engine.MaterialExpressionConstant3Vector'MaterialGraphNode_28.MaterialExpressionConstant3Vector_28'")
      MaterialExpressionEditorX=-1640
      MaterialExpressionEditorY=1220
      MaterialExpressionGuid=B3231E4A844C40AA31796672F67C10A6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialExpressionStaticSwitchParameter_24'"
   NodePosX=-1640
   NodePosY=1220
   NodeGuid=E90051A4AF45196C270305ADC3DDC187
   CustomProperties Pin (PinId=CC336DD178951ACE0C0761A5B974B863,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_27 515B6AA05270112F3E67CEDC21B38E16,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C8331122FB173669638B51D965567153,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_28 4C563F9E19B841D29497781409EDC186,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=A637852B9F9A661B1AB59AE90327F2B5,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 61A11C8E4C89EAF33983769B874A950A,),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.MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_25"
   End Object
   Begin Object Name="MaterialExpressionWorldPosition_25"
      MaterialExpressionEditorX=-2480
      MaterialExpressionEditorY=1160
      MaterialExpressionGuid=70C8E95F5B859B7DD62A81056C3D2F21
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_25'"
   NodePosX=-2480
   NodePosY=1160
   NodeGuid=382A1EA9E028E30B18B9D091BF24FF25
   CustomProperties Pin (PinId=979962205AFF56F51B16268A2E98E43B,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_26 5084392BC8AAB047EE29A6794817B5C0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_26"
   Begin Object Class=/Script/Engine.MaterialExpressionDistanceFieldGradient Name="MaterialExpressionDistanceFieldGradient_26"
   End Object
   Begin Object Name="MaterialExpressionDistanceFieldGradient_26"
      Position=(Expression="/Script/Engine.MaterialExpressionWorldPosition'MaterialGraphNode_25.MaterialExpressionWorldPosition_25'")
      MaterialExpressionEditorX=-2240
      MaterialExpressionEditorY=1160
      MaterialExpressionGuid=C8DD50BACF65A4456D5F7A70205C2D20
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionDistanceFieldGradient'MaterialExpressionDistanceFieldGradient_26'"
   NodePosX=-2240
   NodePosY=1160
   NodeGuid=55A40226A35FD57E785A26C9E19A3A74
   CustomProperties Pin (PinId=5084392BC8AAB047EE29A6794817B5C0,PinName="WorldPosition",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_25 979962205AFF56F51B16268A2E98E43B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=38D02415467F7CD67433C11DA08F6A9D,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_27 F982AE81C59919B44CFB89598AE995E2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_27"
   Begin Object Class=/Script/Engine.MaterialExpressionNormalize Name="MaterialExpressionNormalize_27"
   End Object
   Begin Object Name="MaterialExpressionNormalize_27"
      Input=(Expression="/Script/Engine.MaterialExpressionDistanceFieldGradient'MaterialGraphNode_26.MaterialExpressionDistanceFieldGradient_26'")
      MaterialExpressionEditorX=-2000
      MaterialExpressionEditorY=1160
      MaterialExpressionGuid=053F7C03613D0FF05487DF19ABDA28BE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNormalize'MaterialExpressionNormalize_27'"
   NodePosX=-2000
   NodePosY=1160
   NodeGuid=20A2C558819A37F5C9B290E5CBBF0EEE
   CustomProperties Pin (PinId=F982AE81C59919B44CFB89598AE995E2,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_26 38D02415467F7CD67433C11DA08F6A9D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=515B6AA05270112F3E67CEDC21B38E16,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 CC336DD178951ACE0C0761A5B974B863,),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.MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_28"
   End Object
   Begin Object Name="MaterialExpressionConstant3Vector_28"
      Constant=(R=0,G=0,B=1,A=0)
      MaterialExpressionEditorX=-2000
      MaterialExpressionEditorY=1360
      MaterialExpressionGuid=4371F0C86C1464A062EF18C0F1D913DF
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_28'"
   NodePosX=-2000
   NodePosY=1360
   NodeGuid=96C1FFF8A5F87ED69DB76DD965D22919
   CustomProperties Pin (PinId=4C563F9E19B841D29497781409EDC186,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 C8331122FB173669638B51D965567153,),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_29"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C29"
   End Object
   Begin Object Name="MaterialExpressionComment_C29"
      SizeX=560
      SizeY=260
      Text="Result -> multiply into grime / darkening / snow / AO"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=-120
      MaterialExpressionEditorY=-40
      MaterialExpressionGuid=47A75290297CE9695D8A8183B1FAF7BE
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C29'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=-120
   NodePosY=-40
   NodeWidth=560
   NodeHeight=260
   NodeComment="Result -> multiply into grime / darkening / snow / AO"
   NodeGuid=4AA895A34D04B3395783260BFD2491E3
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_30"
   Begin Object Class=/Script/Engine.MaterialExpressionSaturate Name="MaterialExpressionSaturate_30"
   End Object
   Begin Object Name="MaterialExpressionSaturate_30"
      Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_11.MaterialExpressionStaticSwitchParameter_11'")
      MaterialExpressionEditorX=-20
      MaterialExpressionEditorY=120
      MaterialExpressionGuid=6EB556F4444857FC6D2E53611B7CB56F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionSaturate'MaterialExpressionSaturate_30'"
   NodePosX=-20
   NodePosY=120
   NodeGuid=3F898B4A569EFBCBAEA46459452DA7EE
   CustomProperties Pin (PinId=ED2DE59F2F9D86B21AADF6A51EB51DB4,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_11 A859C76BD4768F1ADE6729120B4AD0DB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=8A9623546A122031A7E6ADA86562532F,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_31"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C31"
   End Object
   Begin Object Name="MaterialExpressionComment_C31"
      SizeX=560
      SizeY=240
      Text="Contact Normal (optional) -> Normal / lerp direction"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=-980
      MaterialExpressionEditorY=1180
      MaterialExpressionGuid=61E5E766136875DDD8F5E1125EC2651E
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C31'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=-980
   NodePosY=1180
   NodeWidth=560
   NodeHeight=240
   NodeComment="Contact Normal (optional) -> Normal / lerp direction"
   NodeGuid=78BDCBDA9876CF3E5586E8E9961ABBB6
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_32"
   Begin Object Class=/Script/Engine.MaterialExpressionNormalize Name="MaterialExpressionNormalize_32"
   End Object
   Begin Object Name="MaterialExpressionNormalize_32"
      Input=(Expression="/Script/Engine.MaterialExpressionStaticSwitchParameter'MaterialGraphNode_24.MaterialExpressionStaticSwitchParameter_24'")
      MaterialExpressionEditorX=-880
      MaterialExpressionEditorY=1320
      MaterialExpressionGuid=D794129BA4AF69A9B767838723886D33
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.ContactMask'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNormalize'MaterialExpressionNormalize_32'"
   NodePosX=-880
   NodePosY=1320
   NodeGuid=7282A75DD313B62B8F59EA9E433E620E
   CustomProperties Pin (PinId=61A11C8E4C89EAF33983769B874A950A,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 A637852B9F9A661B1AB59AE90327F2B5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=8D7B5E2D7B53EE825751809A135215BE,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

Nodes: Comment (x6), ScalarParameter (x3), StaticSwitchParameter (x3), Constant (x2), Multiply (x2), Normalize (x2), OneMinus (x2), Saturate (x2), WorldPosition (x2), Add, Constant3Vector, DistanceFieldGradient, DistanceToNearestSurface, Divide, Material, Power, Subtract, TextureCoordinate, TextureSampleParameter2D

more from @hazesee all

Refractive Lens

@hazeUE 5.6+

Iridescent Thin-Film

@hazeUE 5.7

Fabric Sheen

@hazeUE 5.7

More like this

Ground Blend

@hazeUE 5.6+

Wobble

@hazeUE 5.6+

Simple Wind

@hazeUE 5.6+

Contact Mask

@hazefounder
UE 5.6UE 5.7

0
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
2 hours ago
Published
2 hours ago
Nodes
33