Skip to main content
Water Puddle
preview · 1 / 3

Description

A wet puddle you drop onto any floor.

It's a deferred decal, no geometry. Project it onto streets, concrete, sci-fi panels or industrial metal and it carves a soft, dirty-edged puddle, darkens the ground into a dark reflective pool, smooths the roughness so it mirrors the scene, and lays animated micro- ripples across the water.

Highlights

  • Drops onto any existing floor — no mesh, world-aligned, zero textures
  • Soft dirty puddle edges + a damp halo that bleeds into the dry ground
  • Mirror-smooth reflective water with animated ripples (distance-faded)

Setup

  1. Material Domain = Deferred Decal, Blend = DBuffer Translucent Color, Normal, roughness.
  2. Paste the graph, wire the four labelled frames. Base Color, Roughness, Normal, Opacity into the Material node.
  3. Spawn a Decal Actor, point the arrow down into the floor, scale the box over the wet area.
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 (63 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=520
      SizeY=620
      Text="01 Shape"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-1280
      MaterialExpressionEditorY=-620
      MaterialExpressionGuid=C251DCEFFF7B0BBBE89FCD234A77FD1F
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C0'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-1280
   NodePosY=-620
   NodeWidth=520
   NodeHeight=620
   NodeComment="01 Shape"
   NodeGuid=BB91783C423BB21C19DE5172F8A99F36
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_1"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C1"
   End Object
   Begin Object Name="MaterialExpressionComment_C1"
      SizeX=520
      SizeY=220
      Text="02 Wetness"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-1280
      MaterialExpressionEditorY=120
      MaterialExpressionGuid=0366258C2D6896B9067988E0FD9B80C6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C1'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-1280
   NodePosY=120
   NodeWidth=520
   NodeHeight=220
   NodeComment="02 Wetness"
   NodeGuid=3C8FE0AA2D6D6EFB312DFD6DEC1F71F9
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_2"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C2"
   End Object
   Begin Object Name="MaterialExpressionComment_C2"
      SizeX=520
      SizeY=620
      Text="03 Ripples"
      CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
      MaterialExpressionEditorX=-1280
      MaterialExpressionEditorY=400
      MaterialExpressionGuid=315275C0231827ADC244B7EAA983E2DD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C2'"
   CommentColor=(R=0.104616,G=0.327778,B=0.665387,A=1.000000)
   NodePosX=-1280
   NodePosY=400
   NodeWidth=520
   NodeHeight=620
   NodeComment="03 Ripples"
   NodeGuid=567F3501466845D50CEFDF6A7BE8C1CB
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_3"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C3"
   End Object
   Begin Object Name="MaterialExpressionComment_C3"
      SizeX=360
      SizeY=200
      Text="Base Color"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=620
      MaterialExpressionEditorY=-560
      MaterialExpressionGuid=7BC17A4614C41FCF3B37EAA7CAAD2385
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C3'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=620
   NodePosY=-560
   NodeWidth=360
   NodeHeight=200
   NodeComment="Base Color"
   NodeGuid=F8C8CDC6B0F37FCC41FE6C750DF8DD0E
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_4"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C4"
   End Object
   Begin Object Name="MaterialExpressionComment_C4"
      SizeX=360
      SizeY=200
      Text="Roughness"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=620
      MaterialExpressionEditorY=-320
      MaterialExpressionGuid=BC1D7F7F6A309788AFC90047348D851C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C4'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=620
   NodePosY=-320
   NodeWidth=360
   NodeHeight=200
   NodeComment="Roughness"
   NodeGuid=D83A4401622451B2A2DF6B9B639C9330
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_5"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C5"
   End Object
   Begin Object Name="MaterialExpressionComment_C5"
      SizeX=420
      SizeY=300
      Text="Opacity"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=620
      MaterialExpressionEditorY=-80
      MaterialExpressionGuid=D88BB70C80F67922CFCD7B8D6B9AF97A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C5'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=620
   NodePosY=-80
   NodeWidth=420
   NodeHeight=300
   NodeComment="Opacity"
   NodeGuid=928263D2E641034CDA1BEE2B47F8D2BD
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Comment Name="MaterialGraphNode_Comment_6"
   Begin Object Class=/Script/Engine.MaterialExpressionComment Name="MaterialExpressionComment_C6"
   End Object
   Begin Object Name="MaterialExpressionComment_C6"
      SizeX=360
      SizeY=180
      Text="Normal"
      CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
      MaterialExpressionEditorX=620
      MaterialExpressionEditorY=280
      MaterialExpressionGuid=27CDD411716BB1E8A1AE74FE5197809A
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpressionComment="/Script/Engine.MaterialExpressionComment'MaterialExpressionComment_C6'"
   CommentColor=(R=0.033105,G=1.000000,B=0.132868,A=1.000000)
   NodePosX=620
   NodePosY=280
   NodeWidth=360
   NodeHeight=180
   NodeComment="Normal"
   NodeGuid=71CEA8E0EE53DCE537235304CB2735CE
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_7"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_7"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_7"
      ParameterName="Coverage"
      DefaultValue=0.5
      SliderMin=0
      SliderMax=1
      Group="01 Shape"
      Desc="How much of the decal area becomes puddle. Higher = larger, more connected water; lower = small isolated pools."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=-520
      MaterialExpressionGuid=C2E53D796ADAC01D2E3456F5108820B5
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_7'"
   NodePosX=-1240
   NodePosY=-520
   NodeGuid=A5FDFB74DC61A3B5E15AC25E3C1A99FA
   CustomProperties Pin (PinId=6DB08F4191FD85EFA4DFC0389AB0AD86,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_Custom_20 C6DE05805A0A19CA0B25C3F69BE8D8AA,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_8"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_8"
      ParameterName="EdgeSoftness"
      DefaultValue=0.12
      SliderMin=0.01
      SliderMax=0.5
      Group="01 Shape"
      Desc="Softness of the water edge. Low = crisp shoreline; high = a gradual damp-to-wet transition."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=-360
      MaterialExpressionGuid=1F17365C719FB7983B5D2AE64469FF27
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_8'"
   NodePosX=-1240
   NodePosY=-360
   NodeGuid=285722C6ECFB8FBC54CA82FBED72AC7D
   CustomProperties Pin (PinId=85DDD7C29D48A1CB68451FC077E32694,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_Custom_20 C5D7DDB3FF5D0FE8DC6F2296A2EA3ACB,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_9"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_9"
      ParameterName="EdgeBreakup"
      DefaultValue=0.5
      SliderMin=0
      SliderMax=1
      Group="01 Shape"
      Desc="Ragged, dirty break-up of the puddle outline so it never reads as a clean circle. 0 = smooth edge."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=-200
      MaterialExpressionGuid=18344F0B8C815AB815D30C9616493C66
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_9'"
   NodePosX=-1240
   NodePosY=-200
   NodeGuid=3E83A209500F2EBCE62740EF867A4310
   CustomProperties Pin (PinId=ED49C82E232EB7CC3F7CFF93BAF57242,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_Custom_20 B19939911806B30D99F07AADB0E3FB66,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_10"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_10"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_10"
      ParameterName="MaskTiling"
      DefaultValue=0.3
      SliderMin=0.02
      SliderMax=2
      Group="01 Shape"
      Desc="World scale of the puddle-shape noise. Lower = fewer, larger puddles; higher = many small ones. World-aligned, so it stays consistent regardless of decal box size."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=-40
      MaterialExpressionGuid=18971E31A6F3D35E0729317A34F656B6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_10'"
   NodePosX=-1240
   NodePosY=-40
   NodeGuid=49F6BB02B8688BE2DC5A439FA50DE7BA
   CustomProperties Pin (PinId=9698F4D8C6A76817B5E4942DF96A29EE,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_Custom_20 2EE7C095CCECA5C25F726D67FBFCFAA0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_11"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_11"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_11"
      ParameterName="HaloWidth"
      DefaultValue=0.2
      SliderMin=0
      SliderMax=0.6
      Group="02 Wetness"
      Desc="Width of the damp halo of darkened, partly-wet ground bleeding out past the water edge. 0 = hard cut from wet to dry."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=220
      MaterialExpressionGuid=16271A84168E270CE1B64CCE240E5EE5
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_11'"
   NodePosX=-1240
   NodePosY=220
   NodeGuid=40D87372DEE4037946762600B807A814
   CustomProperties Pin (PinId=D77AB90123B6BB6B3F846F9B889548EF,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_Custom_20 E97BB19FD8E68C52AFAF41E38C8EC416,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_12"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_12"
      ParameterName="RippleIntensity"
      DefaultValue=0.15
      SliderMin=0
      SliderMax=1
      Group="03 Ripples"
      Desc="Strength of the animated surface ripples (normal perturbation). Keep low — water is mostly flat. 0 = a perfect still mirror."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=500
      MaterialExpressionGuid=854C4AF2B2F95C6D6E58A817F6CE3879
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_12'"
   NodePosX=-1240
   NodePosY=500
   NodeGuid=41962E0BE26919F6D70CABF977A0026F
   CustomProperties Pin (PinId=A4E357202726F1ABBD32A41146C15552,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_Custom_20 BE0541B36F121BCB0E1B42B74ED26071,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_13"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_13"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_13"
      ParameterName="RippleTiling"
      DefaultValue=4
      SliderMin=0.5
      SliderMax=20
      Group="03 Ripples"
      Desc="World scale of the ripples. Higher = finer, tighter ripples."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=660
      MaterialExpressionGuid=6BC771083AE7110084EB7EA9D11470CD
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_13'"
   NodePosX=-1240
   NodePosY=660
   NodeGuid=134EA8C850A2C3A7AF88A72D5A2A2AB2
   CustomProperties Pin (PinId=803AFB01AA39165B2E7AD7DA0CF4D0A5,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_Custom_20 C7F3E76C14BC112DBB079599AFBCBB92,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_14"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_14"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_14"
      ParameterName="RippleSpeed"
      DefaultValue=0.05
      SliderMin=0
      SliderMax=0.5
      Group="03 Ripples"
      Desc="Ripple drift speed. Slow reads as a calm puddle; faster as light wind or disturbance."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=820
      MaterialExpressionGuid=21966A70F71C407737DF29DC05AB4A1C
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_14'"
   NodePosX=-1240
   NodePosY=820
   NodeGuid=F41F7A7C4D88516F666BF026802100B8
   CustomProperties Pin (PinId=19FFBF5929DE650B42D731F54B9D87FB,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_Custom_20 5AC13D802ECB4AB841656547A8CEBE4F,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_15"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_15"
      ParameterName="RippleFadeDistance"
      DefaultValue=4000
      SliderMin=200
      SliderMax=20000
      Group="03 Ripples"
      Desc="Camera distance (cm) over which ripples fade to flat, killing specular shimmer/aliasing on far puddles."
      MaterialExpressionEditorX=-1240
      MaterialExpressionEditorY=980
      MaterialExpressionGuid=9A436C39193439FF4FFB40770867B620
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_15'"
   NodePosX=-1240
   NodePosY=980
   NodeGuid=A17D9DBAC9629719AC31AD543DF8190F
   CustomProperties Pin (PinId=A23C87D8ABB13A399E232312ED5C1D3A,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_Custom_20 96E7127DCEE5C8E61D918822C0ABF0C8,),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.MaterialExpressionWorldPosition Name="MaterialExpressionWorldPosition_16"
   End Object
   Begin Object Name="MaterialExpressionWorldPosition_16"
      MaterialExpressionEditorX=-640
      MaterialExpressionEditorY=-360
      MaterialExpressionGuid=C8E452A52D6B07C16F3A9A4D08E11507
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionWorldPosition'MaterialExpressionWorldPosition_16'"
   NodePosX=-640
   NodePosY=-360
   NodeGuid=6E1C585D02B5CB3A8063EE25AEF46A68
   CustomProperties Pin (PinId=0A7413542B6C5B43D842F6F98A5697E6,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_18 535C999671F6A1ECD76E7401A9EFAFB1,MaterialGraphNode_Custom_20 CC79B502ED13510A446B733D53B08D95,),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.MaterialExpressionCameraPositionWS Name="MaterialExpressionCameraPositionWS_17"
   End Object
   Begin Object Name="MaterialExpressionCameraPositionWS_17"
      MaterialExpressionEditorX=-640
      MaterialExpressionEditorY=-200
      MaterialExpressionGuid=F69CC65BADAAD29A58409E814B2F0212
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCameraPositionWS'MaterialExpressionCameraPositionWS_17'"
   NodePosX=-640
   NodePosY=-200
   NodeGuid=155A692378DD62762F80CBF34062018F
   CustomProperties Pin (PinId=A92DE146F028EF084FC2266D898FE77B,PinName="Output",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_18 CD62A0BCC8752206F47AD45434DB879D,),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.MaterialExpressionDistance Name="MaterialExpressionDistance_18"
   End Object
   Begin Object Name="MaterialExpressionDistance_18"
      A=(Expression="/Script/Engine.MaterialExpressionWorldPosition'MaterialGraphNode_16.MaterialExpressionWorldPosition_16'")
      B=(Expression="/Script/Engine.MaterialExpressionCameraPositionWS'MaterialGraphNode_17.MaterialExpressionCameraPositionWS_17'")
      MaterialExpressionEditorX=-460
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=23855F170C2EE34757C3E6667A5655C4
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionDistance'MaterialExpressionDistance_18'"
   NodePosX=-460
   NodePosY=-300
   NodeGuid=89C7B4374FE36B7333B5BED6DCB2F247
   CustomProperties Pin (PinId=535C999671F6A1ECD76E7401A9EFAFB1,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 0A7413542B6C5B43D842F6F98A5697E6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=CD62A0BCC8752206F47AD45434DB879D,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 A92DE146F028EF084FC2266D898FE77B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F22DB200043628EA916930625721D622,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_Custom_20 9744DD461F21205A22A620A6B8FE203E,),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.MaterialExpressionTime Name="MaterialExpressionTime_19"
   End Object
   Begin Object Name="MaterialExpressionTime_19"
      MaterialExpressionEditorX=-640
      MaterialExpressionEditorY=-60
      MaterialExpressionGuid=B4928E633ACECD218000C473014FE65E
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionTime'MaterialExpressionTime_19'"
   NodePosX=-640
   NodePosY=-60
   NodeGuid=E45402FDF8349B60B6BCA5C29410FB0E
   CustomProperties Pin (PinId=633112E68902410A9ACB0744183F86F2,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_Custom_20 48A8601913A5B8F87E217037AF86DE73,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Custom Name="MaterialGraphNode_Custom_20"
   Begin Object Class=/Script/Engine.MaterialExpressionCustom Name="MaterialExpressionCustom_20"
   End Object
   Begin Object Name="MaterialExpressionCustom_20"
      Code="// Wet puddle decal — world-aligned procedural shape + dirt edge breakup + damp halo (returns Wetness) + animated ripple normal.\r\n#define HASH(p) frac(sin(dot((p), float2(127.1,311.7)))*43758.5453)\r\n#define VN(p) lerp(lerp(HASH(floor(p)), HASH(floor(p)+float2(1,0)), smoothstep(0.0,1.0,frac(p).x)), lerp(HASH(floor(p)+float2(0,1)), HASH(floor(p)+float2(1,1)), smoothstep(0.0,1.0,frac(p).x)), smoothstep(0.0,1.0,frac(p).y))\r\n\r\nfloat2 uv = WorldPos.xy * 0.01 * MaskTiling;          // cm -> m, then tiling (world-aligned, no UVs)\r\nfloat n  = VN(uv)*0.55 + VN(uv*2.1+7.3)*0.30 + VN(uv*4.3+3.1)*0.15;   // fbm puddle field 0..1\r\nfloat db = VN(uv*5.7 + 19.0);                          // high-freq edge break-up\r\nfloat shape = n - EdgeBreakup*0.5*db;\r\nfloat thr = 1.0 - Coverage;                            // higher Coverage = more water\r\nfloat puddle = smoothstep(thr, thr + max(EdgeSoftness,1e-3), shape);\r\nfloat halo   = smoothstep(thr - max(HaloWidth,1e-3), thr, shape);\r\nfloat wetness = max(puddle, halo*0.85);                // damp ring slightly weaker than open water\r\n\r\n// animated ripple normal — water core only, faded with camera distance\r\nfloat2 r  = WorldPos.xy * 0.01 * RippleTiling;\r\nfloat2 fa = Time*RippleSpeed*float2(1.0,0.6);\r\nfloat2 fb = Time*RippleSpeed*float2(-0.7,0.9);\r\nfloat e = 0.03;\r\nfloat hC = VN(r+fa)            + VN(r*1.7+fb);\r\nfloat hX = VN(r+float2(e,0)+fa) + VN((r+float2(e,0))*1.7+fb);\r\nfloat hY = VN(r+float2(0,e)+fa) + VN((r+float2(0,e))*1.7+fb);\r\nfloat gx = (hX-hC)/e;\r\nfloat gy = (hY-hC)/e;\r\nfloat distFade = saturate(1.0 - (CamDist - RippleFade*0.5)/max(RippleFade,1.0));\r\nfloat k = RippleIntensity * puddle * distFade;\r\nRippleNormal = normalize(float3(-gx*k, -gy*k, 1.0));\r\nreturn saturate(wetness);\r\n"
      OutputType=CMOT_Float1
      Description="Puddle_Engine"
      ShowCode=True
      bShowOutputNameOnPin=True
      Inputs(0)=(InputName="WorldPos",Input=(Expression="/Script/Engine.MaterialExpressionWorldPosition'MaterialGraphNode_16.MaterialExpressionWorldPosition_16'"))
      Inputs(1)=(InputName="Time",Input=(Expression="/Script/Engine.MaterialExpressionTime'MaterialGraphNode_19.MaterialExpressionTime_19'"))
      Inputs(2)=(InputName="CamDist",Input=(Expression="/Script/Engine.MaterialExpressionDistance'MaterialGraphNode_18.MaterialExpressionDistance_18'"))
      Inputs(3)=(InputName="MaskTiling",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_10.MaterialExpressionScalarParameter_10'"))
      Inputs(4)=(InputName="Coverage",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_7.MaterialExpressionScalarParameter_7'"))
      Inputs(5)=(InputName="EdgeSoftness",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_8.MaterialExpressionScalarParameter_8'"))
      Inputs(6)=(InputName="EdgeBreakup",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_9.MaterialExpressionScalarParameter_9'"))
      Inputs(7)=(InputName="HaloWidth",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_11.MaterialExpressionScalarParameter_11'"))
      Inputs(8)=(InputName="RippleTiling",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_13.MaterialExpressionScalarParameter_13'"))
      Inputs(9)=(InputName="RippleIntensity",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_12.MaterialExpressionScalarParameter_12'"))
      Inputs(10)=(InputName="RippleSpeed",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_14.MaterialExpressionScalarParameter_14'"))
      Inputs(11)=(InputName="RippleFade",Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_15.MaterialExpressionScalarParameter_15'"))
      AdditionalOutputs(0)=(OutputName="RippleNormal",OutputType=CMOT_Float3)
      Desc="Procedural wet-puddle engine: world-aligned fbm puddle shape with dirt-noise edge break-up and a damp halo (main output = Wetness, drives Opacity), plus an animated ripple normal gated to the water core and faded by distance. No textures, no UVs."
      MaterialExpressionEditorX=-200
      MaterialExpressionEditorY=-300
      MaterialExpressionGuid=672FC404D4977D47B2E9C2D8FAB8B372
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionCustom'MaterialExpressionCustom_20'"
   NodePosX=-200
   NodePosY=-300
   NodeGuid=57B63DD96454B54C521200FDE542C609
   CustomProperties Pin (PinId=CC79B502ED13510A446B733D53B08D95,PinName="WorldPos",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 0A7413542B6C5B43D842F6F98A5697E6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=48A8601913A5B8F87E217037AF86DE73,PinName="Time",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 633112E68902410A9ACB0744183F86F2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=9744DD461F21205A22A620A6B8FE203E,PinName="CamDist",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 F22DB200043628EA916930625721D622,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2EE7C095CCECA5C25F726D67FBFCFAA0,PinName="MaskTiling",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_10 9698F4D8C6A76817B5E4942DF96A29EE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C6DE05805A0A19CA0B25C3F69BE8D8AA,PinName="Coverage",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 6DB08F4191FD85EFA4DFC0389AB0AD86,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C5D7DDB3FF5D0FE8DC6F2296A2EA3ACB,PinName="EdgeSoftness",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 85DDD7C29D48A1CB68451FC077E32694,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=B19939911806B30D99F07AADB0E3FB66,PinName="EdgeBreakup",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 ED49C82E232EB7CC3F7CFF93BAF57242,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E97BB19FD8E68C52AFAF41E38C8EC416,PinName="HaloWidth",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 D77AB90123B6BB6B3F846F9B889548EF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C7F3E76C14BC112DBB079599AFBCBB92,PinName="RippleTiling",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_13 803AFB01AA39165B2E7AD7DA0CF4D0A5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=BE0541B36F121BCB0E1B42B74ED26071,PinName="RippleIntensity",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 A4E357202726F1ABBD32A41146C15552,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=5AC13D802ECB4AB841656547A8CEBE4F,PinName="RippleSpeed",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 19FFBF5929DE650B42D731F54B9D87FB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=96E7127DCEE5C8E61D918822C0ABF0C8,PinName="RippleFade",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 A23C87D8ABB13A399E232312ED5C1D3A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=4092667D8806111FCFAD569A2C1C9D47,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 97116129B0BF1019CECF8F857E64115F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=C55F83776607C4C122FCBFBA06EF83CD,PinName="RippleNormal",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_22 C47D2F8BF612EC9D4E8CFAB7F5D9BC74,),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.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_21"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_21"
      Name="Wetness"
      NodeColor=(R=0.200000,G=0.550000,B=1.000000,A=1.000000)
      VariableGuid=A1B2C3D4E5F60718293A4B5C6D7E8F90
      Desc="Bus signal: combined wetness mask (puddle + damp halo) from the Puddle Engine."
      Input=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_20.MaterialExpressionCustom_20'")
      MaterialExpressionEditorX=220
      MaterialExpressionEditorY=-340
      MaterialExpressionGuid=0D757814BDD4FF283A39444258405418
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_21'"
   NodePosX=220
   NodePosY=-340
   NodeGuid=B6760F912287C3A4E759A35EEFA8C1A5
   CustomProperties Pin (PinId=97116129B0BF1019CECF8F857E64115F,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_Custom_20 4092667D8806111FCFAD569A2C1C9D47,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=2A3375921671947E952C10F4B5563883,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 Name="MaterialGraphNode_22"
   Begin Object Class=/Script/Engine.MaterialExpressionNamedRerouteDeclaration Name="MaterialExpressionNamedRerouteDeclaration_22"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteDeclaration_22"
      Name="RippleNormal"
      NodeColor=(R=0.400000,G=0.800000,B=1.000000,A=1.000000)
      VariableGuid=0F1E2D3C4B5A69788796A5B4C3D2E1F0
      Desc="Bus signal: animated tangent-space ripple normal from the Puddle Engine."
      Input=(Expression="/Script/Engine.MaterialExpressionCustom'MaterialGraphNode_Custom_20.MaterialExpressionCustom_20'",OutputIndex=1)
      MaterialExpressionEditorX=220
      MaterialExpressionEditorY=-180
      MaterialExpressionGuid=29B95FBB6D4D888257192E81F8FCADEF
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteDeclaration'MaterialExpressionNamedRerouteDeclaration_22'"
   NodePosX=220
   NodePosY=-180
   NodeGuid=54EA35F98CA56931748C3009C2AE457B
   CustomProperties Pin (PinId=C47D2F8BF612EC9D4E8CFAB7F5D9BC74,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_Custom_20 C55F83776607C4C122FCBFBA06EF83CD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=874914F2F4370F14AA55737E67D2704D,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 Name="MaterialGraphNode_23"
   Begin Object Class=/Script/Engine.MaterialExpressionVectorParameter Name="MaterialExpressionVectorParameter_23"
   End Object
   Begin Object Name="MaterialExpressionVectorParameter_23"
      ParameterName="PuddleTint"
      DefaultValue=(R=0.02,G=0.025,B=0.03,A=1)
      Group="02 Wetness"
      Desc="Colour the wet ground darkens toward. Near-black with a faint cool tint reads as deep, clean water. Blended in by the wetness mask via Opacity."
      MaterialExpressionEditorX=660
      MaterialExpressionEditorY=-460
      MaterialExpressionGuid=4C87BB3F2D8C4896856C5B8503A04535
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionVectorParameter'MaterialExpressionVectorParameter_23'"
   NodePosX=660
   NodePosY=-460
   NodeGuid=CA7C6F9C8C010B8B21431867D4B36A47
   CustomProperties Pin (PinId=B0CB90B543A42031037DDF51A81C3530,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_Root_29 49EC304D3B1A9595973EE8EEE027CBD0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=6AC3AF7EAB5524CD9866F3237119A10A,PinName="R",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=82BC0A18B252B21EBCF391BAEFB771C8,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=23C00B547E5AEE08FDE9FC44982DBA8C,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=F16433194D5D0673D0831D9350461278,PinName="A",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_24"
   Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_24"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_24"
      ParameterName="WaterRoughness"
      DefaultValue=0.04
      SliderMin=0
      SliderMax=0.3
      Group="02 Wetness"
      Desc="Roughness of the water surface. Low = sharp, mirror-like reflections. The damp halo blends to it partially, reading as a softer sheen."
      MaterialExpressionEditorX=660
      MaterialExpressionEditorY=-220
      MaterialExpressionGuid=993C9215CB35D59CC4F23CC7F7A8CCC6
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_24'"
   NodePosX=660
   NodePosY=-220
   NodeGuid=2F2414CDED5D868A8E222BBFF4F276E3
   CustomProperties Pin (PinId=145F3C24EE507FFD432239424DD2DFA9,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_Root_29 783FC323574D1A434D6D94BED7FBF4A3,),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.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_25"
   End Object
   Begin Object Name="MaterialExpressionScalarParameter_25"
      ParameterName="WetStrength"
      DefaultValue=1
      SliderMin=0
      SliderMax=1
      Group="02 Wetness"
      Desc="Master blend strength of the whole decal (how strongly it overrides the dry surface). 1 = full wet, lower for a subtle damp pass."
      MaterialExpressionEditorX=660
      MaterialExpressionEditorY=20
      MaterialExpressionGuid=3B10E9B28F85958D53ACA9313AB1ED22
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_25'"
   NodePosX=660
   NodePosY=20
   NodeGuid=8355E8356E36F97F907595E8F0DD7E2C
   CustomProperties Pin (PinId=894E14AA7308140288895A66D16006F0,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 F2A7DC2F2885850230C2E685121D8112,),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.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_26"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_26"
      DeclarationGuid=A1B2C3D4E5F60718293A4B5C6D7E8F90
      MaterialExpressionEditorX=660
      MaterialExpressionEditorY=160
      MaterialExpressionGuid=BF136B869AC120DB8FC76D1B6B46470D
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_26'"
   NodePosX=660
   NodePosY=160
   NodeGuid=8C55EB4FD029558583B599CE21631E6D
   CustomProperties Pin (PinId=E674AE06E0C73E87378381AE249712BF,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 F7D1BFEDC2202D4C60A36758293C386F,),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.MaterialExpressionMultiply Name="MaterialExpressionMultiply_27"
   End Object
   Begin Object Name="MaterialExpressionMultiply_27"
      A=(Expression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialGraphNode_26.MaterialExpressionNamedRerouteUsage_26'")
      B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_25.MaterialExpressionScalarParameter_25'")
      MaterialExpressionEditorX=880
      MaterialExpressionEditorY=80
      MaterialExpressionGuid=3E349AB9FD595C5771CCDA93805D27A9
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_27'"
   NodePosX=880
   NodePosY=80
   NodeGuid=FA0FFB1A6BEEFF2573984B0ABE0D9B83
   CustomProperties Pin (PinId=F7D1BFEDC2202D4C60A36758293C386F,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_26 E674AE06E0C73E87378381AE249712BF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=F2A7DC2F2885850230C2E685121D8112,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_25 894E14AA7308140288895A66D16006F0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=749B4BA8B46A2BFD62B60A48D9CCAE14,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_Root_29 761102F3B50F2A5B3D1B2C2A02E2C98B,),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.MaterialExpressionNamedRerouteUsage Name="MaterialExpressionNamedRerouteUsage_28"
   End Object
   Begin Object Name="MaterialExpressionNamedRerouteUsage_28"
      DeclarationGuid=0F1E2D3C4B5A69788796A5B4C3D2E1F0
      MaterialExpressionEditorX=660
      MaterialExpressionEditorY=360
      MaterialExpressionGuid=E07058613CD45339079A3BC628A994DF
      Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   End Object
   MaterialExpression="/Script/Engine.MaterialExpressionNamedRerouteUsage'MaterialExpressionNamedRerouteUsage_28'"
   NodePosX=660
   NodePosY=360
   NodeGuid=8976018D83E3DC3492CEB211E1C0E64E
   CustomProperties Pin (PinId=0F8C6B1C4D36AB05D349CCFAACC6B3E2,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_Root_29 E48530DD88359522D01B080DBB8AAE62,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Root Name="MaterialGraphNode_Root_29"
   Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.Pasted_material'"
   NodePosX=1373
   NodePosY=-164
   NodeGuid=4F0635CE5FC365F6E152AC463AB8243F
   CustomProperties Pin (PinId=49EC304D3B1A9595973EE8EEE027CBD0,PinName="Base Color",PinType.PinCategory="materialinput",PinType.PinSubCategory="rgba",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_23 B0CB90B543A42031037DDF51A81C3530,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=783FC323574D1A434D6D94BED7FBF4A3,PinName="Roughness",PinType.PinCategory="materialinput",PinType.PinSubCategory="red",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 145F3C24EE507FFD432239424DD2DFA9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=761102F3B50F2A5B3D1B2C2A02E2C98B,PinName="Opacity",PinType.PinCategory="materialinput",PinType.PinSubCategory="red",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 749B4BA8B46A2BFD62B60A48D9CCAE14,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
   CustomProperties Pin (PinId=E48530DD88359522D01B080DBB8AAE62,PinName="Normal",PinType.PinCategory="materialinput",PinType.PinSubCategory="rgb",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 0F8C6B1C4D36AB05D349CCFAACC6B3E2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False)
End Object

Nodes: ScalarParameter (x11), Comment (x7), NamedRerouteDeclaration (x2), NamedRerouteUsage (x2), CameraPositionWS, Custom, Distance, Material, Multiply, Time, VectorParameter, WorldPosition

more from @hazesee all

Caustics (Light Function)

@hazeUE 5.5+

Holographic Signs

@hazeUE 5.6+

Fog Card

@hazeUE 5.6+

More like this

UV Transform - Node Group

@staticUE 5.6+

Texture Bombing

@hazeUE 5.6

World-Aligned Triplanar

@hazeUE 5.6+

Water Puddle

@hazefounder
UE 5.7

1
license

CC0 1.0: Public Domain

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

dependencies

Zero dependencies

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

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

Details

Last update
3 days ago
Published
3 days ago
Nodes
30