Using mask texture creates artefacts between mask values

I am trying to make a simple scrolling texture where the scrolling speed of the parts of the texture is controlled be a mask.

Here is the mask:
msk

The mask has sharp transitions and now I have run into problem where there are weird line artefacts between mask values. Like so:

Here is an example node setup:

I am suspecting that this is due to the texture compression but after playing around with different settings I haven’t found anything that would resolve this problem. Changing bitrate and format of the source texture also didn’t help.
Does anyone have some idea on how to make the values be exact without lines in between?

Hello Cooba, Welcome to the Forums.

Cool material, I re-constructed it and changed the texture group to ‘2D Pixels (Unfiltered)’ but I still see the lines.

Experimented with a few more texture settings, but not sure how else to troubleshoot.

One path forward might be to create those bands through shader logic instead of relying on a texture. (Although not sure how to do that from the ground-up, there are some ‘Generate Band’ nodes in UE though!)

Pastable material nodes if anyone else wants to experiment:

Copy paste this into material graph

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_0” ExportPath=“/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_0’”
Begin Object Class=/Script/Engine.MaterialExpressionTextureSample Name=“MaterialExpressionTextureSample_0” ExportPath=“/Script/Engine.MaterialExpressionTextureSample’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_0.MaterialExpressionTextureSample_0’”
End Object
Begin Object Name=“MaterialExpressionTextureSample_0” ExportPath=“/Script/Engine.MaterialExpressionTextureSample’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_0.MaterialExpressionTextureSample_0’”
Texture=“/Script/Engine.Texture2D’/Game/Materials/msk.msk’”
MaterialExpressionEditorX=-1360
MaterialExpressionEditorY=368
MaterialExpressionGuid=C3A7F05A47D57B6AD26BE1B6C73A6884
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionTextureSample’MaterialExpressionTextureSample_0’”
NodePosX=-1360
NodePosY=368
AdvancedPinDisplay=Hidden
ErrorType=1
ErrorMsg=“Sampler type is Color, should be Linear Color for /Game/Materials/msk.msk”
NodeGuid=31C5FB704F1E1ED3842D74A86B281F29
CustomProperties Pin (PinId=063DFDF44374E9ED386603867AC51BB8,PinName=“UVs”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“byte”,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,DefaultValue=“0”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=DB004E4647DA051AA7454EB3F99358F4,PinName=“Tex”,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=EA94DDBB4C86A98DCFDADA877826F7E5,PinName=“Apply View MipBias”,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=D8BBB0F64573242BE7251BBF317F0DE2,PinName=“MipValueMode”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“byte”,PinType.PinSubCategoryObject=“/Script/CoreUObject.Enum’/Script/Engine.ETextureMipValueMode’”,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue=“None (use computed mip level)”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=AD3D69E64CB9D54C9D90CF9ACA7B9565,PinName=“Sampler Source”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“byte”,PinType.PinSubCategoryObject=“/Script/CoreUObject.Enum’/Script/Engine.ESamplerSourceMode’”,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue=“From texture asset”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=34B3467C4271887EC91C0FB63446EFB1,PinName=“Sampler Type”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“byte”,PinType.PinSubCategoryObject=“/Script/CoreUObject.Enum’/Script/Engine.EMaterialSamplerType’”,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue=“Color”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=1C68BBFF46427B96F19AAFAAC20FC565,PinName=“RGB”,Direction=“EGPD_Output”,PinType.PinCategory=“mask”,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=AFB94BB64449DCAED1EEDA93EFD00F01,PinName=“R”,Direction=“EGPD_Output”,PinType.PinCategory=“mask”,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_1 BF8CCDD74EA3E75FB96E85AE6BECE704,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=6D9D96E14A75DD45FB78A4848DEF761A,PinName=“G”,Direction=“EGPD_Output”,PinType.PinCategory=“mask”,PinType.PinSubCategory=“green”,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=62EF2DB9482F5C75EFBFADBE3EB0066D,PinName=“B”,Direction=“EGPD_Output”,PinType.PinCategory=“mask”,PinType.PinSubCategory=“blue”,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=5D87702D4B914408BF3DE78CC13D70AD,PinName=“A”,Direction=“EGPD_Output”,PinType.PinCategory=“mask”,PinType.PinSubCategory=“alpha”,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=D18D73AF467441BB8F44729B7885CD6E,PinName=“RGBA”,Direction=“EGPD_Output”,PinType.PinCategory=“mask”,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,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_1” ExportPath=“/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_1’”
Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name=“MaterialExpressionMultiply_0” ExportPath=“/Script/Engine.MaterialExpressionMultiply’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_1.MaterialExpressionMultiply_0’”
End Object
Begin Object Name=“MaterialExpressionMultiply_0” ExportPath=“/Script/Engine.MaterialExpressionMultiply’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_1.MaterialExpressionMultiply_0’”
A=(Expression=“/Script/Engine.MaterialExpressionTextureSample’MaterialGraphNode_0.MaterialExpressionTextureSample_0’”,OutputIndex=1,Mask=1,MaskR=1)
ConstB=0.200000
MaterialExpressionEditorX=-1056
MaterialExpressionEditorY=608
MaterialExpressionGuid=77ECB47E40B1E9F72420A69525D6225A
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
bCollapsed=False
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionMultiply’MaterialExpressionMultiply_0’”
NodePosX=-1056
NodePosY=608
NodeGuid=7CAF9B02474616443C985FB0C9D0605F
CustomProperties Pin (PinId=BF8CCDD74EA3E75FB96E85AE6BECE704,PinName=“A”,PinType.PinCategory=“optional”,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,DefaultValue=“0.0”,LinkedTo=(MaterialGraphNode_0 AFB94BB64449DCAED1EEDA93EFD00F01,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=05439F53426B63718800859FA5C63D1D,PinName=“B”,PinType.PinCategory=“optional”,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,DefaultValue=“0.2”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=458340164B159D5FC49F5F8AE044D763,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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_2 4DE490FD4D0682A2F9403AACB338F44C,),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” ExportPath=”/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_2’"
Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name=“MaterialExpressionMultiply_1” ExportPath=“/Script/Engine.MaterialExpressionMultiply’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_2.MaterialExpressionMultiply_1’”
End Object
Begin Object Name=“MaterialExpressionMultiply_1” ExportPath=“/Script/Engine.MaterialExpressionMultiply’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_2.MaterialExpressionMultiply_1’”
A=(Expression=“/Script/Engine.MaterialExpressionTime’MaterialGraphNode_4.MaterialExpressionTime_0’”)
B=(Expression=“/Script/Engine.MaterialExpressionMultiply’MaterialGraphNode_1.MaterialExpressionMultiply_0’”)
MaterialExpressionEditorX=-759
MaterialExpressionEditorY=418
MaterialExpressionGuid=EE458E33445B02FFA3AE4FB798C6F4AF
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
bCollapsed=False
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionMultiply’MaterialExpressionMultiply_1’”
NodePosX=-759
NodePosY=418
NodeGuid=F6C55B7843B08BFF48ED0FAC03D229F6
CustomProperties Pin (PinId=1A6A1DB84500F660EDD8A0B7877F6363,PinName=“A”,PinType.PinCategory=“optional”,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,DefaultValue=“0.0”,LinkedTo=(MaterialGraphNode_4 A2EFE21649FFCA51204469BF7368B6A2,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4DE490FD4D0682A2F9403AACB338F44C,PinName=“B”,PinType.PinCategory=“optional”,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,DefaultValue=“1.0”,LinkedTo=(MaterialGraphNode_1 458340164B159D5FC49F5F8AE044D763,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=61B9B4F144B8F2FB3A712195A2872505,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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 5BDCE71B40CBD26D0623599F20DDEC4B,),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” ExportPath=”/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_3’"
Begin Object Class=/Script/Engine.MaterialExpressionAdd Name=“MaterialExpressionAdd_0” ExportPath=“/Script/Engine.MaterialExpressionAdd’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_3.MaterialExpressionAdd_0’”
End Object
Begin Object Name=“MaterialExpressionAdd_0” ExportPath=“/Script/Engine.MaterialExpressionAdd’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_3.MaterialExpressionAdd_0’”
A=(Expression=“/Script/Engine.MaterialExpressionTextureCoordinate’MaterialGraphNode_8.MaterialExpressionTextureCoordinate_0’”)
B=(Expression=“/Script/Engine.MaterialExpressionAppendVector’MaterialGraphNode_6.MaterialExpressionAppendVector_0’”)
MaterialExpressionEditorX=-208
MaterialExpressionEditorY=272
MaterialExpressionGuid=403D00AB40E95A736A66109699AFA948
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
bCollapsed=False
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionAdd’MaterialExpressionAdd_0’”
NodePosX=-208
NodePosY=272
ErrorType=1
ErrorMsg=“Invalid input types: float2, float4”
NodeGuid=69C7507E4498C35D198C4C84E4DA4DA2
CustomProperties Pin (PinId=7106640D4F31CA54F3E57481ABAB1BE3,PinName=“A”,PinType.PinCategory=“optional”,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,DefaultValue=“0.0”,LinkedTo=(MaterialGraphNode_8 AD2E7B2C4194309F8073859C5C5572DB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9AE2A66B4C30840C58852D8D7FA9C389,PinName=“B”,PinType.PinCategory=“optional”,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,DefaultValue=“1.0”,LinkedTo=(MaterialGraphNode_6 A9F4E87845DCACB08A8D2FB3F1BB7E24,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=51469A344E53A000C53D269C1C5DCF6E,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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_0 A2B39B8E411FA9C510584FB68DB35CF0,),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” ExportPath=”/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_4’"
Begin Object Class=/Script/Engine.MaterialExpressionTime Name=“MaterialExpressionTime_0” ExportPath=“/Script/Engine.MaterialExpressionTime’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_4.MaterialExpressionTime_0’”
End Object
Begin Object Name=“MaterialExpressionTime_0” ExportPath=“/Script/Engine.MaterialExpressionTime’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_4.MaterialExpressionTime_0’”
MaterialExpressionEditorX=-986
MaterialExpressionEditorY=361
MaterialExpressionGuid=E2E1C2A64C2E6E3CE97F34B86BE23B95
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionTime’MaterialExpressionTime_0’”
NodePosX=-986
NodePosY=361
NodeGuid=1E4E6D7E49852D440F7CE8A4D002AD79
CustomProperties Pin (PinId=A2EFE21649FFCA51204469BF7368B6A2,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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_2 1A6A1DB84500F660EDD8A0B7877F6363,),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” ExportPath=”/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_5’"
Begin Object Class=/Script/Engine.MaterialExpressionFrac Name=“MaterialExpressionFrac_0” ExportPath=“/Script/Engine.MaterialExpressionFrac’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_5.MaterialExpressionFrac_0’”
End Object
Begin Object Name=“MaterialExpressionFrac_0” ExportPath=“/Script/Engine.MaterialExpressionFrac’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_5.MaterialExpressionFrac_0’”
Input=(Expression=“/Script/Engine.MaterialExpressionMultiply’MaterialGraphNode_2.MaterialExpressionMultiply_1’”)
MaterialExpressionEditorX=-480
MaterialExpressionEditorY=512
MaterialExpressionGuid=21022DF84983A5945915E88CB627FE19
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
bCollapsed=False
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionFrac’MaterialExpressionFrac_0’”
NodePosX=-480
NodePosY=512
NodeGuid=3A7E6FD9432BD0F20960DAA7E553F677
CustomProperties Pin (PinId=5BDCE71B40CBD26D0623599F20DDEC4B,PinName=“Input”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),PinType.PinCategory=“required”,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 61B9B4F144B8F2FB3A712195A2872505,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=4827FC814CEE90ADF6EBCFA08FF36F08,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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 E774D69240E98EFF8C42F3B5A79E512E,),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” ExportPath=“/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_6’”
Begin Object Class=/Script/Engine.MaterialExpressionAppendVector Name=“MaterialExpressionAppendVector_0” ExportPath=“/Script/Engine.MaterialExpressionAppendVector’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_6.MaterialExpressionAppendVector_0’”
End Object
Begin Object Name=“MaterialExpressionAppendVector_0” ExportPath=“/Script/Engine.MaterialExpressionAppendVector’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_6.MaterialExpressionAppendVector_0’”
A=(Expression=“/Script/Engine.MaterialExpressionConstant’MaterialGraphNode_7.MaterialExpressionConstant_0’”)
B=(Expression=“/Script/Engine.MaterialExpressionFrac’MaterialGraphNode_5.MaterialExpressionFrac_0’”)
MaterialExpressionEditorX=-352
MaterialExpressionEditorY=352
MaterialExpressionGuid=DA043C1D4E357DF7C9FC6CA3F8D478C9
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionAppendVector’MaterialExpressionAppendVector_0’”
NodePosX=-352
NodePosY=352
NodeGuid=9A02B3AC4C19FC41DE250A8BFB522C96
CustomProperties Pin (PinId=BCB3F96E48E972A50AAB62A62002EBB7,PinName=“A”,PinType.PinCategory=“required”,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 890101134361DAE445DEE8AD30C86359,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=E774D69240E98EFF8C42F3B5A79E512E,PinName=“B”,PinType.PinCategory=“required”,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 4827FC814CEE90ADF6EBCFA08FF36F08,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=A9F4E87845DCACB08A8D2FB3F1BB7E24,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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_3 9AE2A66B4C30840C58852D8D7FA9C389,),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” ExportPath=”/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_7’"
Begin Object Class=/Script/Engine.MaterialExpressionConstant Name=“MaterialExpressionConstant_0” ExportPath=“/Script/Engine.MaterialExpressionConstant’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_7.MaterialExpressionConstant_0’”
End Object
Begin Object Name=“MaterialExpressionConstant_0” ExportPath=“/Script/Engine.MaterialExpressionConstant’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_7.MaterialExpressionConstant_0’”
MaterialExpressionEditorX=-544
MaterialExpressionEditorY=352
MaterialExpressionGuid=F6F047A2476F94E90E3594B593DCB9FA
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionConstant’MaterialExpressionConstant_0’”
NodePosX=-544
NodePosY=352
NodeGuid=470FCCA34C85AC1B163B28834541A4D3
CustomProperties Pin (PinId=E88B5E5F477C3F2CD5E0F08465F2C926,PinName=“Value”,PinType.PinCategory=“optional”,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,DefaultValue=“0.0”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=890101134361DAE445DEE8AD30C86359,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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 BCB3F96E48E972A50AAB62A62002EBB7,),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” ExportPath=”/Script/UnrealEd.MaterialGraphNode’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_8’"
Begin Object Class=/Script/Engine.MaterialExpressionTextureCoordinate Name=“MaterialExpressionTextureCoordinate_0” ExportPath=“/Script/Engine.MaterialExpressionTextureCoordinate’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_8.MaterialExpressionTextureCoordinate_0’”
End Object
Begin Object Name=“MaterialExpressionTextureCoordinate_0” ExportPath=“/Script/Engine.MaterialExpressionTextureCoordinate’/Engine/Transient.MaskMat:MaterialGraph_0.MaterialGraphNode_8.MaterialExpressionTextureCoordinate_0’”
MaterialExpressionEditorX=-528
MaterialExpressionEditorY=208
MaterialExpressionGuid=752379EB460506B1C20264A1B32D4459
Material=“/Script/UnrealEd.PreviewMaterial’/Engine/Transient.MaskMat’”
End Object
MaterialExpression=“/Script/Engine.MaterialExpressionTextureCoordinate’MaterialExpressionTextureCoordinate_0’”
NodePosX=-528
NodePosY=208
AdvancedPinDisplay=Hidden
NodeGuid=377731FF456EFFE4A57C2F83F02D8A46
CustomProperties Pin (PinId=A62870224047BF937E152A948CC4E7BD,PinName=“Coordinate Index”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“int”,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,DefaultValue=“0”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=F4ACCCE14059E67687FED184DF13E092,PinName=“UTiling”,PinType.PinCategory=“optional”,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,DefaultValue=“1.0”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=80E21C834BC6EA0CA4A899995CBECF5F,PinName=“VTiling”,PinType.PinCategory=“optional”,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,DefaultValue=“1.0”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=A6F5B3744300B36E555E8A86B2E9156E,PinName=“Un Mirror U”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“bool”,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,DefaultValue=“false”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=5C3768E24B36CC4AB09DCEACB4970780,PinName=“Un Mirror V”,PinType.PinCategory=“optional”,PinType.PinSubCategory=“bool”,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,DefaultValue=“false”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
CustomProperties Pin (PinId=AD2E7B2C4194309F8073859C5C5572DB,PinName=“Output”,PinFriendlyName=NSLOCTEXT(“MaterialGraphNode”, “Space”, " “),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_3 7106640D4F31CA54F3E57481ABAB1BE3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object

Mips.
Disable mips.

Also you got to clamp.
Your result is our of range after you multiply and add time. Keep it relevant to the texture space if you use it as a texture. 0 to 1 values per channel.