Download

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 blueprint5ca3e61df82049edf069c468ade031dc9909ea64.jpeg

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.
c7422cd81a5b4d56f05853d4ca805a31d2bb01bc.jpeg

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:
03b0af7e7eb145615013dbb4177cbe3a900fdc7c.jpeg

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”

c0e4fb3f8cbcc81bd9a4e5327584433371499bfc.png

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")
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7547"'
   End Object
   Begin Object Name="EdGraphPin_5872"
      PinName="Touch_Location"
      Direction=EGPD_Output
      PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Object:Vector2D')
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150410.EdGraphPin_6452"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallFunction_93938.EdGraphPin_6101"'
   End Object
   Begin Object Name="EdGraphPin_5873"
      PinName="Angle_Quantization"
      Direction=EGPD_Output
      PinType=(PinCategory="float")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_186317.EdGraphPin_6149"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallFunction_178445.EdGraphPin_6162"'
   End Object
   Begin Object Name="EdGraphPin_5874"
      PinName="Debug_Screen"
      Direction=EGPD_Output
      PinType=(PinCategory="bool")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268323.EdGraphPin_6204"'
   End Object
   Begin Object Name="EdGraphPin_5875"
      PinName="Debug_LOG"
      Direction=EGPD_Output
      PinType=(PinCategory="bool")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268323.EdGraphPin_6205"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268323.EdGraphPin_6200"'
   End Object
   Begin Object Name="EdGraphPin_5860"
      PinName="Zone_RADIUS"
      PinType=(PinCategory="int")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150412.EdGraphPin_6076"'
   End Object
   Begin Object Name="EdGraphPin_5861"
      PinName="Zone_INDEX"
      PinType=(PinCategory="int")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_178445.EdGraphPin_6164"'
   End Object
   Begin Object Name="EdGraphPin_5862"
      PinName="Angle"
      PinType=(PinCategory="float")
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_1158.EdGraphPin_6244"'
   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')
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5872"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150411.EdGraphPin_6377"'
   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"
      PinName="Zone_Radius_Array"
      Direction=EGPD_Output
      PinType=(PinCategory="int",bIsArray=True)
      LinkedTo(0)=EdGraphPin'"K2Node_CallArrayFunction_1294.EdGraphPin_6086"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallArrayFunction_1293.EdGraphPin_6110"'
   End Object
   Begin Object Name="EdGraphPin_6461"
      PinName="self"
      PinType=(PinCategory="object",PinSubCategory="self")
      bHidden=True
   End Object
   VariableReference=(MemberName="Zone_Radius_Array",bSelfContext=True)
   Pins(0)=EdGraphPin'EdGraphPin_6460'
   Pins(1)=EdGraphPin'EdGraphPin_6461'
   NodePosX=-448
   NodePosY=2688
   NodeGuid=00ADC8E44DEAF6EB25BE589BDED61057
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")
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7551"'
   End Object
   Begin Object Name="EdGraphPin_7530"
      PinName="Input"
      PinType=(PinCategory="int")
      LinkedTo(0)=EdGraphPin'"K2Node_CallArrayFunction_1294.EdGraphPin_6089"'
   End Object
   Begin Object Name="EdGraphPin_7531"
      PinName="CompareWith"
      PinType=(PinCategory="int")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150411.EdGraphPin_6378"'
   End Object
   Begin Object Name="EdGraphPin_7532"
      PinName=">"
      Direction=EGPD_Output
      PinType=(PinCategory="exec")
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7550"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150410.EdGraphPin_6453"'
   End Object
   Begin Object Name="EdGraphPin_6378"
      PinName="ReturnValue"
      PinToolTip="Return Value
Integer"
      Direction=EGPD_Output
      PinType=(PinCategory="int")
      DefaultValue="0"
      AutogeneratedDefaultValue="0"
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1697.EdGraphPin_7531"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallFunction_268498.EdGraphPin_6274"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5871"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallArrayFunction_1293.EdGraphPin_6112"'
   End Object
   Begin Object Name="EdGraphPin_7550"
      PinName="Break"
      PinType=(PinCategory="exec")
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1697.EdGraphPin_7532"'
   End Object
   Begin Object Name="EdGraphPin_7551"
      PinName="LoopBody"
      Direction=EGPD_Output
      PinType=(PinCategory="exec")
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1697.EdGraphPin_7529"'
   End Object
   Begin Object Name="EdGraphPin_7552"
      PinName="Index"
      Direction=EGPD_Output
      PinType=(PinCategory="int")
      LinkedTo(0)=EdGraphPin'"K2Node_CallArrayFunction_1294.EdGraphPin_6088"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallFunction_150412.EdGraphPin_6074"'
   End Object
   Begin Object Name="EdGraphPin_7553"
      PinName="Completed"
      Direction=EGPD_Output
      PinType=(PinCategory="exec")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268323.EdGraphPin_6199"'
   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)
      LinkedTo(0)=EdGraphPin'"K2Node_VariableGet_1582.EdGraphPin_6460"'
      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
      bDefaultValueIsReadOnly=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"
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7549"'
   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)
      LinkedTo(0)=EdGraphPin'"K2Node_VariableGet_1582.EdGraphPin_6460"'
      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
      bDefaultValueIsReadOnly=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"
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7552"'
   End Object
   Begin Object Name="EdGraphPin_6089"
      PinName="Item"
      PinToolTip="Item
Integer"
      Direction=EGPD_Output
      PinType=(PinCategory="int")
      DefaultValue="0"
      AutogeneratedDefaultValue="0"
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1697.EdGraphPin_7530"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7552"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_273.EdGraphPin_5860"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallFunction_268499.EdGraphPin_6226"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93939.EdGraphPin_6178"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_1158.EdGraphPin_6243"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93939.EdGraphPin_6177"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93940.EdGraphPin_6131"'
   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')
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5872"'
   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')
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93939.EdGraphPin_6176"'
   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')
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93938.EdGraphPin_6102"'
   End Object
   Begin Object Name="EdGraphPin_6177"
      PinName="X"
      PinToolTip="X
Float"
      Direction=EGPD_Output
      PinType=(PinCategory="float")
      DefaultValue="0.0"
      AutogeneratedDefaultValue="0.0"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93937.EdGraphPin_6140"'
   End Object
   Begin Object Name="EdGraphPin_6178"
      PinName="Y"
      PinToolTip="Y
Float"
      Direction=EGPD_Output
      PinType=(PinCategory="float")
      DefaultValue="0.0"
      AutogeneratedDefaultValue="0.0"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93936.EdGraphPin_6122"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93937.EdGraphPin_6141"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_1158.EdGraphPin_6242"'
      LinkedTo(1)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_2370.EdGraphPin_6302"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93940.EdGraphPin_6132"'
   End Object
   Begin Object Name="EdGraphPin_6243"
      PinName="B"
      PinToolTip="B
Float"
      PinType=(PinCategory="float")
      DefaultValue="0.0"
      AutogeneratedDefaultValue="0.0"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93936.EdGraphPin_6123"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_2375.EdGraphPin_6188"'
      LinkedTo(1)=EdGraphPin'"K2Node_Tunnel_273.EdGraphPin_5862"'
      LinkedTo(2)=EdGraphPin'"K2Node_CallFunction_282619.EdGraphPin_6256"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5873"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_2370.EdGraphPin_6303"'
   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
   NodeGuid=07C84D2846223AC21D5965A776AD2057
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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_2375.EdGraphPin_6190"'
   End Object
   Begin Object Name="EdGraphPin_6162"
      PinName="Divisor"
      PinToolTip="Divisor
Float"
      PinType=(PinCategory="float")
      DefaultValue="0.0"
      AutogeneratedDefaultValue="0.0"
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5873"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_273.EdGraphPin_5861"'
      LinkedTo(1)=EdGraphPin'"K2Node_CallFunction_286131.EdGraphPin_6361"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_93940.EdGraphPin_6132"'
   End Object
   Begin Object Name="EdGraphPin_6303"
      PinName="B"
      PinToolTip="B
Float"
      PinType=(PinCategory="float")
      DefaultValue="0.0"
      AutogeneratedDefaultValue="0.0"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_186317.EdGraphPin_6151"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_2375.EdGraphPin_6189"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_1158.EdGraphPin_6244"'
   End Object
   Begin Object Name="EdGraphPin_6189"
      PinName="B"
      PinToolTip="B
Float"
      PinType=(PinCategory="float")
      DefaultValue="0.0"
      AutogeneratedDefaultValue="0.0"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_2370.EdGraphPin_6304"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_178445.EdGraphPin_6161"'
   End Object
   bIsPureFunc=True
   FunctionReference=(MemberParentClass=Class'/Script/Engine.KismetMathLibrary',MemberName="Add_FloatFloat")
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_MacroInstance_1698.EdGraphPin_7553"'
   End Object
   Begin Object Name="EdGraphPin_6200"
      PinName="then"
      Direction=EGPD_Output
      PinType=(PinCategory="exec")
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_273.EdGraphPin_5859"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_282619.EdGraphPin_6258"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5874"'
      bAdvancedView=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"
      LinkedTo(0)=EdGraphPin'"K2Node_Tunnel_272.EdGraphPin_5875"'
      bAdvancedView=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)"
      bAdvancedView=True
   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
   AdvancedPinDisplay=Shown
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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150412.EdGraphPin_6076"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_286131.EdGraphPin_6359"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268499.EdGraphPin_6228"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_178445.EdGraphPin_6164"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268498.EdGraphPin_6272"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268498.EdGraphPin_6276"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CommutativeAssociativeBinaryOperator_1158.EdGraphPin_6244"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_268323.EdGraphPin_6203"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_286131.EdGraphPin_6363"'
   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"
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_150411.EdGraphPin_6378"'
   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")
      LinkedTo(0)=EdGraphPin'"K2Node_CallFunction_282619.EdGraphPin_6254"'
   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!

02b239522b6a32d7a81f11beb308fbed3b93f8d3.jpeg

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
graph2.png

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