
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,
DistanceToNearestSurfacereturns 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
Preview only · open in editor for full material editing
Want this graph on your blog or forum?
View T3D source (70 KB)expandcollapse
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 like this
CC0 1.0: Public Domain
Public domain: use it however you like, no credit required.
Zero dependencies
Pastes and works in any UE 5.3+ project. No textures, no material functions, no MPCs.
Details
- Last update
- 2 hours ago
- Published
- 2 hours ago
- Nodes
- 33




0 comments
Sign in to join the discussion.
No comments yet. Be the first.