How to create a vertex shader similar to Subway Surfers?

I’m trying to make a post processing shader/material for an infinite runner like Subway Surfers. In SS they spawn their map pieces all in a straight row then use the shader to simulate the turning. I’ve got a cubic lens distortion shader working from a tutorial from http://eat3d.com/free/ue4-shader-fx-cubic-lens-distortion but I can’t figure out how to get it to work without a texture. The post processing effect simply shows the texture and not the rest of the game.

Can anyone point me in the right direction as to how to do this? I haven’t used UE4 long, I’ve got more of a Unity background. Would it be possible to find and grab the material/shaders from the VR demo and use that?

Hey,

I’ve tried to achieve the curvature effect seen in Subway Surfer with a different approach. I use a Material on the objects themselves that I would like to be affected by the curvature. It’s a simple a maybe not perfect solution, I’d gladly accept any ideas to improve it.

Here is the relevant part of the material:

To utilize it, simply connect the output of the rightmost node to WorldPositionOffset input in your material.

The effect in action, with and without the connection to WorldPositionOffset:

I hope it helps!

This works great! Thanks for the help

Is it possible to make pivot point a little away from camera? Something like this:

https://scontent-lhr.xx.fbcdn.net/hphotos-xpf1/t31.0-8/1291782_877193258971472_913421140384402982_o.jpg

Wow! That’s fantastic, thank you for sharing.

Any way to change the direction?

THANKS! very nice :wink:

Yes you can use the const3 node connected to the cross product and expose it as parameter and experiment with it to find the direction in which the effect goes and you can use -1 as a value to make the effect go in the reverse direction.

This one here is a material function just copy the code and paste it in the material function canvest ;3

  • The Code -

Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_1”
Begin Object Class=/Script/Engine.MaterialExpressionWorldPosition Name=“MaterialExpressionWorldPosition_0”
End Object
Begin Object Name=“MaterialExpressionWorldPosition_0”
MaterialExpressionEditorX=-1680
MaterialExpressionEditorY=288
MaterialExpressionGuid=8EED91E548BBFF8F0FEE0B9A7B89264E
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionWorldPosition’“MaterialExpressionWorldPosition_0”’
NodePosX=-1680
NodePosY=288
NodeGuid=4BBEEA3A46CED6F92692B6BB3239C545
CustomProperties Pin (PinId=BD432E264B80B15BCE45C7B2FA6C27F6,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_3 5603308A43BF25C5B958F08DA3D8D2B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_2”
Begin Object Class=/Script/Engine.MaterialExpressionCameraPositionWS Name=“MaterialExpressionCameraPositionWS_0”
End Object
Begin Object Name=“MaterialExpressionCameraPositionWS_0”
MaterialExpressionEditorX=-1632
MaterialExpressionEditorY=368
MaterialExpressionGuid=8D74A01649569A333CF8ED96AE27C498
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionCameraPositionWS’“MaterialExpressionCameraPositionWS_0”’
NodePosX=-1632
NodePosY=368
NodeGuid=89F001FA4B1DF3C555B5068469251043
CustomProperties Pin (PinId=BC0425FD4AE35E6072F844946F1EA24E,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_4 33F566664B0D57C90D077FB88C12668F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_3”
Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name=“MaterialExpressionComponentMask_0”
End Object
Begin Object Name=“MaterialExpressionComponentMask_0”
Input=(Expression=MaterialExpressionWorldPosition’“MaterialGraphNode_1.MaterialExpressionWorldPosition_0”’)
R=True
G=True
B=True
MaterialExpressionEditorX=-1488
MaterialExpressionEditorY=304
MaterialExpressionGuid=5AC9549148B59A6BA7D997A1F09FAAEE
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionComponentMask’“MaterialExpressionComponentMask_0”’
NodePosX=-1488
NodePosY=304
NodeGuid=C5E5D53A4BEBFA84946711BE51169B1C
CustomProperties Pin (PinId=5603308A43BF25C5B958F08DA3D8D2B8,PinName=“Input”,PinFriendlyName=" “,PinType.PinCategory=“required”,PinType.PinSubCategory=”",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_1 BD432E264B80B15BCE45C7B2FA6C27F6,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=7CF69E5B4A4BE7B5DFF3789C40BA71EB,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 5FDC9677402B3D6F1D76E6B7039BC662,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_4”
Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name=“MaterialExpressionComponentMask_1”
End Object
Begin Object Name=“MaterialExpressionComponentMask_1”
Input=(Expression=MaterialExpressionCameraPositionWS’“MaterialGraphNode_2.MaterialExpressionCameraPositionWS_0”’)
R=True
G=True
B=True
MaterialExpressionEditorX=-1488
MaterialExpressionEditorY=384
MaterialExpressionGuid=5AC9549148B59A6BA7D997A1F09FAAEE
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionComponentMask’“MaterialExpressionComponentMask_1”’
NodePosX=-1488
NodePosY=384
NodeGuid=EFD33F8F4B428159B8C320BF8CE29BB9
CustomProperties Pin (PinId=33F566664B0D57C90D077FB88C12668F,PinName=“Input”,PinFriendlyName=" “,PinType.PinCategory=“required”,PinType.PinSubCategory=”",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_2 BC0425FD4AE35E6072F844946F1EA24E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=12A8520B4F0091B87347BC9CB4A1A486,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 7102276646575E9A1CD9AEB574DD7434,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_5”
Begin Object Class=/Script/Engine.MaterialExpressionSubtract Name=“MaterialExpressionSubtract_0”
End Object
Begin Object Name=“MaterialExpressionSubtract_0”
A=(Expression=MaterialExpressionComponentMask’“MaterialGraphNode_3.MaterialExpressionComponentMask_0”’)
B=(Expression=MaterialExpressionComponentMask’“MaterialGraphNode_4.MaterialExpressionComponentMask_1”’)
MaterialExpressionEditorX=-1312
MaterialExpressionEditorY=320
MaterialExpressionGuid=A56B4BC44AA52B585C7B9FAC93AF694E
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionSubtract’“MaterialExpressionSubtract_0”’
NodePosX=-1312
NodePosY=320
NodeGuid=CE06122E4F9C9AD5F57AD98CF7FC8629
CustomProperties Pin (PinId=5FDC9677402B3D6F1D76E6B7039BC662,PinName=“A”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_3 7CF69E5B4A4BE7B5DFF3789C40BA71EB,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=7102276646575E9A1CD9AEB574DD7434,PinName=“B”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_4 12A8520B4F0091B87347BC9CB4A1A486,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=F8F110CD42752EB9FB938590C0C4BFD1,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_6 9ED90CC84F37E108E7FDCC8D939B8D6A,MaterialGraphNode_7 C6D02D6947C9FB0D06B1E8ACA609E7B5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_6”
Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name=“MaterialExpressionComponentMask_3”
End Object
Begin Object Name=“MaterialExpressionComponentMask_3”
Input=(Expression=MaterialExpressionSubtract’“MaterialGraphNode_5.MaterialExpressionSubtract_0”’)
R=True
G=True
MaterialExpressionEditorX=-1120
MaterialExpressionEditorY=288
MaterialExpressionGuid=5AC9549148B59A6BA7D997A1F09FAAEE
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionComponentMask’“MaterialExpressionComponentMask_3”’
NodePosX=-1120
NodePosY=288
NodeGuid=E378CF214A4CC7FE7B8555B0E7B5CECD
CustomProperties Pin (PinId=9ED90CC84F37E108E7FDCC8D939B8D6A,PinName=“Input”,PinFriendlyName=" “,PinType.PinCategory=“required”,PinType.PinSubCategory=”",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 F8F110CD42752EB9FB938590C0C4BFD1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=B2CD26184DF55DB23606BA9EEB8C1684,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_9 1F21E4EA42C9A2676DD973B959D3076B,MaterialGraphNode_9 F2C7502441EBA41A43D996A8A9CC1E4F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_7”
Begin Object Class=/Script/Engine.MaterialExpressionComponentMask Name=“MaterialExpressionComponentMask_4”
End Object
Begin Object Name=“MaterialExpressionComponentMask_4”
Input=(Expression=MaterialExpressionSubtract’“MaterialGraphNode_5.MaterialExpressionSubtract_0”’)
G=True
MaterialExpressionEditorX=-1120
MaterialExpressionEditorY=384
MaterialExpressionGuid=5AC9549148B59A6BA7D997A1F09FAAEE
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionComponentMask’“MaterialExpressionComponentMask_4”’
NodePosX=-1120
NodePosY=384
NodeGuid=E7EFEFB94D04DF59AABAE58264B942BE
CustomProperties Pin (PinId=C6D02D6947C9FB0D06B1E8ACA609E7B5,PinName=“Input”,PinFriendlyName=" “,PinType.PinCategory=“required”,PinType.PinSubCategory=”",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_5 F8F110CD42752EB9FB938590C0C4BFD1,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=FD2932D44E09C61312450D81BFE763DD,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_8 C800A4354B96750FB23233B8FA5CF1D4,MaterialGraphNode_8 708E53D74D4C0BA55556C799D7D5F12B,),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.MaterialExpressionMultiply Name=“MaterialExpressionMultiply_0”
End Object
Begin Object Name=“MaterialExpressionMultiply_0”
A=(Expression=MaterialExpressionComponentMask’“MaterialGraphNode_7.MaterialExpressionComponentMask_4”’)
B=(Expression=MaterialExpressionComponentMask’“MaterialGraphNode_7.MaterialExpressionComponentMask_4”’)
MaterialExpressionEditorX=-944
MaterialExpressionEditorY=384
MaterialExpressionGuid=99742EC746C9AEF8FA57ADAA115AB374
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionMultiply’“MaterialExpressionMultiply_0”’
NodePosX=-944
NodePosY=384
NodeGuid=AD2E6736496E1005CFCA2D95AE953CAD
CustomProperties Pin (PinId=C800A4354B96750FB23233B8FA5CF1D4,PinName=“A”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_7 FD2932D44E09C61312450D81BFE763DD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=708E53D74D4C0BA55556C799D7D5F12B,PinName=“B”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_7 FD2932D44E09C61312450D81BFE763DD,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=9DA11D5041B46F21825A57BF76D27C0C,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 FA9D9ACB45A655105815E7A06CFE1760,),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.MaterialExpressionMultiply Name=“MaterialExpressionMultiply_1”
End Object
Begin Object Name=“MaterialExpressionMultiply_1”
A=(Expression=MaterialExpressionComponentMask’“MaterialGraphNode_6.MaterialExpressionComponentMask_3”’)
B=(Expression=MaterialExpressionComponentMask’“MaterialGraphNode_6.MaterialExpressionComponentMask_3”’)
MaterialExpressionEditorX=-957
MaterialExpressionEditorY=259
MaterialExpressionGuid=F03CCE854A09BA0C04A01FA70B07CB87
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionMultiply’“MaterialExpressionMultiply_1”’
NodePosX=-957
NodePosY=259
NodeGuid=A9026744451B44FA7C5090959673F44C
CustomProperties Pin (PinId=1F21E4EA42C9A2676DD973B959D3076B,PinName=“A”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_6 B2CD26184DF55DB23606BA9EEB8C1684,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=F2C7502441EBA41A43D996A8A9CC1E4F,PinName=“B”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_6 B2CD26184DF55DB23606BA9EEB8C1684,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8C70EB534025C49D1E2748AEE226273E,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 E97C0E284F32B25EDB35249D69ABA745,),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_0”
End Object
Begin Object Name=“MaterialExpressionScalarParameter_0”
DefaultValue=-0.000010
ParameterName=“Strength”
ExpressionGUID=2A350B0749E52023B6ACE083DFAD68FB
MaterialExpressionEditorX=-976
MaterialExpressionEditorY=496
MaterialExpressionGuid=0704663C4E9D9E81691564BD6AA57945
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionScalarParameter’“MaterialExpressionScalarParameter_0”’
NodePosX=-976
NodePosY=496
bCanRenameNode=True
NodeGuid=A1AD4C6E48FBD402EC214DA2B3AF2999
CustomProperties Pin (PinId=4B15C0114701836555A262A86C136411,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 01F856B44E3B8D51D8B54AAAC1075033,),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.MaterialExpressionMaterialFunctionCall Name=“MaterialExpressionMaterialFunctionCall_1”
End Object
Begin Object Name=“MaterialExpressionMaterialFunctionCall_1”
MaterialFunction=MaterialFunction’"/Engine/Functions/Engine_MaterialFunctions02/Utility/MakeFloat3.MakeFloat3"’
FunctionInputs(0)=(ExpressionInputId=529C1D96441E07EB03A9E59B8A7F67B6,Input=(Expression=MaterialExpressionScalarParameter’“MaterialGraphNode_12.MaterialExpressionScalarParameter_1”’,InputName=“X”))
FunctionInputs(1)=(ExpressionInputId=B5BD7D1B494F6928732CCDA1C63D8E15,Input=(Expression=MaterialExpressionScalarParameter’“MaterialGraphNode_12.MaterialExpressionScalarParameter_1”’,InputName=“Y”))
FunctionInputs(2)=(ExpressionInputId=050F17B8471570B47A802CB7CAA5A201,Input=(Expression=MaterialExpressionMultiply’“MaterialGraphNode_14.MaterialExpressionMultiply_2”’,InputName=“Z”))
FunctionOutputs(0)=(ExpressionOutputId=0DD6F9954C067C3E5DDBBBA0D6910DD2,Output=(OutputName=“Result”))
MaterialExpressionEditorX=-416
MaterialExpressionEditorY=320
MaterialExpressionGuid=E6D513474064414D814C50B0E5C37F60
Material=Material’"/Engine/Transient.Material_1"’
Outputs(0)=(OutputName=“Result”)
End Object
MaterialExpression=MaterialExpressionMaterialFunctionCall’“MaterialExpressionMaterialFunctionCall_1”’
NodePosX=-416
NodePosY=320
NodeGuid=8B35C027489284AC9ACAA5816CFA8904
CustomProperties Pin (PinId=F3898EF94C6212ED41F5929735001B57,PinName=“X (S)”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_12 F5F9796040550C13994914B5AC388573,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=8ABF8162495BBA1DCA5FD5B975085DA0,PinName=“Y (S)”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_12 F5F9796040550C13994914B5AC388573,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=FE66CA194B5FD53720B2DAA16368B06F,PinName=“Z (S)”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 6FA20A0B4F81130314D7F1B61137154C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=951CE4BA459B7993B2E533BC4D9D7AAA,PinName=“Result”,Direction=“EGPD_Output”,PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_0 CEA7837F49505164B56031AB40265247,),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_1”
End Object
Begin Object Name=“MaterialExpressionScalarParameter_1”
ParameterName=“World -0-”
ExpressionGUID=F64972DC4E7BE46A4A5C82A73830C2D5
MaterialExpressionEditorX=-624
MaterialExpressionEditorY=272
MaterialExpressionGuid=B7DC26CA4407F33EBEF255A90A0726D4
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionScalarParameter’“MaterialExpressionScalarParameter_1”’
NodePosX=-624
NodePosY=272
bCanRenameNode=True
NodeGuid=714C41D74EE47108264736BE84F0B0ED
CustomProperties Pin (PinId=F5F9796040550C13994914B5AC388573,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_11 F3898EF94C6212ED41F5929735001B57,MaterialGraphNode_11 8ABF8162495BBA1DCA5FD5B975085DA0,),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.MaterialExpressionAdd Name=“MaterialExpressionAdd_0”
End Object
Begin Object Name=“MaterialExpressionAdd_0”
A=(Expression=MaterialExpressionMultiply’“MaterialGraphNode_9.MaterialExpressionMultiply_1”’)
B=(Expression=MaterialExpressionMultiply’“MaterialGraphNode_8.MaterialExpressionMultiply_0”’)
MaterialExpressionEditorX=-848
MaterialExpressionEditorY=288
MaterialExpressionGuid=450EFCE049BB6DE25BC07988D7A401C6
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionAdd’“MaterialExpressionAdd_0”’
NodePosX=-848
NodePosY=288
NodeGuid=03B1710D4C36FA9C592A178D1A924080
CustomProperties Pin (PinId=E97C0E284F32B25EDB35249D69ABA745,PinName=“A”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_9 8C70EB534025C49D1E2748AEE226273E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=FA9D9ACB45A655105815E7A06CFE1760,PinName=“B”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_8 9DA11D5041B46F21825A57BF76D27C0C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=C05CB38D4E963FB3901629A5474AAB89,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_14 8DAC5615452902A5A576C780EFAB4FCF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name=“MaterialGraphNode_14”
Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name=“MaterialExpressionMultiply_2”
End Object
Begin Object Name=“MaterialExpressionMultiply_2”
A=(Expression=MaterialExpressionAdd’“MaterialGraphNode_13.MaterialExpressionAdd_0”’)
B=(Expression=MaterialExpressionScalarParameter’“MaterialGraphNode_10.MaterialExpressionScalarParameter_0”’)
MaterialExpressionEditorX=-768
MaterialExpressionEditorY=400
MaterialExpressionGuid=130FD3904A647B9843B2EFA851846198
Material=Material’"/Engine/Transient.Material_1"’
End Object
MaterialExpression=MaterialExpressionMultiply’“MaterialExpressionMultiply_2”’
NodePosX=-768
NodePosY=400
NodeGuid=FBD8968A495562B33F135A9DB136EEA6
CustomProperties Pin (PinId=8DAC5615452902A5A576C780EFAB4FCF,PinName=“A”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_13 C05CB38D4E963FB3901629A5474AAB89,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=01F856B44E3B8D51D8B54AAAC1075033,PinName=“B”,PinType.PinCategory=“optional”,PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_10 4B15C0114701836555A262A86C136411,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
CustomProperties Pin (PinId=6FA20A0B4F81130314D7F1B61137154C,PinName=“Output”,PinFriendlyName=" “,Direction=“EGPD_Output”,PinType.PinCategory=”",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(MaterialGraphNode_11 FE66CA194B5FD53720B2DAA16368B06F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
End Object