• News

• Industries

• Learning & Support

• Community

• Marketplace

# Re-orienting rotation 0 point?

So, I’m working on a 3d side scroller, wherin the character shoots at things on screen. I’m using this tutorial for the base setup. However, I’m modifying it so that instead of aiming at mouse positions, it instead aims at the location of a raycast impact, instead of the mouse position. To do this i’ve made an invisible plane that only the raycasts can hit, with them originating from the camera position.

I’ve got it figured out so far that it works perfectly to the right of the character, however, when the impacts are to the left of the character, they aim at the opposite direction, as though the impact were mirrored on the opposite side. Using printstrings I’ve figured out that the rotation of the sphere at 9:00 and 3:00 is 0 degrees, 45 degrees at 10:30 and 1:30, and 90 degrees at 12:00. Then at 4:30 and 7:30 its -45 degrees, and 6:00 its -90.

How can I get it to work on both sides? Is there a way I can rotate that 0 point vertically?

Here’s the blueprint

I solved similar problem, but it was for asteroids game, and it is a bit of hack.

So, you have impact location. And instead look at rotation, you need to calculate vector from pawn to impact position. “impact Position” - “pawn location”

When you have x and y of that vector. Normalize it (to make its length 1).
Your rotation in degrees should be: sign(asin(y))*acos(x).
However i am not quite sure about this, as my game uses z and X, i could mess orientation here. So you may need swap x and y, or add 90, 270 degrees to result. Just print those values in loop and you see what is needed.

Thanks for the response!

Hmm. I’m not quite very savvy with math so I’m not sure what’s going on here, or how to add sign() to something. Attached is what I have so far.

I multiplied the end value by 100 because all I was getting was numbers between 0 and 2.4 … but its still not quite working. I am certain I’m not following your instructions somehow. Any help would be appreciated!

I try to make screen of my setup, when I am back home.

Do not use that math expression, you have nodes asin and Acos for radians and degrees. Because you admited poor math skills i would recommend using degrees version, as it is used by rotators.

Some vector math first. Get your coordinates from pawn location and touch location in same coordinate system. Ie. if you touch pawn, its touch location should be around pawn. And make it all in Cartesian_coordinate_system
Touch events have flipped y axis, while actor location has not. So you need to multiply touch event Y value by -1. Also 0,0 of touch location is in upper right corner, while 0,0 for player is on top of pawn. That why you need to recalculate your touch location to same coordinates that player pawn is using:

Flip y coordinate of touch location, then do touch_location minus pawn_location.

At this point add print node to test if all numbers are right. Print out flipped touch location, pawn location, and resulting vector. See if all works correctly. This also gets more complicated because pawn locateion is in world coordinates, you need it in screen coordinates. There may be node that recalculates touch location to world coordinate. Yes it all gets messy.

When you have vector math correctly done its time for trigonometry.

Normalize resulting vector. add 2 nodes: asin(x) and acos(y), feed acos(y) to sign node, then multiply both results. It works so asin(x) indicates left or right side of screen, and acos(y) gives actual rotation, but its same for right and left side, thus need of sign from asin(x).

Thank you! I look forward to seeing the blueprint, but I think I’ve gotten it down to what you’ve instructed:

Here’s where I am at:

As both the Pawn location and the impact point of the raycast are both in world co-ordinates, Z is up/down, and Y is left/right in my particular setup.

And this does indeed solve the problem of changing the 0 point to the Z axis (worldspace) – i.e at 12:00. However, I’m running into a similar problem wherin if the impact point is past 9:00 or 3:00 respectively, the rotation inverts; 6:00 shoots straight upwards, 4:30 shoots at 45deg upward, etc. More specifically, this setup returns the following:

12:00 - 0
1:30 - 45
3:00 - 90
4:30 - 45
6:00 - 0
7:30 - -45
9:00 - 90
10:30 - -4

I am now regretting not ever taking classes beyond Algebra 2… I’m an artist by trade. I’m still not entirely sure what sin/cos does. I’ll be reading into it tonight though. I wonder though - could you do an additional sign() calculation to indicate wether something is above and below? I am certain there is a more elegant solution.

Sorry had no time yesterday to make this bp and test it myself.

From angle values looks like right (ie positive Y) side of coordinates is right. So something fishy must be going with left side. You need to test your graph step by step (or part by part).

To test what is going on: plug print node right after you do y*-1, print out Y and Z. Right from output pin of make vector.

12 to 3: Y >0 and Z > 0
3 to 6: Y > 0 and Z < 0
6 to 9: Y < 0 and Z < 0
9 to 12: Y < 0 and Z > 0

You wrote that this all is correct and you are getting those values, so I assume this above is correct.

Now you need to sort out rotation. One of those combinations must work. try swapping Y and Z there, and change which one you use for sign. Also do not add 90 degres for now until you have some kind of circle values for resulting degrees.

What you should get:

ASin Y Values:

Right side:
12 to 3: 0 to 90
3 to 6: 90 to 0

Left Side:
12 to 9: 0 to 90
9 to 6: 90 to 0

Sign(Acos Z) Values:
12 to 3 to 6: +1
12 to 9 to 6: -1

I got my stuff from home computer, this should help.

Part you want to recreate is on bottom in comment container “salculates rotation in degrees”

And here is code of my graph, select this snippet, copy to clipboard and paste to empty blueprint in unreal editor. You will get some errors (missing variables etc.) but whole graph is there.

Zone_Radius_Array, this is missing var, it keeps distances from center and blueprint calculates which “ring” you clicked, shoot.

Then there is “quantization” it basically divides rotation into zones each has “size” of that quantization value.

``````

Begin Object Class=K2Node_Tunnel Name="K2Node_Tunnel_272"
Begin Object Class=EdGraphPin Name="EdGraphPin_5871"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5872"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5873"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5874"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5875"
End Object
Begin Object Name="EdGraphPin_5871"
PinName="Execute"
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_5872"
PinName="Touch_Location"
Direction=EGPD_Output
PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:Vector2D')
End Object
Begin Object Name="EdGraphPin_5873"
PinName="Angle_Quantization"
Direction=EGPD_Output
PinType=(PinCategory="float")
End Object
Begin Object Name="EdGraphPin_5874"
PinName="Debug_Screen"
Direction=EGPD_Output
PinType=(PinCategory="bool")
End Object
Begin Object Name="EdGraphPin_5875"
PinName="Debug_LOG"
Direction=EGPD_Output
PinType=(PinCategory="bool")
End Object
bCanHaveOutputs=True
Pins(0)=EdGraphPin'EdGraphPin_5871'
Pins(1)=EdGraphPin'EdGraphPin_5872'
Pins(2)=EdGraphPin'EdGraphPin_5873'
Pins(3)=EdGraphPin'EdGraphPin_5874'
Pins(4)=EdGraphPin'EdGraphPin_5875'
NodePosX=-992
NodePosY=2848
NodeGuid=CF185A2B403BEB765C0406A29192022F
CustomProperties UserDefinedPin Name=Execute IsArray=0 IsReference=0 Category=exec
CustomProperties UserDefinedPin Name=Touch_Location IsArray=0 IsReference=0 Category=struct SubCategoryObject=/Script/CoreUObject.Object:Vector2D
CustomProperties UserDefinedPin Name=Angle_Quantization IsArray=0 IsReference=0 Category=float
CustomProperties UserDefinedPin Name=Debug_Screen IsArray=0 IsReference=0 Category=bool
CustomProperties UserDefinedPin Name=Debug_LOG IsArray=0 IsReference=0 Category=bool
End Object
Begin Object Class=K2Node_Tunnel Name="K2Node_Tunnel_273"
Begin Object Class=EdGraphPin Name="EdGraphPin_5859"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5860"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5861"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_5862"
End Object
Begin Object Name="EdGraphPin_5859"
PinName="continue"
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_5860"
PinType=(PinCategory="int")
End Object
Begin Object Name="EdGraphPin_5861"
PinName="Zone_INDEX"
PinType=(PinCategory="int")
End Object
Begin Object Name="EdGraphPin_5862"
PinName="Angle"
PinType=(PinCategory="float")
End Object
bCanHaveInputs=True
Pins(0)=EdGraphPin'EdGraphPin_5859'
Pins(1)=EdGraphPin'EdGraphPin_5860'
Pins(2)=EdGraphPin'EdGraphPin_5861'
Pins(3)=EdGraphPin'EdGraphPin_5862'
NodePosX=1984
NodePosY=3072
NodeGuid=3758B2BF4BB5759032B6C7801259765C
CustomProperties UserDefinedPin Name=continue IsArray=0 IsReference=0 Category=exec
CustomProperties UserDefinedPin Name=Zone_RADIUS IsArray=0 IsReference=0 Category=int
CustomProperties UserDefinedPin Name=Zone_INDEX IsArray=0 IsReference=0 Category=int
CustomProperties UserDefinedPin Name=Angle IsArray=0 IsReference=0 Category=float
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_150410"
Begin Object Class=EdGraphPin Name="EdGraphPin_6451"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6452"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6453"
End Object
Begin Object Name="EdGraphPin_6451"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6452"
PinName="A"
PinToolTip="A
Vector 2D Structure"
PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:Vector2D')
End Object
Begin Object Name="EdGraphPin_6453"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="VSize2D")
Pins(0)=EdGraphPin'EdGraphPin_6451'
Pins(1)=EdGraphPin'EdGraphPin_6452'
Pins(2)=EdGraphPin'EdGraphPin_6453'
NodePosX=-128
NodePosY=3024
NodeGuid=75FE3C0B409B9CA4286E4AB673BEE1F4
End Object
Begin Object Class=K2Node_VariableGet Name="K2Node_VariableGet_1582"
Begin Object Class=EdGraphPin Name="EdGraphPin_6460"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6461"
End Object
Begin Object Name="EdGraphPin_6460"
Direction=EGPD_Output
PinType=(PinCategory="int",bIsArray=True)
End Object
Begin Object Name="EdGraphPin_6461"
PinName="self"
PinType=(PinCategory="object",PinSubCategory="self")
bHidden=True
End Object
Pins(0)=EdGraphPin'EdGraphPin_6460'
Pins(1)=EdGraphPin'EdGraphPin_6461'
NodePosX=-448
NodePosY=2688
End Object
Begin Object Class=K2Node_MacroInstance Name="K2Node_MacroInstance_1697"
Begin Object Class=EdGraphPin Name="EdGraphPin_7529"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7530"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7531"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7532"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7533"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7534"
End Object
Begin Object Name="EdGraphPin_7529"
PinName="Exec"
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_7530"
PinName="Input"
PinType=(PinCategory="int")
End Object
Begin Object Name="EdGraphPin_7531"
PinName="CompareWith"
PinType=(PinCategory="int")
End Object
Begin Object Name="EdGraphPin_7532"
PinName=">"
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_7533"
PinName="=="
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_7534"
PinName="<"
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
MacroGraphReference=(MacroGraph=EdGraph'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:CompareInt',GraphBlueprint=Blueprint'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros',GraphGuid=8C6421D24FF3518D73B9DBA737995BC4)
Pins(0)=EdGraphPin'EdGraphPin_7529'
Pins(1)=EdGraphPin'EdGraphPin_7530'
Pins(2)=EdGraphPin'EdGraphPin_7531'
Pins(3)=EdGraphPin'EdGraphPin_7532'
Pins(4)=EdGraphPin'EdGraphPin_7533'
Pins(5)=EdGraphPin'EdGraphPin_7534'
NodePosX=528
NodePosY=2960
NodeGuid=DF60E5C049F29DB5B7133492CBBB9FC3
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_150411"
Begin Object Class=EdGraphPin Name="EdGraphPin_6376"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6377"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6378"
End Object
Begin Object Name="EdGraphPin_6376"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6377"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6378"
PinName="ReturnValue"
PinToolTip="Return Value
Integer"
Direction=EGPD_Output
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="FFloor")
Pins(0)=EdGraphPin'EdGraphPin_6376'
Pins(1)=EdGraphPin'EdGraphPin_6377'
Pins(2)=EdGraphPin'EdGraphPin_6378'
NodePosX=128
NodePosY=3024
NodeGuid=6D7643DC4F7780A471B1EB89377B9DD5
End Object
Begin Object Class=K2Node_MacroInstance Name="K2Node_MacroInstance_1698"
Begin Object Class=EdGraphPin Name="EdGraphPin_7547"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7548"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7549"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7550"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7551"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7552"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_7553"
End Object
Begin Object Name="EdGraphPin_7547"
PinName="Execute"
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_7548"
PinName="FirstIndex"
PinType=(PinCategory="int")
DefaultValue="0"
End Object
Begin Object Name="EdGraphPin_7549"
PinName="LastIndex"
PinType=(PinCategory="int")
End Object
Begin Object Name="EdGraphPin_7550"
PinName="Break"
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_7551"
PinName="LoopBody"
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_7552"
PinName="Index"
Direction=EGPD_Output
PinType=(PinCategory="int")
End Object
Begin Object Name="EdGraphPin_7553"
PinName="Completed"
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
MacroGraphReference=(MacroGraph=EdGraph'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros:ForLoopWithBreak',GraphBlueprint=Blueprint'/Engine/EditorBlueprintResources/StandardMacros.StandardMacros',GraphGuid=1FCFFE2843C702031581E5A273BD4C6B)
Pins(0)=EdGraphPin'EdGraphPin_7547'
Pins(1)=EdGraphPin'EdGraphPin_7548'
Pins(2)=EdGraphPin'EdGraphPin_7549'
Pins(3)=EdGraphPin'EdGraphPin_7550'
Pins(4)=EdGraphPin'EdGraphPin_7551'
Pins(5)=EdGraphPin'EdGraphPin_7552'
Pins(6)=EdGraphPin'EdGraphPin_7553'
NodePosX=256
NodePosY=2800
NodeGuid=E0B566D440C2BE8A5E26DCB1E8A62F82
End Object
Begin Object Class=K2Node_CallArrayFunction Name="K2Node_CallArrayFunction_1293"
Begin Object Class=EdGraphPin Name="EdGraphPin_6109"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6110"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6111"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6112"
End Object
Begin Object Name="EdGraphPin_6109"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Array Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetArrayLibrary')
DefaultObject=Default__KismetArrayLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6110"
PinName="TargetArray"
PinToolTip="Target Array
Array of Wildcard

The array to perform the operation on *"
PinType=(PinCategory="int",bIsArray=True,bIsReference=True)
bDefaultValueIsIgnored=True
End Object
Begin Object Name="EdGraphPin_6111"
PinName="ArrayProperty"
PinToolTip="Array Property
Array Property Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.ArrayProperty',bIsConst=True)
bHidden=True
bNotConnectable=True
End Object
Begin Object Name="EdGraphPin_6112"
PinName="ReturnValue"
PinToolTip="Return Value
Integer

The last valid index of the array"
Direction=EGPD_Output
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetArrayLibrary',MemberName="Array_LastIndex")
Pins(0)=EdGraphPin'EdGraphPin_6109'
Pins(1)=EdGraphPin'EdGraphPin_6110'
Pins(2)=EdGraphPin'EdGraphPin_6111'
Pins(3)=EdGraphPin'EdGraphPin_6112'
NodePosX=-176
NodePosY=2752
ErrorType=1
ErrorMsg="Error The type of  Target Array  is undetermined.  Connect something to  NewMacro_0  to imply a specific type."
NodeGuid=DCA4966B4DBEF265247682815A6C9F76
End Object
Begin Object Class=K2Node_CallArrayFunction Name="K2Node_CallArrayFunction_1294"
Begin Object Class=EdGraphPin Name="EdGraphPin_6085"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6086"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6087"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6088"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6089"
End Object
Begin Object Name="EdGraphPin_6085"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Array Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetArrayLibrary')
DefaultObject=Default__KismetArrayLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6086"
PinName="TargetArray"
PinToolTip="Target Array
Array of Wildcard

The array to get an item from *"
PinType=(PinCategory="int",bIsArray=True,bIsReference=True)
bDefaultValueIsIgnored=True
End Object
Begin Object Name="EdGraphPin_6087"
PinName="ArrayProperty"
PinToolTip="Array Property
Array Property Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.ArrayProperty',bIsConst=True)
bHidden=True
bNotConnectable=True
End Object
Begin Object Name="EdGraphPin_6088"
PinName="Index"
PinToolTip="Index
Integer

The index in the array to get an item from *"
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
Begin Object Name="EdGraphPin_6089"
PinName="Item"
PinToolTip="Item
Integer"
Direction=EGPD_Output
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetArrayLibrary',MemberName="Array_Get")
Pins(0)=EdGraphPin'EdGraphPin_6085'
Pins(1)=EdGraphPin'EdGraphPin_6086'
Pins(2)=EdGraphPin'EdGraphPin_6087'
Pins(3)=EdGraphPin'EdGraphPin_6088'
Pins(4)=EdGraphPin'EdGraphPin_6089'
NodePosX=592
NodePosY=2736
NodeGuid=5DFD6BCC47D8E01A441BC8A50BC003D9
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_150412"
Begin Object Class=EdGraphPin Name="EdGraphPin_6073"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6074"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6075"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6076"
End Object
Begin Object Name="EdGraphPin_6073"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6074"
PinName="A"
PinToolTip="A
Integer"
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
Begin Object Name="EdGraphPin_6075"
PinName="B"
PinToolTip="B
Integer"
PinType=(PinCategory="int")
DefaultValue="1"
AutogeneratedDefaultValue="0"
End Object
Begin Object Name="EdGraphPin_6076"
PinName="ReturnValue"
PinToolTip="Return Value
Integer"
Direction=EGPD_Output
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="Subtract_IntInt")
Pins(0)=EdGraphPin'EdGraphPin_6073'
Pins(1)=EdGraphPin'EdGraphPin_6074'
Pins(2)=EdGraphPin'EdGraphPin_6075'
Pins(3)=EdGraphPin'EdGraphPin_6076'
NodePosX=768
NodePosY=2944
NodeGuid=D7ABE71E401AA95C2B058B835512D0FB
End Object
Begin Object Class=EdGraphNode_Comment Name="EdGraphNode_Comment_891"
NodePosX=272
NodePosY=3744
NodeWidth=416
NodeHeight=224
NodeComment="ADD or SUB 1/2 of discrete value"
NodeGuid=6859D7F0433A6466B66B208D34D10DD4
End Object
Begin Object Class=EdGraphNode_Comment Name="EdGraphNode_Comment_885"
NodePosX=-570
NodePosY=3426
NodeWidth=1232
NodeHeight=240
NodeComment="Salculates rotation in deg."
NodeGuid=76902D36498A328EFDB7ED91CED2D814
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_93936"
Begin Object Class=EdGraphPin Name="EdGraphPin_6121"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6122"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6123"
End Object
Begin Object Name="EdGraphPin_6121"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6122"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6123"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="DegAcos")
Pins(0)=EdGraphPin'EdGraphPin_6121'
Pins(1)=EdGraphPin'EdGraphPin_6122'
Pins(2)=EdGraphPin'EdGraphPin_6123'
NodePosX=16
NodePosY=3552
NodeGuid=20968044473D2A3A58F3B5AC8B1F88F1
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_93937"
Begin Object Class=EdGraphPin Name="EdGraphPin_6139"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6140"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6141"
End Object
Begin Object Name="EdGraphPin_6139"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6140"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6141"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="DegAsin")
Pins(0)=EdGraphPin'EdGraphPin_6139'
Pins(1)=EdGraphPin'EdGraphPin_6140'
Pins(2)=EdGraphPin'EdGraphPin_6141'
NodePosX=16
NodePosY=3472
NodeGuid=DD23FC3947696B45DCB4818BFC153B8B
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_93938"
Begin Object Class=EdGraphPin Name="EdGraphPin_6100"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6101"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6102"
End Object
Begin Object Name="EdGraphPin_6100"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6101"
PinName="A"
PinToolTip="A
Vector 2D Structure"
PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:Vector2D')
End Object
Begin Object Name="EdGraphPin_6102"
PinName="ReturnValue"
PinToolTip="Return Value
Vector 2D Structure"
Direction=EGPD_Output
PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:Vector2D')
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="Normal2D")
Pins(0)=EdGraphPin'EdGraphPin_6100'
Pins(1)=EdGraphPin'EdGraphPin_6101'
Pins(2)=EdGraphPin'EdGraphPin_6102'
NodePosX=-528
NodePosY=3488
NodeGuid=ED95AA7B460AC656F5F1D78745912455
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_93939"
Begin Object Class=EdGraphPin Name="EdGraphPin_6175"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6176"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6177"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6178"
End Object
Begin Object Name="EdGraphPin_6175"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6176"
PinName="InVec"
PinToolTip="In Vec
Vector 2D Structure"
PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:Vector2D')
End Object
Begin Object Name="EdGraphPin_6177"
PinName="X"
PinToolTip="X
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6178"
PinName="Y"
PinToolTip="Y
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="BreakVector2D")
Pins(0)=EdGraphPin'EdGraphPin_6175'
Pins(1)=EdGraphPin'EdGraphPin_6176'
Pins(2)=EdGraphPin'EdGraphPin_6177'
Pins(3)=EdGraphPin'EdGraphPin_6178'
NodePosX=-192
NodePosY=3488
NodeGuid=71BD5A5E4D95DFB417E4249E4332CF65
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_93940"
Begin Object Class=EdGraphPin Name="EdGraphPin_6130"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6131"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6132"
End Object
Begin Object Name="EdGraphPin_6130"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6131"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6132"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="SignOfFloat")
Pins(0)=EdGraphPin'EdGraphPin_6130'
Pins(1)=EdGraphPin'EdGraphPin_6131'
Pins(2)=EdGraphPin'EdGraphPin_6132'
NodePosX=208
NodePosY=3488
NodeGuid=0C519451448E9743207CE1AF8A9A0812
End Object
Begin Object Class=K2Node_CommutativeAssociativeBinaryOperator Name="K2Node_CommutativeAssociativeBinaryOperator_1158"
Begin Object Class=EdGraphPin Name="EdGraphPin_6241"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6242"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6243"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6244"
End Object
Begin Object Name="EdGraphPin_6241"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6242"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6243"
PinName="B"
PinToolTip="B
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6244"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="Multiply_FloatFloat")
Pins(0)=EdGraphPin'EdGraphPin_6241'
Pins(1)=EdGraphPin'EdGraphPin_6242'
Pins(2)=EdGraphPin'EdGraphPin_6243'
Pins(3)=EdGraphPin'EdGraphPin_6244'
NodePosX=480
NodePosY=3552
NodeGuid=731C57A5446DE37DC126048E06D371F1
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_186317"
Begin Object Class=EdGraphPin Name="EdGraphPin_6148"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6149"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6150"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6151"
End Object
Begin Object Name="EdGraphPin_6148"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6149"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6150"
PinName="B"
PinToolTip="B
Float"
PinType=(PinCategory="float")
DefaultValue="2"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6151"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="Divide_FloatFloat")
Pins(0)=EdGraphPin'EdGraphPin_6148'
Pins(1)=EdGraphPin'EdGraphPin_6149'
Pins(2)=EdGraphPin'EdGraphPin_6150'
Pins(3)=EdGraphPin'EdGraphPin_6151'
NodePosX=320
NodePosY=3856
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_178445"
Begin Object Class=EdGraphPin Name="EdGraphPin_6160"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6161"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6162"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6163"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6164"
End Object
Begin Object Name="EdGraphPin_6160"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6161"
PinName="Dividend"
PinToolTip="Dividend
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6162"
PinName="Divisor"
PinToolTip="Divisor
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6163"
PinName="Remainder"
PinToolTip="Remainder
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6164"
PinName="ReturnValue"
PinToolTip="Return Value
Integer"
Direction=EGPD_Output
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="FMod")
Pins(0)=EdGraphPin'EdGraphPin_6160'
Pins(1)=EdGraphPin'EdGraphPin_6161'
Pins(2)=EdGraphPin'EdGraphPin_6162'
Pins(3)=EdGraphPin'EdGraphPin_6163'
Pins(4)=EdGraphPin'EdGraphPin_6164'
NodePosX=944
NodePosY=3312
NodeGuid=CB485E144E9624FF5B4B139CE7A00F17
End Object
Begin Object Class=K2Node_CommutativeAssociativeBinaryOperator Name="K2Node_CommutativeAssociativeBinaryOperator_2370"
Begin Object Class=EdGraphPin Name="EdGraphPin_6301"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6302"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6303"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6304"
End Object
Begin Object Name="EdGraphPin_6301"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6302"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6303"
PinName="B"
PinToolTip="B
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6304"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="Multiply_FloatFloat")
Pins(0)=EdGraphPin'EdGraphPin_6301'
Pins(1)=EdGraphPin'EdGraphPin_6302'
Pins(2)=EdGraphPin'EdGraphPin_6303'
Pins(3)=EdGraphPin'EdGraphPin_6304'
NodePosX=480
NodePosY=3824
NodeGuid=1A46FC9C4777CB3F7368089A2C1FC6AA
End Object
Begin Object Class=K2Node_CommutativeAssociativeBinaryOperator Name="K2Node_CommutativeAssociativeBinaryOperator_2375"
Begin Object Class=EdGraphPin Name="EdGraphPin_6187"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6188"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6189"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6190"
End Object
Begin Object Name="EdGraphPin_6187"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet Math Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6188"
PinName="A"
PinToolTip="A
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6189"
PinName="B"
PinToolTip="B
Float"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6190"
PinName="ReturnValue"
PinToolTip="Return Value
Float"
Direction=EGPD_Output
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
bIsPureFunc=True
Pins(0)=EdGraphPin'EdGraphPin_6187'
Pins(1)=EdGraphPin'EdGraphPin_6188'
Pins(2)=EdGraphPin'EdGraphPin_6189'
Pins(3)=EdGraphPin'EdGraphPin_6190'
NodePosX=720
NodePosY=3664
NodeGuid=0D292C084A8B956F572B30B1BEC8C8B9
End Object
Begin Object Class=EdGraphNode_Comment Name="EdGraphNode_Comment_907"
NodePosX=-496
NodePosY=2640
NodeWidth=1496
NodeHeight=492
NodeComment="Loop that finds distance from Zone_Radius_Array"
NodeGuid=2D4E434F43D2D0DD455D1B85E5CA8C59
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_268323"
Begin Object Class=EdGraphPin Name="EdGraphPin_6199"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6200"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6201"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6202"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6203"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6204"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6205"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6206"
End Object
Begin Object Name="EdGraphPin_6199"
PinName="execute"
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_6200"
PinName="then"
Direction=EGPD_Output
PinType=(PinCategory="exec")
End Object
Begin Object Name="EdGraphPin_6201"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet System Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetSystemLibrary')
DefaultObject=Default__KismetSystemLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6202"
PinName="WorldContextObject"
PinToolTip="World Context Object
Object Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
bHidden=True
End Object
Begin Object Name="EdGraphPin_6203"
PinName="InString"
PinToolTip="In String
String

The string to log out"
PinType=(PinCategory="string")
DefaultValue="Hello"
AutogeneratedDefaultValue="Hello"
End Object
Begin Object Name="EdGraphPin_6204"
PinName="bPrintToScreen"
PinToolTip="Print to Screen
Boolean

Whether or not to print the output to the screen"
PinType=(PinCategory="bool")
DefaultValue="true"
AutogeneratedDefaultValue="true"
End Object
Begin Object Name="EdGraphPin_6205"
PinName="bPrintToLog"
PinToolTip="Print to Log
Boolean

Whether or not to print the output to the log"
PinType=(PinCategory="bool")
DefaultValue="true"
AutogeneratedDefaultValue="true"
End Object
Begin Object Name="EdGraphPin_6206"
PinName="TextColor"
PinToolTip="Text Color
Linear Color Structure

Whether or not to print the output to the console"
PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:LinearColor')
DefaultValue="(R=1.000000,G=0.000000,B=0.082829,A=1.000000)"
AutogeneratedDefaultValue="(R=0.000000,G=0.660000,B=1.000000,A=1.000000)"
End Object
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetSystemLibrary',MemberName="PrintString")
Pins(0)=EdGraphPin'EdGraphPin_6199'
Pins(1)=EdGraphPin'EdGraphPin_6200'
Pins(2)=EdGraphPin'EdGraphPin_6201'
Pins(3)=EdGraphPin'EdGraphPin_6202'
Pins(4)=EdGraphPin'EdGraphPin_6203'
Pins(5)=EdGraphPin'EdGraphPin_6204'
Pins(6)=EdGraphPin'EdGraphPin_6205'
Pins(7)=EdGraphPin'EdGraphPin_6206'
NodePosX=1552
NodePosY=2928
NodeGuid=28776D6140ED9EFFE87B3A9E655A9972
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_268499"
Begin Object Class=EdGraphPin Name="EdGraphPin_6223"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6224"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6225"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6226"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6227"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6228"
End Object
Begin Object Name="EdGraphPin_6223"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet String Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetStringLibrary')
DefaultObject=Default__KismetStringLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6224"
PinName="AppendTo"
PinToolTip="Append To
String

An existing string to use as the start of the conversion string"
PinType=(PinCategory="string")
End Object
Begin Object Name="EdGraphPin_6225"
PinName="Prefix"
PinToolTip="Prefix
String

A string to use as a prefix, after the AppendTo string"
PinType=(PinCategory="string")
DefaultValue="Zone_ID= "
End Object
Begin Object Name="EdGraphPin_6226"
PinName="InInt"
PinToolTip="In Int
Integer

The int value to convert"
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
Begin Object Name="EdGraphPin_6227"
PinName="Suffix"
PinToolTip="Suffix
String

A suffix to append to the end of the conversion string"
PinType=(PinCategory="string")
DefaultValue=","
End Object
Begin Object Name="EdGraphPin_6228"
PinName="ReturnValue"
PinToolTip="Return Value
String

A new string built from the passed parameters"
Direction=EGPD_Output
PinType=(PinCategory="string")
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetStringLibrary',MemberName="BuildString_Int")
Pins(0)=EdGraphPin'EdGraphPin_6223'
Pins(1)=EdGraphPin'EdGraphPin_6224'
Pins(2)=EdGraphPin'EdGraphPin_6225'
Pins(3)=EdGraphPin'EdGraphPin_6226'
Pins(4)=EdGraphPin'EdGraphPin_6227'
Pins(5)=EdGraphPin'EdGraphPin_6228'
NodePosX=1536
NodePosY=2112
NodeGuid=6707D7F640568D5CF789A592DA5E37C9
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_286131"
Begin Object Class=EdGraphPin Name="EdGraphPin_6358"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6359"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6360"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6361"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6362"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6363"
End Object
Begin Object Name="EdGraphPin_6358"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet String Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetStringLibrary')
DefaultObject=Default__KismetStringLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6359"
PinName="AppendTo"
PinToolTip="Append To
String

An existing string to use as the start of the conversion string"
PinType=(PinCategory="string")
End Object
Begin Object Name="EdGraphPin_6360"
PinName="Prefix"
PinToolTip="Prefix
String

A string to use as a prefix, after the AppendTo string"
PinType=(PinCategory="string")
End Object
Begin Object Name="EdGraphPin_6361"
PinName="InInt"
PinToolTip="In Int
Integer

The int value to convert"
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
Begin Object Name="EdGraphPin_6362"
PinName="Suffix"
PinToolTip="Suffix
String

A suffix to append to the end of the conversion string"
PinType=(PinCategory="string")
DefaultValue=" "
End Object
Begin Object Name="EdGraphPin_6363"
PinName="ReturnValue"
PinToolTip="Return Value
String

A new string built from the passed parameters"
Direction=EGPD_Output
PinType=(PinCategory="string")
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetStringLibrary',MemberName="BuildString_Int")
Pins(0)=EdGraphPin'EdGraphPin_6358'
Pins(1)=EdGraphPin'EdGraphPin_6359'
Pins(2)=EdGraphPin'EdGraphPin_6360'
Pins(3)=EdGraphPin'EdGraphPin_6361'
Pins(4)=EdGraphPin'EdGraphPin_6362'
Pins(5)=EdGraphPin'EdGraphPin_6363'
NodePosX=1536
NodePosY=2288
NodeGuid=C5046AE44565E094AB8E0894C6C316AB
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_282619"
Begin Object Class=EdGraphPin Name="EdGraphPin_6253"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6254"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6255"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6256"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6257"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6258"
End Object
Begin Object Name="EdGraphPin_6253"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet String Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetStringLibrary')
DefaultObject=Default__KismetStringLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6254"
PinName="AppendTo"
PinToolTip="Append To
String

An existing string to use as the start of the conversion string"
PinType=(PinCategory="string")
End Object
Begin Object Name="EdGraphPin_6255"
PinName="Prefix"
PinToolTip="Prefix
String

A string to use as a prefix, after the AppendTo string"
PinType=(PinCategory="string")
DefaultValue="Angle= "
End Object
Begin Object Name="EdGraphPin_6256"
PinName="InFloat"
PinToolTip="In Float
Float

The float value to convert"
PinType=(PinCategory="float")
DefaultValue="0.0"
AutogeneratedDefaultValue="0.0"
End Object
Begin Object Name="EdGraphPin_6257"
PinName="Suffix"
PinToolTip="Suffix
String

A suffix to append to the end of the conversion string"
PinType=(PinCategory="string")
End Object
Begin Object Name="EdGraphPin_6258"
PinName="ReturnValue"
PinToolTip="Return Value
String

A new string built from the passed parameters"
Direction=EGPD_Output
PinType=(PinCategory="string")
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetStringLibrary',MemberName="BuildString_Float")
Pins(0)=EdGraphPin'EdGraphPin_6253'
Pins(1)=EdGraphPin'EdGraphPin_6254'
Pins(2)=EdGraphPin'EdGraphPin_6255'
Pins(3)=EdGraphPin'EdGraphPin_6256'
Pins(4)=EdGraphPin'EdGraphPin_6257'
Pins(5)=EdGraphPin'EdGraphPin_6258'
NodePosX=1536
NodePosY=2704
NodeGuid=CB167EC245CF737B9F5CDAB62457DB61
End Object
Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_268498"
Begin Object Class=EdGraphPin Name="EdGraphPin_6271"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6272"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6273"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6274"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6275"
End Object
Begin Object Class=EdGraphPin Name="EdGraphPin_6276"
End Object
Begin Object Name="EdGraphPin_6271"
PinName="self"
PinFriendlyName="Target"
PinToolTip="Target
Kismet String Library Reference"
PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetStringLibrary')
DefaultObject=Default__KismetStringLibrary
bHidden=True
End Object
Begin Object Name="EdGraphPin_6272"
PinName="AppendTo"
PinToolTip="Append To
String

An existing string to use as the start of the conversion string"
PinType=(PinCategory="string")
End Object
Begin Object Name="EdGraphPin_6273"
PinName="Prefix"
PinToolTip="Prefix
String

A string to use as a prefix, after the AppendTo string"
PinType=(PinCategory="string")
DefaultValue=" Distance= "
End Object
Begin Object Name="EdGraphPin_6274"
PinName="InInt"
PinToolTip="In Int
Integer

The int value to convert"
PinType=(PinCategory="int")
DefaultValue="0"
AutogeneratedDefaultValue="0"
End Object
Begin Object Name="EdGraphPin_6275"
PinName="Suffix"
PinToolTip="Suffix
String

A suffix to append to the end of the conversion string"
PinType=(PinCategory="string")
DefaultValue=" "
End Object
Begin Object Name="EdGraphPin_6276"
PinName="ReturnValue"
PinToolTip="Return Value
String

A new string built from the passed parameters"
Direction=EGPD_Output
PinType=(PinCategory="string")
End Object
bIsPureFunc=True
FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetStringLibrary',MemberName="BuildString_Int")
Pins(0)=EdGraphPin'EdGraphPin_6271'
Pins(1)=EdGraphPin'EdGraphPin_6272'
Pins(2)=EdGraphPin'EdGraphPin_6273'
Pins(3)=EdGraphPin'EdGraphPin_6274'
Pins(4)=EdGraphPin'EdGraphPin_6275'
Pins(5)=EdGraphPin'EdGraphPin_6276'
NodePosX=1536
NodePosY=2496
NodeGuid=6135E8BD44C18BD3CF349BA931B4E6BE
End Object

``````

Thank you SO MUCH for the help Nawrot!

I managed to figure it out with your first post - The problem what that I was sign-ing the wrong variable, and then not inverting the result of the two multiplied together before adding the 90. Works perfectly now!

Guys, thank you for this post.

But I have a problem. I try solve same task - produce aimer by Touch input data.
Please could you explain for stupid me )) where find Input and OutPut elements and connect with Touch Interface

this picture is a macro. Let me make new one for just touch angle.

btw. blue link (vector 2d) feeds touch location relative to player pawn.

zombat posted working graph, supply touch location and pawn location to the left side of his picture