Why is the UE4 Oculus Plugin still so broken (4.8.1)? — Oculus
Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Why is the UE4 Oculus Plugin still so broken (4.8.1)?

spyrospyro Posts: 337
Art3mis
edited July 2015 in Unreal Development
Hi there,

Even after a year or so, basic camera functionality is still broken or very hard to use (4.8.1). I don't know what is going on there but the UE4 integration just isn't reaching a stable state (only listing the problems with the camera here):

Not being able to getting the position of the camera in world- or local space as expected:
- https://answers.unrealengine.com/questi ... -mode.html

Camera manager ignores position of HMD, takes only rotation into account:
- https://answers.unrealengine.com/questi ... oesnt.html

Console command 'hmd vsync 0' doesn't work (needed for profiling):
- https://answers.unrealengine.com/questi ... -with.html

Rotation of player-pawn itself (standing on a rotating platform) isn't translated back to camera (a real classic):
- https://answers.unrealengine.com/questi ... tform.html

Not being able to obtain relative location of the tracking camera
- https://answers.unrealengine.com/questi ... roken.html

VR Preview itself is more or less completely broken since more than 2 weeks (was reported in preview-state but was released in this state anyway):
- https://answers.unrealengine.com/questi ... -work.html

It's pretty much obvious, that Epic doesn't prioritize VR integration very high and they are not the best in in doing some QA before releasing it (sorry, but that's just how it is, maybe their workload is just too heigh).

But why does Oculus not support them some more, then? Seriously, how are we supposed to develop with this? I know you guys are all doing a very though job but many of us just need a reliable working foundation for our project which doesn't require rocket-science to get it work as expected...

So please push this along some more. I really want my VR project awesome and all but I am constantly fighting bugs and have to create clunky workarounds for stuff which I expected to work out-of-the box after this long time. It really isn't fun to work with this currently.

UE4-Version: 4.8.1
SDK-Version: 0.6.0.1

Many thanks and no offense,
spyro

Comments

  • cyberealitycybereality Posts: 26,156 Oculus Staff
    Very sorry about this. Let me see what I can do.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i
    Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
  • artyom17artyom17 Posts: 319 Oculus Staff
    Well. Sorry to see your frustration, I understand it. Fortunately or unfortunately, VR in UE4 is not only Oculus anymore. Epic is working on increasing the number of supported HMDs. Therefore it is becoming harder and harder to introduce Oculus-specific changes into core functionality.

    I'll try to respond item by item.
    1, 2 and 4. Camera. As you know, I tried my best to introduce changes into CameraManager to be able to get/set real coordinates of the camera (in 4.7 experimental branch (viewtopic.php?f=60&t=19145&e=1), including 'Follow Hmd Position' option). Unfortunately, those changes were banned by Epic and I can't do much about it. They are working on alternative solution for 4.9. I have yet to see the progress, though.

    3. This is tough one. There is still on going internal discussion whether we need to re-enable vsync 0 functionality or not. The risk is that devs might release apps with vsync off and this would cause 'bad VR experience'.
    As an alternative, I could offer to run your game with -emulatestereo command line option for benchmarking.
    We also working on adding a built-in performance HUD into our Runtime. You already can try it with Oculus version of 4.8 from github. Or you can integrate this commit into your branch: https://github.com/Oculus-VR/UnrealEngi ... 9c8f2288bf) and 0.6.0.1 RT.

    4. I think I replied to it already, but I can do it again. All the positions returned by the GetPositionalTrackingCameraProperties are relative to the tracking volume. The same coordinate space as you get from GetCurrentOrientationAndPosition. Thus you must apply the same transforms to the results of the function. There is a C++ function that uses this call - DrawDebugTrackingCameraFrustum, I'll try to make a blueprint for demoing it.

    5. VR Preview - I'll try to repro the issue, but the last time I tried it, it worked just fine....
  • andrewtekandrewtek Posts: 971
    Art3mis
    artyom17 wrote:
    Well. Sorry to see your frustration, I understand it. Fortunately or unfortunately, VR in UE4 is not only Oculus anymore. Epic is working on increasing the number of supported HMDs. Therefore it is becoming harder and harder to introduce Oculus-specific changes into core functionality.
    This is understandable, but unfortunate. How are you dealing with this complication on the Unity side? Is there any way that these processes can be carried over to UE?
    artyom17 wrote:
    3. This is tough one. There is still on going internal discussion whether we need to re-enable vsync 0 functionality or not. The risk is that devs might release apps with vsync off and this would cause 'bad VR experience'.
    As an alternative, I could offer to run your game with -emulatestereo command line option for benchmarking.
    We also working on adding a built-in performance HUD into our Runtime. You already can try it with Oculus version of 4.8 from github. Or you can integrate this commit into your branch: https://github.com/Oculus-VR/UnrealEngi ... 9c8f2288bf) and 0.6.0.1 RT.
    Thanks Artyom! That is really cool of you. But, you cannot run all of our applications for us. Not to mention, benchmarking involves toggling functionality until you find the performance bottlenecks. How about simply rejecting any application that sets this flag from being available in Oculus Share or the Oculus Store?
  • artyom17artyom17 Posts: 319 Oculus Staff
    Well, I meant, you can just run your app with the -emulatestereo command line option. :) This is not the same as running with Oculus, sure, but might be somewhat useful.
    You also can use 'profile gpu' that should work regardless to Vsync on or off.
  • andrewtekandrewtek Posts: 971
    Art3mis
    artyom17 wrote:
    As an alternative, I could offer to run your game with -emulatestereo command line option for benchmarking.
    artyom17 wrote:
    Well, I meant, you can just run your app with the -emulatestereo command line option. :)
    HAHA - I totally misread. LOL. Thanks!

    Any clue as to whether the relationship between Epic/UE4 and Oculus will resume its previous awesomeness? Are you working with other HMD developers to come up with common solutions? Probably not allowed to say; but I thought I would ask.

    EDIT: Also, thanks to Spyro for enumerating these issues here. As a UE4 developer, I want to see UE continue to be a quality VR development platform.
  • artyom17artyom17 Posts: 319 Oculus Staff
    I can't say our relationship with Epic is worse, not at all. I am saying that Epic guys have more stuff to worry about than it was before. At Oculus we can introduce any changes we want for our particular device, however, Epic should worry about adopting those changes for multiple devices (if we ask them to integrate the changes into main UE). We could make some Oculus-specific changes (like, 4.8 introduced OculusLibrary where the Oculus-specific functionality was moved to). But then the game won't work the same way with other HMDs.
    We can also introduce changes in our own branch in github. But again, we don't want to create a completely separate branch with different functionality since it won't do any good in a long run.
  • spyrospyro Posts: 337
    Art3mis
    edited June 2015
    Hi Artynom17,

    first of all, many thanks for your quick, helpful and detailed reaction, really appreciate that.
    artyom17 wrote:
    Well. Sorry to see your frustration, I understand it. Fortunately or unfortunately, VR in UE4 is not only Oculus anymore. Epic is working on increasing the number of supported HMDs. Therefore it is becoming harder and harder to introduce Oculus-specific changes into core functionality.

    I could (at least from a business standpoint) understand this if their stuff would work as expected....
    artyom17 wrote:
    As you know, I tried my best to introduce changes into CameraManager to be able to get/set real coordinates of the camera (in 4.7 experimental branch (viewtopic.php?f=60&t=19145&e=1), including 'Follow Hmd Position' option). Unfortunately, those changes were banned by Epic and I can't do much about it.

    This is - pretty frustrating. For all sides...
    artyom17 wrote:
    They are working on alternative solution for 4.9. I have yet to see the progress, though.

    Great. Why accepting merge requests which help to fix a non-complete implementation if you can just release a broken major version? :roll:
    artyom17 wrote:
    There is still on going internal discussion whether we need to re-enable vsync 0 functionality or not. The risk is that devs might release apps with vsync off and this would cause 'bad VR experience'.

    I understand the intention (I really do, VR without V-Sync is hell) but we simply need this for profiling. Your upcoming alternatives may be a big help here, sure, but maybe you could just display a hardcoded, red warning message through your composer if V-Sync is disabled.
    artyom17 wrote:
    4. I think I replied to it already, but I can do it again. All the positions returned by the GetPositionalTrackingCameraProperties are relative to the tracking volume. The same coordinate space as you get from GetCurrentOrientationAndPosition. Thus you must apply the same transforms to the results of the function. There is a C++ function that uses this call - DrawDebugTrackingCameraFrustum, I'll try to make a blueprint for demoing it.

    Hmm, I just can't get this to work, sorry. I have to admit, that I'm not really experienced in matrix transformations and all this stuff. I'm afraid I am more the lookAt-Guy ;)

    What exactly do you mean by "relative to the tracking volume"? Isn't this the same as the local space of the HMD itself (which should be the same as the location of the playerCameraManager)? What exactly do I have to do with this coordinates to make the tracker show up at the right place in front of my pawn's camera?

    Background:
    I would love to build some sort of 'chaperone' system, like DrashVR did in his fantastic Titans Of Space. If the user gets too close to the tracking volume boundaries I would like to fade-in some sort of glowing grid (DrashVR used circles along the sides of the tracking frustum which radii growed up gradually). This is IHMO a way better solution than reacting to a non-valid tracking position when it's too late already. IHMO this should be integrated in the composer as well because getting outside the tracking volume is highly uncomfortable to the user, regardless of the experience.

    (If something like this planned anyway for the near future please give me an hint. It takes me ages to create something myself and it would be very frustrating if this will be released in the upcoming weeks anyway... :? )
    artyom17 wrote:
    5. VR Preview - I'll try to repro the issue, but the last time I tried it, it worked just fine....

    Just open a few tabs and then try again... ;)
  • artyom17artyom17 Posts: 319 Oculus Staff
    Actually, I forgot to mention that there are some 'backdoor' methods left from the Experimental branch. I've just renamed those and moved to OculusLibrary.

    Here is the list of those:
    	/**
    	 * Grabs the current orientation and position for the HMD.  If positional tracking is not available, DevicePosition will be a zero vector
    	 *
    	 * @param DeviceRotation	(out) The device's current rotation
    	 * @param DevicePosition	(out) The device's current position, in its own tracking space
    	 * @param NeckPosition		(out) The estimated neck position, calculated using NeckToEye vector from User Profile. Same coordinate space as DevicePosition.
    	 * @param bUseOrienationForPlayerCamera	(in) Should be set to 'true' if the orientation is going to be used to update orientation of the camera manually.
    	 * @param bUsePositionForPlayerCamera	(in) Should be set to 'true' if the position is going to be used to update position of the camera manually.
    	 * @param PositionScale		(in) The 3D scale that will be applied to position.
    	 */
    	UFUNCTION(BlueprintPure, Category="Input|OculusLibrary")
    	static void GetPose(FRotator& DeviceRotation, FVector& DevicePosition, FVector& NeckPosition, bool bUseOrienationForPlayerCamera = false, bool bUsePositionForPlayerCamera = false, const FVector PositionScale = FVector::ZeroVector);
    
    	/**
    	* Reports raw sensor data. If HMD doesn't support any of the parameters then it will be set to zero.
    	*
    	* @param Accelerometer	(out) Acceleration reading in m/s^2.
    	* @param Gyro			(out) Rotation rate in rad/s.
    	* @param Magnetometer	(out) Magnetic field in Gauss.
    	* @param Temperature	(out) Temperature of the sensor in degrees Celsius.
    	* @param TimeInSeconds	(out) Time when the reported IMU reading took place, in seconds.
    	*/
    	UFUNCTION(BlueprintPure, Category = "Input|OculusLibrary")
    	static void GetRawSensorData(FVector& Accelerometer, FVector& Gyro, FVector& Magnetometer, float& Temperature, float& TimeInSeconds);
    
    	/**
    	* Returns current user profile.
    	*
    	* @param Profile		(out) Structure to hold current user profile.
    	* @return (boolean)	True, if user profile was acquired.
    	*/
    	UFUNCTION(BlueprintPure, Category = "Input|OculusLibrary")
    	static bool GetUserProfile(FHmdUserProfile& Profile);
    
    	/**
    	* Sets 'base rotation' - the rotation that will be subtracted from
    	* the actual HMD orientation.
    	* Sets base position offset (in meters). The base position offset is the distance from the physical (0, 0, 0) position
    	* to current HMD position (bringing the (0, 0, 0) point to the current HMD position)
    	* Note, this vector is set by ResetPosition call; use this method with care.
    	* The axis of the vector are the same as in Unreal: X - forward, Y - right, Z - up.
    	*
    	* @param Rotation			(in) Rotator object with base rotation
    	* @param BaseOffsetInMeters (in) the vector to be set as base offset, in meters.
    	* @param Options			(in) specifies either position, orientation or both should be set.
    	*/
    	UFUNCTION(BlueprintCallable, Category = "Input|OculusLibrary")
    	static void SetBaseRotationAndBaseOffsetInMeters(FRotator Rotation, FVector BaseOffsetInMeters, EOrientPositionSelector::Type Options);
    
    	/**
    	* Returns current base rotation and base offset.
    	* The base offset is currently used base position offset, previously set by the
    	* ResetPosition or SetBasePositionOffset calls. It represents a vector that translates the HMD's position
    	* into (0,0,0) point, in meters.
    	* The axis of the vector are the same as in Unreal: X - forward, Y - right, Z - up.
    	*
    	* @param OutRotation			(out) Rotator object with base rotation
    	* @param OutBaseOffsetInMeters	(out) base position offset, vector, in meters.
    	*/
    	UFUNCTION(BlueprintPure, Category = "Input|OculusLibrary")
    	static void GetBaseRotationAndBaseOffsetInMeters(FRotator& OutRotation, FVector& OutBaseOffsetInMeters);
    
    	/**
    	 * Turns on/off default PlayerController's behavior to follow HMD orientation/position
    	 */
    	UFUNCTION(BlueprintCallable, Category = "Input|OculusLibrary")
    	static void EnablePlayerControllerFollowHmd(bool bEnable);
    
    	/**
    	 * Returns true if PlayerController follows HMD orientation/position. False, otherwise.
    	 */
    	UFUNCTION(BlueprintPure, Category = "Input|OculusLibrary")
    	static bool IsPlayerControllerFollowHmdEnabled();
    
    	/**
    	 * Controls how PlayerCameraManager follows HMD. Note, this works for any active PlayerCameraManager
    	 * with bFollowHmdOrientation property set to true. 
    	 *
    	 * @param bFollowHmdOrientation	(in) True if camera's orientation should be updated by most recent HMD orientation.
    	 * @param bFollowHmdPosition	(in) Whether the camera's position should be updated by most recent HMD orientation or not.
    	 */
    	UFUNCTION(BlueprintCallable, Category = "Input|OculusLibrary")
    	static void EnablePlayerCameraManagerFollowHmd(bool bFollowHmdOrientation, bool bFollowHmdPosition);
    
    	/**
    	 * Returns current settings for PlayerCameraManager's overrides for following HMD orientation and position.
    	 *
    	 * @param bFollowHmdOrientation	(out) True if camera's orientation should be updated by most recent HMD orientation.
    	 * @param bFollowHmdPosition	(out) Whether the camera's position should be updated by most recent HMD orientation or not.
    	 */
    	UFUNCTION(BlueprintPure, Category = "Input|OculusLibrary")
    	static void GetPlayerCameraManagerFollowHmd(bool& bFollowHmdOrientation, bool& bFollowHmdPosition);
    
    	/**
    	 * Sets 'base rotation' - the rotation that will be subtracted from
    	 * the actual HMD orientation.
    	 * The position offset might be added to current HMD position,
    	 * effectively moving the virtual camera by the specified offset. The addition
    	 * occurs after the HMD orientation and position are applied.
    	 *
    	 * @param BaseRot			(in) Rotator object with base rotation
    	 * @param PosOffset			(in) the vector to be added to HMD position.
    	 * @param Options			(in) specifies either position, orientation or both should be set.
    	 */
    	UFUNCTION(BlueprintCallable, Category = "Input|OculusLibrary", meta = (DeprecatedFunction, DeprecationMessage = "A hack, proper camera positioning should be used"))
    	static void SetBaseRotationAndPositionOffset(FRotator BaseRot, FVector PosOffset, EOrientPositionSelector::Type Options);
    
    	/**
    	 * Returns current base rotation and position offset.
    	 *
    	 * @param OutRot			(out) Rotator object with base rotation
    	 * @param OutPosOffset		(out) the vector with previously set position offset.
    	 */
    	UFUNCTION(BlueprintCallable, Category = "Input|OculusLibrary", meta = (DeprecatedFunction, DeprecationMessage = "A hack, proper camera positioning should be used"))
    	static void GetBaseRotationAndPositionOffset(FRotator& OutRot, FVector& OutPosOffset);
    

    The most interesting for you could be: GetPose, EnablePlayerCameraManagerFollowHmd, GetPlayerCameraManagerFollowHmd. These methods basically re-introduce the bFollowHmdPosition property for the CameraManager (not for the CameraComponent, though). You may try to use those and let me know if you have any issues with them.
    You may use EnablePlayerControllerFollowHmd to disable HMD following by the PlayerController (to disable the default behavior).
  • artyom17artyom17 Posts: 319 Oculus Staff
    Hmm, I just can't get this to work, sorry. I have to admit, that I'm not really experienced in matrix transformations and all this stuff. What exactly do you mean by "relative to the tracking volume"? Isn't this the same as the local space of the HMD itself (which should be the same as the location of the playerCameraManager)? What exactly do I have to do with this coordinates to make the tracker show up at the right place in front of my pawn's camera?

    Yes, this is what I meant. It should be in the same coord space as the HMD's position. I understand that it is not trivial to make that function work, will think how to make it easier to use. I'll show you a blueprint once I have it.

    However, if you just need to detect that you are out of the tracking space, you can use HasValidTrackingPosition function call (in Blueprint). This returns false if you are out of the tracking frustum.

    And, the good news: I've reproduced the issue with VR Preview. The issue is in wrong "world" being picked up by the plugin (the "Editor" one instead of "PIE" one). Need to think how to resolve this w/o much changes in interfaces.
  • andrewtekandrewtek Posts: 971
    Art3mis
    artyom17 wrote:
    Yes, this is what I meant. It should be in the same coord space as the HMD's position. I understand that it is not trivial to make that function work, will think how to make it easier to use. I'll show you a blueprint once I have it.
    Would love to see your BP. A boolean is a bit jarring. Knowing the distance from frustum edge allows us to fade to a "holodeck" style "safe space".
    artyom17 wrote:
    And, the good news: I've reproduced the issue with VR Preview. The issue is in wrong "world" being picked up by the plugin (the "Editor" one instead of "PIE" one). Need to think how to resolve this w/o much changes in interfaces.
    Excellent! Thanks Artyom!
  • artyom17artyom17 Posts: 319 Oculus Staff
    Here is working code with the sphere.
    The copy-paste blueprint text is as follows:
    Begin Object Class=K2Node_Event Name="K2Node_Event_10"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4091"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4092"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4093"
       End Object
       Begin Object Name="EdGraphPin_4091"
          PinName="OutputDelegate"
          Direction=EGPD_Output
          PinType=(PinCategory="delegate",PinSubCategoryMemberReference=(MemberParent=Class'/Script/Engine.Actor',MemberName="ReceiveTick"))
       End Object
       Begin Object Name="EdGraphPin_4092"
          PinName="then"
          Direction=EGPD_Output
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2143.EdGraphPin_4100'
       End Object
       Begin Object Name="EdGraphPin_4093"
          PinName="DeltaSeconds"
          PinToolTip="Delta Seconds\nFloat"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       EventReference=(MemberParent=Class'/Script/Engine.Actor',MemberName="ReceiveTick")
       bOverrideFunction=True
       Pins(0)=EdGraphPin'EdGraphPin_4091'
       Pins(1)=EdGraphPin'EdGraphPin_4092'
       Pins(2)=EdGraphPin'EdGraphPin_4093'
       NodePosX=-192
       NodePosY=608
       bCommentBubblePinned=True
       NodeGuid=A4FD4ACF4EA68AFAD8A58CAA011887AF
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2143"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4100"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4101"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4102"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4103"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4104"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4105"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4106"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4107"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4108"
       End Object
       Begin Object Name="EdGraphPin_4100"
          PinName="execute"
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_Event_10.EdGraphPin_4092'
       End Object
       Begin Object Name="EdGraphPin_4101"
          PinName="then"
          Direction=EGPD_Output
          PinType=(PinCategory="exec")
       End Object
       Begin Object Name="EdGraphPin_4102"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet System Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetSystemLibrary')
          DefaultObject=Default__KismetSystemLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4103"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4104"
          PinName="Center"
          PinToolTip="Center\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector',bIsConst=True)
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_4172'
       End Object
       Begin Object Name="EdGraphPin_4105"
          PinName="Radius"
          PinToolTip="Radius\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="20"
          AutogeneratedDefaultValue="100.000000"
       End Object
       Begin Object Name="EdGraphPin_4106"
          PinName="Segments"
          PinToolTip="Segments\nInteger"
          PinType=(PinCategory="int")
          DefaultValue="200"
          AutogeneratedDefaultValue="12"
       End Object
       Begin Object Name="EdGraphPin_4107"
          PinName="LineColor"
          PinToolTip="Line Color\nLinear Color Structure"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.LinearColor')
          DefaultValue="(R=1.000000,G=0.030000,B=0.030000,A=1.000000)"
          AutogeneratedDefaultValue="(R=1.000000,G=1.000000,B=1.000000,A=1.000000)"
       End Object
       Begin Object Name="EdGraphPin_4108"
          PinName="Duration"
          PinToolTip="Duration\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.000000"
          AutogeneratedDefaultValue="0.000000"
       End Object
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetSystemLibrary',MemberName="DrawDebugSphere")
       Pins(0)=EdGraphPin'EdGraphPin_4100'
       Pins(1)=EdGraphPin'EdGraphPin_4101'
       Pins(2)=EdGraphPin'EdGraphPin_4102'
       Pins(3)=EdGraphPin'EdGraphPin_4103'
       Pins(4)=EdGraphPin'EdGraphPin_4104'
       Pins(5)=EdGraphPin'EdGraphPin_4105'
       Pins(6)=EdGraphPin'EdGraphPin_4106'
       Pins(7)=EdGraphPin'EdGraphPin_4107'
       Pins(8)=EdGraphPin'EdGraphPin_4108'
       NodePosX=272
       NodePosY=944
       NodeGuid=B4EF0FCE4C15681FBDCD97813B4719AF
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2155"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4136"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4137"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4138"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4139"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4140"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4141"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4142"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4143"
       End Object
       Begin Object Name="EdGraphPin_4136"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4137"
          PinName="CameraOrigin"
          PinToolTip="Camera Origin\nVector \n\n(out) Origin, in world-space, of the tracking camera"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_4206'
       End Object
       Begin Object Name="EdGraphPin_4138"
          PinName="CameraRotation"
          PinToolTip="Camera Rotation\nRotator \n\n(out) Rotation, in world-space, of the tracking camera"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
       End Object
       Begin Object Name="EdGraphPin_4139"
          PinName="HFOV"
          PinToolTip="HFOV\nFloat\n\n(out) Field-of-view, horizontal, in degrees, of the valid tracking zone of the camera"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_4140"
          PinName="VFOV"
          PinToolTip="VFOV\nFloat\n\n(out) Field-of-view, vertical, in degrees, of the valid tracking zone of the camera"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_4141"
          PinName="CameraDistance"
          PinToolTip="Camera Distance\nFloat\n\n(out) Nominal distance to camera, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_4142"
          PinName="NearPlane"
          PinToolTip="Near Plane\nFloat\n\n(out) Near plane distance of the tracking volume, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_4143"
          PinName="FarPlane"
          PinToolTip="Far Plane\nFloat\n\n(out) Far plane distance of the tracking volume, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetPositionalTrackingCameraParameters")
       Pins(0)=EdGraphPin'EdGraphPin_4136'
       Pins(1)=EdGraphPin'EdGraphPin_4137'
       Pins(2)=EdGraphPin'EdGraphPin_4138'
       Pins(3)=EdGraphPin'EdGraphPin_4139'
       Pins(4)=EdGraphPin'EdGraphPin_4140'
       Pins(5)=EdGraphPin'EdGraphPin_4141'
       Pins(6)=EdGraphPin'EdGraphPin_4142'
       Pins(7)=EdGraphPin'EdGraphPin_4143'
       NodePosX=-960
       NodePosY=768
       NodeGuid=DC55ECF04993EF6097D21B907C431218
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2156"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4160"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4161"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4162"
       End Object
       Begin Object Name="EdGraphPin_4160"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4161"
          PinName="DeviceRotation"
          PinToolTip="Device Rotation\nRotator \n\n(out) The device\'s current rotation"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2183.EdGraphPin_19370'
       End Object
       Begin Object Name="EdGraphPin_4162"
          PinName="DevicePosition"
          PinToolTip="Device Position\nVector \n\n(out) The device\'s current position, in its own tracking space"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetOrientationAndPosition")
       Pins(0)=EdGraphPin'EdGraphPin_4160'
       Pins(1)=EdGraphPin'EdGraphPin_4161'
       Pins(2)=EdGraphPin'EdGraphPin_4162'
       NodePosX=-960
       NodePosY=1024
       NodeGuid=38A72A134E692BB6E77754A794027B9F
    End Object
    Begin Object Class=K2Node_CommutativeAssociativeBinaryOperator Name="K2Node_CommutativeAssociativeBinaryOperator_19"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4169"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4170"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4171"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4172"
       End Object
       Begin Object Name="EdGraphPin_4169"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4170"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_4208'
       End Object
       Begin Object Name="EdGraphPin_4171"
          PinName="B"
          PinToolTip="B\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2181.EdGraphPin_4200'
       End Object
       Begin Object Name="EdGraphPin_4172"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2143.EdGraphPin_4104'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="Add_VectorVector")
       Pins(0)=EdGraphPin'EdGraphPin_4169'
       Pins(1)=EdGraphPin'EdGraphPin_4170'
       Pins(2)=EdGraphPin'EdGraphPin_4171'
       Pins(3)=EdGraphPin'EdGraphPin_4172'
       NodePosX=80
       NodePosY=1248
       NodeGuid=7C48075D486E43533664B3B11ED0A1FA
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2165"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4181"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4182"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4183"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4184"
       End Object
       Begin Object Name="EdGraphPin_4181"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nGameplay Statics Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameplayStatics')
          DefaultObject=Default__GameplayStatics
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4182"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4183"
          PinName="PlayerIndex"
          PinToolTip="Player Index\nInteger"
          PinType=(PinCategory="int")
          DefaultValue="0"
          AutogeneratedDefaultValue="0"
       End Object
       Begin Object Name="EdGraphPin_4184"
          PinName="ReturnValue"
          PinToolTip="Return Value\nPlayer Camera Manager Reference"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2166.EdGraphPin_4193'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_2181.EdGraphPin_4199'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.GameplayStatics',MemberName="GetPlayerCameraManager")
       Pins(0)=EdGraphPin'EdGraphPin_4181'
       Pins(1)=EdGraphPin'EdGraphPin_4182'
       Pins(2)=EdGraphPin'EdGraphPin_4183'
       Pins(3)=EdGraphPin'EdGraphPin_4184'
       NodePosX=-960
       NodePosY=1168
       NodeGuid=1E28F0C94A7B4B0D887313ADDD78522A
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2166"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4193"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4194"
       End Object
       Begin Object Name="EdGraphPin_4193"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2165.EdGraphPin_4184'
       End Object
       Begin Object Name="EdGraphPin_4194"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator \n\nReturns camera\'s current rotation."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19374'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraRotation")
       Pins(0)=EdGraphPin'EdGraphPin_4193'
       Pins(1)=EdGraphPin'EdGraphPin_4194'
       NodePosX=-688
       NodePosY=1152
       NodeGuid=79F0E30D409DBADA259EBEB2A15F1215
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2181"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4199"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4200"
       End Object
       Begin Object Name="EdGraphPin_4199"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2165.EdGraphPin_4184'
       End Object
       Begin Object Name="EdGraphPin_4200"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector \n\nReturns camera\'s current location."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_4171'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraLocation")
       Pins(0)=EdGraphPin'EdGraphPin_4199'
       Pins(1)=EdGraphPin'EdGraphPin_4200'
       NodePosX=-688
       NodePosY=1248
       NodeGuid=C591D7D64BC9EE205A67109EF44DF5C3
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2202"
       Begin Object Class=EdGraphPin Name="EdGraphPin_4205"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4206"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4207"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_4208"
       End Object
       Begin Object Name="EdGraphPin_4205"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_4206"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_4137'
       End Object
       Begin Object Name="EdGraphPin_4207"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19375'
       End Object
       Begin Object Name="EdGraphPin_4208"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_4170'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_4205'
       Pins(1)=EdGraphPin'EdGraphPin_4206'
       Pins(2)=EdGraphPin'EdGraphPin_4207'
       Pins(3)=EdGraphPin'EdGraphPin_4208'
       NodePosX=-224
       NodePosY=768
       NodeGuid=F37F0FA34BF5E6D9C872DC92EBE8DC17
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2183"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19369"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19370"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19371"
       End Object
       Begin Object Name="EdGraphPin_19369"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_19370"
          PinName="A"
          PinToolTip="A\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2156.EdGraphPin_4161'
       End Object
       Begin Object Name="EdGraphPin_19371"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19373'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="NegateRotator")
       Pins(0)=EdGraphPin'EdGraphPin_19369'
       Pins(1)=EdGraphPin'EdGraphPin_19370'
       Pins(2)=EdGraphPin'EdGraphPin_19371'
       NodePosX=-496
       NodePosY=1024
       NodeGuid=BA8DECD449B9502D6F4748865E447905
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2184"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19372"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19373"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19374"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19375"
       End Object
       Begin Object Name="EdGraphPin_19372"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_19373"
          PinName="A"
          PinToolTip="A\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2183.EdGraphPin_19371'
       End Object
       Begin Object Name="EdGraphPin_19374"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2166.EdGraphPin_4194'
       End Object
       Begin Object Name="EdGraphPin_19375"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_4207'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="ComposeRotators")
       Pins(0)=EdGraphPin'EdGraphPin_19372'
       Pins(1)=EdGraphPin'EdGraphPin_19373'
       Pins(2)=EdGraphPin'EdGraphPin_19374'
       Pins(3)=EdGraphPin'EdGraphPin_19375'
       NodePosX=-224
       NodePosY=1024
       NodeGuid=390A93584F5E93066F4760AF97D29DE6
    End Object
    
  • artyom17artyom17 Posts: 319 Oculus Staff
    And in this code I tried to use DrawDebugCone to demonstrate usage of other params, however, I am not sure I understood meaning of 'Length', 'Angle Width' and 'Angle Height' params of the function. Nevertheless, it draws something close to truth.
    Begin Object Class=K2Node_Event Name="K2Node_Event_142"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19496"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19495"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19494"
       End Object
       Begin Object Name="EdGraphPin_19496"
          PinName="DeltaSeconds"
          PinToolTip="Delta Seconds\nFloat"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_19495"
          PinName="then"
          Direction=EGPD_Output
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2252.EdGraphPin_19739'
       End Object
       Begin Object Name="EdGraphPin_19494"
          PinName="OutputDelegate"
          Direction=EGPD_Output
          PinType=(PinCategory="delegate",PinSubCategoryMemberReference=(MemberParent=Class'/Script/Engine.Actor',MemberName="ReceiveTick"))
       End Object
       EventReference=(MemberParent=Class'/Script/Engine.Actor',MemberName="ReceiveTick")
       bOverrideFunction=True
       Pins(0)=EdGraphPin'EdGraphPin_19494'
       Pins(1)=EdGraphPin'EdGraphPin_19495'
       Pins(2)=EdGraphPin'EdGraphPin_19496'
       NodePosX=656
       NodePosY=64
       bCommentBubblePinned=True
       NodeGuid=16CD06264118DF2E9EA877AE30230970
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2155"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19580"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19579"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19578"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19577"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19576"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19575"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19574"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19573"
       End Object
       Begin Object Name="EdGraphPin_19580"
          PinName="FarPlane"
          PinToolTip="Far Plane\nFloat\n\n(out) Far plane distance of the tracking volume, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_3094.EdGraphPin_21746'
       End Object
       Begin Object Name="EdGraphPin_19579"
          PinName="NearPlane"
          PinToolTip="Near Plane\nFloat\n\n(out) Near plane distance of the tracking volume, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_19578"
          PinName="CameraDistance"
          PinToolTip="Camera Distance\nFloat\n\n(out) Nominal distance to camera, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_19577"
          PinName="VFOV"
          PinToolTip="VFOV\nFloat\n\n(out) Field-of-view, vertical, in degrees, of the valid tracking zone of the camera"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2252.EdGraphPin_19747'
       End Object
       Begin Object Name="EdGraphPin_19576"
          PinName="HFOV"
          PinToolTip="HFOV\nFloat\n\n(out) Field-of-view, horizontal, in degrees, of the valid tracking zone of the camera"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2252.EdGraphPin_19746'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_3015.EdGraphPin_21602'
       End Object
       Begin Object Name="EdGraphPin_19575"
          PinName="CameraRotation"
          PinToolTip="Camera Rotation\nRotator \n\n(out) Rotation, in world-space, of the tracking camera"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2558.EdGraphPin_20551'
       End Object
       Begin Object Name="EdGraphPin_19574"
          PinName="CameraOrigin"
          PinToolTip="Camera Origin\nVector \n\n(out) Origin, in world-space, of the tracking camera"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_19643'
       End Object
       Begin Object Name="EdGraphPin_19573"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetPositionalTrackingCameraParameters")
       Pins(0)=EdGraphPin'EdGraphPin_19573'
       Pins(1)=EdGraphPin'EdGraphPin_19574'
       Pins(2)=EdGraphPin'EdGraphPin_19575'
       Pins(3)=EdGraphPin'EdGraphPin_19576'
       Pins(4)=EdGraphPin'EdGraphPin_19577'
       Pins(5)=EdGraphPin'EdGraphPin_19578'
       Pins(6)=EdGraphPin'EdGraphPin_19579'
       Pins(7)=EdGraphPin'EdGraphPin_19580'
       NodePosX=-912
       NodePosY=-16
       NodeGuid=CBAA3E9D47E7BFC24BF7DAA419590F24
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2156"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19599"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19598"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19597"
       End Object
       Begin Object Name="EdGraphPin_19599"
          PinName="DevicePosition"
          PinToolTip="Device Position\nVector \n\n(out) The device\'s current position, in its own tracking space"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
       End Object
       Begin Object Name="EdGraphPin_19598"
          PinName="DeviceRotation"
          PinToolTip="Device Rotation\nRotator \n\n(out) The device\'s current rotation"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2183.EdGraphPin_19655'
       End Object
       Begin Object Name="EdGraphPin_19597"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetOrientationAndPosition")
       Pins(0)=EdGraphPin'EdGraphPin_19597'
       Pins(1)=EdGraphPin'EdGraphPin_19598'
       Pins(2)=EdGraphPin'EdGraphPin_19599'
       NodePosX=-144
       NodePosY=624
       NodeGuid=F6ED2C6B4791A96509203491C6DEE97F
    End Object
    Begin Object Class=K2Node_CommutativeAssociativeBinaryOperator Name="K2Node_CommutativeAssociativeBinaryOperator_19"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19609"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19608"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19607"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19606"
       End Object
       Begin Object Name="EdGraphPin_19609"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2252.EdGraphPin_19743'
       End Object
       Begin Object Name="EdGraphPin_19608"
          PinName="B"
          PinToolTip="B\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2181.EdGraphPin_19637'
       End Object
       Begin Object Name="EdGraphPin_19607"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_19645'
       End Object
       Begin Object Name="EdGraphPin_19606"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="Add_VectorVector")
       Pins(0)=EdGraphPin'EdGraphPin_19606'
       Pins(1)=EdGraphPin'EdGraphPin_19607'
       Pins(2)=EdGraphPin'EdGraphPin_19608'
       Pins(3)=EdGraphPin'EdGraphPin_19609'
       NodePosX=848
       NodePosY=416
       NodeGuid=6AE429D548A26896EDE3DC8ECC909616
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2165"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19621"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19620"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19619"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19618"
       End Object
       Begin Object Name="EdGraphPin_19621"
          PinName="ReturnValue"
          PinToolTip="Return Value\nPlayer Camera Manager Reference"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2166.EdGraphPin_19630'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_2181.EdGraphPin_19636'
       End Object
       Begin Object Name="EdGraphPin_19620"
          PinName="PlayerIndex"
          PinToolTip="Player Index\nInteger"
          PinType=(PinCategory="int")
          DefaultValue="0"
          AutogeneratedDefaultValue="0"
       End Object
       Begin Object Name="EdGraphPin_19619"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_19618"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nGameplay Statics Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameplayStatics')
          DefaultObject=Default__GameplayStatics
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.GameplayStatics',MemberName="GetPlayerCameraManager")
       Pins(0)=EdGraphPin'EdGraphPin_19618'
       Pins(1)=EdGraphPin'EdGraphPin_19619'
       Pins(2)=EdGraphPin'EdGraphPin_19620'
       Pins(3)=EdGraphPin'EdGraphPin_19621'
       NodePosX=-144
       NodePosY=768
       NodeGuid=4B92771A47AFA9CFC7BD379BE01259DF
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2166"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19631"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19630"
       End Object
       Begin Object Name="EdGraphPin_19631"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator \n\nReturns camera\'s current rotation."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19665'
       End Object
       Begin Object Name="EdGraphPin_19630"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2165.EdGraphPin_19621'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraRotation")
       Pins(0)=EdGraphPin'EdGraphPin_19630'
       Pins(1)=EdGraphPin'EdGraphPin_19631'
       NodePosX=128
       NodePosY=752
       NodeGuid=90228B764706198510878CA1595F16C7
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2181"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19637"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19636"
       End Object
       Begin Object Name="EdGraphPin_19637"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector \n\nReturns camera\'s current location."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_19608'
       End Object
       Begin Object Name="EdGraphPin_19636"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2165.EdGraphPin_19621'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraLocation")
       Pins(0)=EdGraphPin'EdGraphPin_19636'
       Pins(1)=EdGraphPin'EdGraphPin_19637'
       NodePosX=128
       NodePosY=848
       NodeGuid=D859890C4046FAE137E5D0BB1649DAA2
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2202"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19645"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19644"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19643"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19642"
       End Object
       Begin Object Name="EdGraphPin_19645"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_19607'
       End Object
       Begin Object Name="EdGraphPin_19644"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19666'
       End Object
       Begin Object Name="EdGraphPin_19643"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_19574'
       End Object
       Begin Object Name="EdGraphPin_19642"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_19642'
       Pins(1)=EdGraphPin'EdGraphPin_19643'
       Pins(2)=EdGraphPin'EdGraphPin_19644'
       Pins(3)=EdGraphPin'EdGraphPin_19645'
       NodePosX=592
       NodePosY=368
       NodeGuid=7A6DC057496BDCC2BD16738E4CBA05F6
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2183"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19656"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19655"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19654"
       End Object
       Begin Object Name="EdGraphPin_19656"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19664'
       End Object
       Begin Object Name="EdGraphPin_19655"
          PinName="A"
          PinToolTip="A\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2156.EdGraphPin_19598'
       End Object
       Begin Object Name="EdGraphPin_19654"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="NegateRotator")
       Pins(0)=EdGraphPin'EdGraphPin_19654'
       Pins(1)=EdGraphPin'EdGraphPin_19655'
       Pins(2)=EdGraphPin'EdGraphPin_19656'
       NodePosX=320
       NodePosY=624
       NodeGuid=EB2FFC3A4A8C62189D7208A9E2A6DAE1
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2184"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19666"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19665"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19664"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19663"
       End Object
       Begin Object Name="EdGraphPin_19666"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_19644'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_2972.EdGraphPin_21459'
       End Object
       Begin Object Name="EdGraphPin_19665"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2166.EdGraphPin_19631'
       End Object
       Begin Object Name="EdGraphPin_19664"
          PinName="A"
          PinToolTip="A\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2183.EdGraphPin_19656'
       End Object
       Begin Object Name="EdGraphPin_19663"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="ComposeRotators")
       Pins(0)=EdGraphPin'EdGraphPin_19663'
       Pins(1)=EdGraphPin'EdGraphPin_19664'
       Pins(2)=EdGraphPin'EdGraphPin_19665'
       Pins(3)=EdGraphPin'EdGraphPin_19666'
       NodePosX=592
       NodePosY=624
       NodeGuid=012D51CB4CB2F25D16192FB3A85B157F
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2252"
       Begin Object Class=EdGraphPin Name="EdGraphPin_19750"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19749"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19748"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19747"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19746"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19745"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19744"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19743"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19742"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19741"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19740"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_19739"
       End Object
       Begin Object Name="EdGraphPin_19750"
          PinName="Duration"
          PinToolTip="Duration\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.000000"
          AutogeneratedDefaultValue="0.000000"
       End Object
       Begin Object Name="EdGraphPin_19749"
          PinName="LineColor"
          PinToolTip="Line Color\nLinear Color Structure"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.LinearColor')
          DefaultValue="(R=0.133322,G=0.000000,B=1.000000,A=1.000000)"
          AutogeneratedDefaultValue="(R=1.000000,G=1.000000,B=1.000000,A=1.000000)"
       End Object
       Begin Object Name="EdGraphPin_19748"
          PinName="NumSides"
          PinToolTip="Num Sides\nInteger"
          PinType=(PinCategory="int")
          DefaultValue="4"
          AutogeneratedDefaultValue="12"
       End Object
       Begin Object Name="EdGraphPin_19747"
          PinName="AngleHeight"
          PinToolTip="Angle Height\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_19577'
       End Object
       Begin Object Name="EdGraphPin_19746"
          PinName="AngleWidth"
          PinToolTip="Angle Width\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_19576'
       End Object
       Begin Object Name="EdGraphPin_19745"
          PinName="Length"
          PinToolTip="Length\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_3094.EdGraphPin_21748'
       End Object
       Begin Object Name="EdGraphPin_19744"
          PinName="Direction"
          PinToolTip="Direction\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector',bIsConst=True)
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2972.EdGraphPin_21460'
       End Object
       Begin Object Name="EdGraphPin_19743"
          PinName="Origin"
          PinToolTip="Origin\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector',bIsConst=True)
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_19609'
       End Object
       Begin Object Name="EdGraphPin_19742"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_19741"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet System Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetSystemLibrary')
          DefaultObject=Default__KismetSystemLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_19740"
          PinName="then"
          Direction=EGPD_Output
          PinType=(PinCategory="exec")
       End Object
       Begin Object Name="EdGraphPin_19739"
          PinName="execute"
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_Event_142.EdGraphPin_19495'
       End Object
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetSystemLibrary',MemberName="DrawDebugConeInDegrees")
       Pins(0)=EdGraphPin'EdGraphPin_19739'
       Pins(1)=EdGraphPin'EdGraphPin_19740'
       Pins(2)=EdGraphPin'EdGraphPin_19741'
       Pins(3)=EdGraphPin'EdGraphPin_19742'
       Pins(4)=EdGraphPin'EdGraphPin_19743'
       Pins(5)=EdGraphPin'EdGraphPin_19744'
       Pins(6)=EdGraphPin'EdGraphPin_19745'
       Pins(7)=EdGraphPin'EdGraphPin_19746'
       Pins(8)=EdGraphPin'EdGraphPin_19747'
       Pins(9)=EdGraphPin'EdGraphPin_19748'
       Pins(10)=EdGraphPin'EdGraphPin_19749'
       Pins(11)=EdGraphPin'EdGraphPin_19750'
       NodePosX=1216
       NodePosY=176
       NodeGuid=174C5D3144D5F405E96F57B776DA9179
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2557"
       Begin Object Class=EdGraphPin Name="EdGraphPin_20548"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20547"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20546"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20545"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20544"
       End Object
       Begin Object Name="EdGraphPin_20548"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2558.EdGraphPin_20550'
       End Object
       Begin Object Name="EdGraphPin_20547"
          PinName="Z"
          PinToolTip="Z\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_20546"
          PinName="Y"
          PinToolTip="Y\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_20545"
          PinName="X"
          PinToolTip="X\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="-1"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_20544"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="MakeVector")
       Pins(0)=EdGraphPin'EdGraphPin_20544'
       Pins(1)=EdGraphPin'EdGraphPin_20545'
       Pins(2)=EdGraphPin'EdGraphPin_20546'
       Pins(3)=EdGraphPin'EdGraphPin_20547'
       Pins(4)=EdGraphPin'EdGraphPin_20548'
       NodePosX=-800
       NodePosY=592
       NodeGuid=B09AB2554B74D8338D20E4A5F12C29E3
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2558"
       Begin Object Class=EdGraphPin Name="EdGraphPin_20552"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20551"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20550"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_20549"
       End Object
       Begin Object Name="EdGraphPin_20552"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2972.EdGraphPin_21458'
       End Object
       Begin Object Name="EdGraphPin_20551"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_19575'
       End Object
       Begin Object Name="EdGraphPin_20550"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2557.EdGraphPin_20548'
       End Object
       Begin Object Name="EdGraphPin_20549"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_20549'
       Pins(1)=EdGraphPin'EdGraphPin_20550'
       Pins(2)=EdGraphPin'EdGraphPin_20551'
       Pins(3)=EdGraphPin'EdGraphPin_20552'
       NodePosX=-480
       NodePosY=592
       NodeGuid=757F9D204FC3DCA0DA5A5D87EE928A50
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2972"
       Begin Object Class=EdGraphPin Name="EdGraphPin_21460"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21459"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21458"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21457"
       End Object
       Begin Object Name="EdGraphPin_21460"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2252.EdGraphPin_19744'
       End Object
       Begin Object Name="EdGraphPin_21459"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2184.EdGraphPin_19666'
       End Object
       Begin Object Name="EdGraphPin_21458"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2558.EdGraphPin_20552'
       End Object
       Begin Object Name="EdGraphPin_21457"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_21457'
       Pins(1)=EdGraphPin'EdGraphPin_21458'
       Pins(2)=EdGraphPin'EdGraphPin_21459'
       Pins(3)=EdGraphPin'EdGraphPin_21460'
       NodePosX=816
       NodePosY=624
       NodeGuid=DDD0B805498C321A07636FBD2C0063A4
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_3015"
       Begin Object Class=EdGraphPin Name="EdGraphPin_21604"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21603"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21602"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21601"
       End Object
       Begin Object Name="EdGraphPin_21604"
          PinName="ReturnValue"
          PinToolTip="Return Value\nFloat"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_3055.EdGraphPin_21678'
       End Object
       Begin Object Name="EdGraphPin_21603"
          PinName="B"
          PinToolTip="B\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="2"
          AutogeneratedDefaultValue="1.000000"
       End Object
       Begin Object Name="EdGraphPin_21602"
          PinName="A"
          PinToolTip="A\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_19576'
       End Object
       Begin Object Name="EdGraphPin_21601"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="Divide_FloatFloat")
       Pins(0)=EdGraphPin'EdGraphPin_21601'
       Pins(1)=EdGraphPin'EdGraphPin_21602'
       Pins(2)=EdGraphPin'EdGraphPin_21603'
       Pins(3)=EdGraphPin'EdGraphPin_21604'
       NodePosX=-320
       NodePosY=-80
       NodeGuid=207D074A4E0D2CE4B646EEA38E73A566
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_3055"
       Begin Object Class=EdGraphPin Name="EdGraphPin_21679"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21678"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21677"
       End Object
       Begin Object Name="EdGraphPin_21679"
          PinName="ReturnValue"
          PinToolTip="Return Value\nFloat"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_3094.EdGraphPin_21747'
       End Object
       Begin Object Name="EdGraphPin_21678"
          PinName="A"
          PinToolTip="A\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_3015.EdGraphPin_21604'
       End Object
       Begin Object Name="EdGraphPin_21677"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="DegCos")
       Pins(0)=EdGraphPin'EdGraphPin_21677'
       Pins(1)=EdGraphPin'EdGraphPin_21678'
       Pins(2)=EdGraphPin'EdGraphPin_21679'
       NodePosX=-176
       NodePosY=-80
       NodeGuid=F4556695418C8BCEAB0B65B9EF2C912A
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_3094"
       Begin Object Class=EdGraphPin Name="EdGraphPin_21748"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21747"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21746"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_21745"
       End Object
       Begin Object Name="EdGraphPin_21748"
          PinName="ReturnValue"
          PinToolTip="Return Value\nFloat"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2252.EdGraphPin_19745'
       End Object
       Begin Object Name="EdGraphPin_21747"
          PinName="B"
          PinToolTip="B\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_3055.EdGraphPin_21679'
       End Object
       Begin Object Name="EdGraphPin_21746"
          PinName="A"
          PinToolTip="A\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_19580'
       End Object
       Begin Object Name="EdGraphPin_21745"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="Divide_FloatFloat")
       Pins(0)=EdGraphPin'EdGraphPin_21745'
       Pins(1)=EdGraphPin'EdGraphPin_21746'
       Pins(2)=EdGraphPin'EdGraphPin_21747'
       Pins(3)=EdGraphPin'EdGraphPin_21748'
       NodePosX=-16
       NodePosY=-16
       NodeGuid=0C5AE6ED47854D5476F669B1B9089AD7
    End Object
    
  • artyom17artyom17 Posts: 319 Oculus Staff
    As to the issue with VR Preview. I've fixed in my code and in github (https://github.com/Oculus-VR/UnrealEngine/tree/4.8). See commit https://github.com/Oculus-VR/UnrealEngi ... a602959ba7

    Basically, what is necessary to do is to move a couple lines in the Engine\Plugins\Runtime\OculusRift\Source\OculusRift\Private\HeadMountedDisplayCommon.cpp file, method bool FHeadMountedDisplay::OnStartGameFrame():
    bool FHeadMountedDisplay::OnStartGameFrame()
        {
        	check(IsInGameThread());
        
        	if (!GWorld || !GWorld->IsGameWorld())
        	{
        		// ignore all non-game worlds
        		return false;
        	}
        
        	Frame.Reset();             // MOVE THESE LINES HERE
        	Flags.bFrameStarted = true;// MOVE THESE LINES HERE
    

    I'll notify Epic guys to integrate this fix into 4.8 and main UE.
  • artyom17artyom17 Posts: 319 Oculus Staff
    Just FYI: I've published answers with workarounds on issues #2 and #4 (component following the camera and camera following platform rotation) in original topics on AnswerHub.

    https://answers.unrealengine.com/questi ... oesnt.html

    https://answers.unrealengine.com/questions/197367/vr-rotate-players-view-on-rotating-platform.html#answer-250845
  • opampopamp Posts: 326
    Hiro Protagonist
    artyom17 wrote:
    As to the issue with VR Preview. I've fixed in my code and in github (https://github.com/Oculus-VR/UnrealEngine/tree/4.8). See commit https://github.com/Oculus-VR/UnrealEngi ... a602959ba7

    Basically, what is necessary to do is to move a couple lines in the Engine\Plugins\Runtime\OculusRift\Source\OculusRift\Private\HeadMountedDisplayCommon.cpp file, method bool FHeadMountedDisplay::OnStartGameFrame():
    bool FHeadMountedDisplay::OnStartGameFrame()
        {
        	check(IsInGameThread());
        
        	if (!GWorld || !GWorld->IsGameWorld())
        	{
        		// ignore all non-game worlds
        		return false;
        	}
        
        	Frame.Reset();             // MOVE THESE LINES HERE
        	Flags.bFrameStarted = true;// MOVE THESE LINES HERE
    

    I'll notify Epic guys to integrate this fix into 4.8 and main UE.

    This commit kinda fixes this bug as well https://answers.unrealengine.com/questions/246763/bug-changing-screenpercentage-with-certain-mirror.html.

    The screen still powers off but it at least it powers back on again after a second.
    DK2. Phenom 2 x4 4.2GHz,Asrock Extreme 3 970,8GB DDR3 1600, R9 270x 1180/1400.
  • spyrospyro Posts: 337
    Art3mis
    I am just - gobsmacked. THIS is what I call support! In a few hours you basically solved more than half of all my problems at once!

    JeremiahJohnson.gif

    If anyone is interested, this are the two functions which I really needed. Thanks to Artyom I could just pack them in a function library (modified them slightly so that they return the whole world transform of camera/tracker).

    Get world transform of HMD tracker:

    IDBMPWp.png

    Code:
    Begin Object Class=K2Node_FunctionEntry Name="K2Node_FunctionEntry_3785"
       Begin Object Class=EdGraphPin Name="EdGraphPin_22653"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22654"
       End Object
       Begin Object Name="EdGraphPin_22653"
          PinName="then"
          Direction=EGPD_Output
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22659'
       End Object
       Begin Object Name="EdGraphPin_22654"
          PinName="__WorldContext"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          bHidden=True
       End Object
       ExtraFlags=469901312
       MetaData=(ToolTip="Returns position tracker camera transform in world-space")
       SignatureName="getHmdTrackerWorldTransform"
       bIsEditable=True
       Pins(0)=EdGraphPin'EdGraphPin_22653'
       Pins(1)=EdGraphPin'EdGraphPin_22654'
       NodePosX=1600
       NodePosY=256
       NodeGuid=28BFBF8A4D07CEF5ECCA6A83A9743E2C
    End Object
    Begin Object Class=K2Node_FunctionResult Name="K2Node_FunctionResult_1"
       Begin Object Class=EdGraphPin Name="EdGraphPin_22659"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22660"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22666"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22667"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22668"
       End Object
       Begin Object Name="EdGraphPin_22659"
          PinName="execute"
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_FunctionEntry_3785.EdGraphPin_22653'
       End Object
       Begin Object Name="EdGraphPin_22660"
          PinName="transform"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Transform')
          SubPins(0)=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22666'
          SubPins(1)=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22667'
          SubPins(2)=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22668'
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_22666"
          PinName="transform_Location"
          PinFriendlyName="Transform Location"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_47354'
          ParentPin=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22660'
       End Object
       Begin Object Name="EdGraphPin_22667"
          PinName="transform_Rotation"
          PinFriendlyName="Transform Rotation"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_18567.EdGraphPin_47431'
          ParentPin=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22660'
       End Object
       Begin Object Name="EdGraphPin_22668"
          PinName="transform_Scale"
          PinFriendlyName="Transform Scale"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="1,1,1"
          AutogeneratedDefaultValue="1,1,1"
          ParentPin=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22660'
       End Object
       bIsEditable=True
       Pins(0)=EdGraphPin'EdGraphPin_22659'
       Pins(1)=EdGraphPin'EdGraphPin_22660'
       Pins(2)=EdGraphPin'EdGraphPin_22666'
       Pins(3)=EdGraphPin'EdGraphPin_22667'
       Pins(4)=EdGraphPin'EdGraphPin_22668'
       NodePosX=1872
       NodePosY=480
       NodeGuid=3F1448F54206D9F7F20118A63FB9655C
       CustomProperties UserDefinedPin Name="transform" IsArray=0 IsReference=0 Category=struct SubCategoryObject=/Script/CoreUObject.Transform 
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2155"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47318"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47319"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47320"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47321"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47322"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47323"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47324"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47325"
       End Object
       Begin Object Name="EdGraphPin_47318"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47319"
          PinName="CameraOrigin"
          PinToolTip="Camera Origin\nVector \n\n(out) Origin, in world-space, of the tracking camera"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_47388'
       End Object
       Begin Object Name="EdGraphPin_47320"
          PinName="CameraRotation"
          PinToolTip="Camera Rotation\nRotator \n\n(out) Rotation, in world-space, of the tracking camera"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2558.EdGraphPin_47455'
       End Object
       Begin Object Name="EdGraphPin_47321"
          PinName="HFOV"
          PinToolTip="HFOV\nFloat\n\n(out) Field-of-view, horizontal, in degrees, of the valid tracking zone of the camera"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47322"
          PinName="VFOV"
          PinToolTip="VFOV\nFloat\n\n(out) Field-of-view, vertical, in degrees, of the valid tracking zone of the camera"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47323"
          PinName="CameraDistance"
          PinToolTip="Camera Distance\nFloat\n\n(out) Nominal distance to camera, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47324"
          PinName="NearPlane"
          PinToolTip="Near Plane\nFloat\n\n(out) Near plane distance of the tracking volume, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47325"
          PinName="FarPlane"
          PinToolTip="Far Plane\nFloat\n\n(out) Far plane distance of the tracking volume, in world-space"
          Direction=EGPD_Output
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetPositionalTrackingCameraParameters")
       Pins(0)=EdGraphPin'EdGraphPin_47318'
       Pins(1)=EdGraphPin'EdGraphPin_47319'
       Pins(2)=EdGraphPin'EdGraphPin_47320'
       Pins(3)=EdGraphPin'EdGraphPin_47321'
       Pins(4)=EdGraphPin'EdGraphPin_47322'
       Pins(5)=EdGraphPin'EdGraphPin_47323'
       Pins(6)=EdGraphPin'EdGraphPin_47324'
       Pins(7)=EdGraphPin'EdGraphPin_47325'
       NodePosX=464
       NodePosY=48
       NodeGuid=1FAA3EF84BC6DE4AA0F451A12244DB8C
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_15170"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47342"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47343"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47344"
       End Object
       Begin Object Name="EdGraphPin_47342"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47343"
          PinName="DeviceRotation"
          PinToolTip="Device Rotation\nRotator \n\n(out) The device\'s current rotation"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15174.EdGraphPin_47400'
       End Object
       Begin Object Name="EdGraphPin_47344"
          PinName="DevicePosition"
          PinToolTip="Device Position\nVector \n\n(out) The device\'s current position, in its own tracking space"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetOrientationAndPosition")
       Pins(0)=EdGraphPin'EdGraphPin_47342'
       Pins(1)=EdGraphPin'EdGraphPin_47343'
       Pins(2)=EdGraphPin'EdGraphPin_47344'
       NodePosX=400
       NodePosY=336
       NodeGuid=D24B18334423E6E0262547AEE8F031A5
    End Object
    Begin Object Class=K2Node_CommutativeAssociativeBinaryOperator Name="K2Node_CommutativeAssociativeBinaryOperator_19"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47351"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47352"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47353"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47354"
       End Object
       Begin Object Name="EdGraphPin_47351"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47352"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_47390'
       End Object
       Begin Object Name="EdGraphPin_47353"
          PinName="B"
          PinToolTip="B\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15173.EdGraphPin_47382'
       End Object
       Begin Object Name="EdGraphPin_47354"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22666'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="Add_VectorVector")
       Pins(0)=EdGraphPin'EdGraphPin_47351'
       Pins(1)=EdGraphPin'EdGraphPin_47352'
       Pins(2)=EdGraphPin'EdGraphPin_47353'
       Pins(3)=EdGraphPin'EdGraphPin_47354'
       NodePosX=1712
       NodePosY=624
       NodeGuid=3DD7FFB94120DFC3075E4C9172E630EE
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_15171"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47363"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47364"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47365"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47366"
       End Object
       Begin Object Name="EdGraphPin_47363"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nGameplay Statics Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameplayStatics')
          DefaultObject=Default__GameplayStatics
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47364"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_6727.EdGraphPin_47422'
       End Object
       Begin Object Name="EdGraphPin_47365"
          PinName="PlayerIndex"
          PinToolTip="Player Index\nInteger"
          PinType=(PinCategory="int")
          DefaultValue="0"
          AutogeneratedDefaultValue="0"
       End Object
       Begin Object Name="EdGraphPin_47366"
          PinName="ReturnValue"
          PinToolTip="Return Value\nPlayer Camera Manager Reference"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15172.EdGraphPin_47375'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_15173.EdGraphPin_47381'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.GameplayStatics',MemberName="GetPlayerCameraManager")
       Pins(0)=EdGraphPin'EdGraphPin_47363'
       Pins(1)=EdGraphPin'EdGraphPin_47364'
       Pins(2)=EdGraphPin'EdGraphPin_47365'
       Pins(3)=EdGraphPin'EdGraphPin_47366'
       NodePosX=272
       NodePosY=496
       NodeGuid=C178DC6F4861BD1249EA9688D0D01E7E
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_15172"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47375"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47376"
       End Object
       Begin Object Name="EdGraphPin_47375"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15171.EdGraphPin_47366'
       End Object
       Begin Object Name="EdGraphPin_47376"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator \n\nReturns camera\'s current rotation."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15175.EdGraphPin_47410'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraRotation")
       Pins(0)=EdGraphPin'EdGraphPin_47375'
       Pins(1)=EdGraphPin'EdGraphPin_47376'
       NodePosX=576
       NodePosY=496
       NodeGuid=0759B78B41019AB8FE67FDBD6494CB26
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_15173"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47381"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47382"
       End Object
       Begin Object Name="EdGraphPin_47381"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15171.EdGraphPin_47366'
       End Object
       Begin Object Name="EdGraphPin_47382"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector \n\nReturns camera\'s current location."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_47353'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraLocation")
       Pins(0)=EdGraphPin'EdGraphPin_47381'
       Pins(1)=EdGraphPin'EdGraphPin_47382'
       NodePosX=576
       NodePosY=592
       NodeGuid=0798B10942F0C0AEF7492594740A692F
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2202"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47387"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47388"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47389"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47390"
       End Object
       Begin Object Name="EdGraphPin_47387"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47388"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_47319'
       End Object
       Begin Object Name="EdGraphPin_47389"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15175.EdGraphPin_47411'
       End Object
       Begin Object Name="EdGraphPin_47390"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CommutativeAssociativeBinaryOperator_19.EdGraphPin_47352'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_47387'
       Pins(1)=EdGraphPin'EdGraphPin_47388'
       Pins(2)=EdGraphPin'EdGraphPin_47389'
       Pins(3)=EdGraphPin'EdGraphPin_47390'
       NodePosX=1376
       NodePosY=320
       NodeGuid=10F8492044BE1EDB93180CB03123DCC4
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_15174"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47399"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47400"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47401"
       End Object
       Begin Object Name="EdGraphPin_47399"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47400"
          PinName="A"
          PinToolTip="A\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15170.EdGraphPin_47343'
       End Object
       Begin Object Name="EdGraphPin_47401"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15175.EdGraphPin_47409'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="NegateRotator")
       Pins(0)=EdGraphPin'EdGraphPin_47399'
       Pins(1)=EdGraphPin'EdGraphPin_47400'
       Pins(2)=EdGraphPin'EdGraphPin_47401'
       NodePosX=640
       NodePosY=336
       NodeGuid=B7A6C54B4EA5D9A3FB7FDE8CCB975F91
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_15175"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47408"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47409"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47410"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47411"
       End Object
       Begin Object Name="EdGraphPin_47408"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47409"
          PinName="A"
          PinToolTip="A\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15174.EdGraphPin_47401'
       End Object
       Begin Object Name="EdGraphPin_47410"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15172.EdGraphPin_47376'
       End Object
       Begin Object Name="EdGraphPin_47411"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2202.EdGraphPin_47389'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_2972.EdGraphPin_47467'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="ComposeRotators")
       Pins(0)=EdGraphPin'EdGraphPin_47408'
       Pins(1)=EdGraphPin'EdGraphPin_47409'
       Pins(2)=EdGraphPin'EdGraphPin_47410'
       Pins(3)=EdGraphPin'EdGraphPin_47411'
       NodePosX=848
       NodePosY=336
       NodeGuid=B49A48584B7CAD547922629A13FE4F8F
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_6727"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47420"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47421"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47422"
       End Object
       Begin Object Name="EdGraphPin_47420"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nGameplay Statics Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameplayStatics')
          DefaultObject=Default__GameplayStatics
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47421"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
       End Object
       Begin Object Name="EdGraphPin_47422"
          PinName="ReturnValue"
          PinToolTip="Return Value\nGame Mode Reference"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameMode')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15171.EdGraphPin_47364'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.GameplayStatics',MemberName="GetGameMode")
       Pins(0)=EdGraphPin'EdGraphPin_47420'
       Pins(1)=EdGraphPin'EdGraphPin_47421'
       Pins(2)=EdGraphPin'EdGraphPin_47422'
       NodePosX=272
       NodePosY=608
       NodeGuid=402BE78044DA1EC44F21479741D432C7
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_18567"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47429"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47430"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47431"
       End Object
       Begin Object Name="EdGraphPin_47429"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47430"
          PinName="InVec"
          PinToolTip="In Vec\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2972.EdGraphPin_47468'
       End Object
       Begin Object Name="EdGraphPin_47431"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_FunctionResult_1.EdGraphPin_22667'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="Conv_VectorToRotator")
       Pins(0)=EdGraphPin'EdGraphPin_47429'
       Pins(1)=EdGraphPin'EdGraphPin_47430'
       Pins(2)=EdGraphPin'EdGraphPin_47431'
       NodePosX=1520
       NodePosY=528
       NodeComment="Forward vector --> Rotation"
       bCommentBubbleVisible=True
       NodeGuid=CB87ECB04E9E3E00F01C39B39B6D2683
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2557"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47438"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47439"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47440"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47441"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47442"
       End Object
       Begin Object Name="EdGraphPin_47438"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47439"
          PinName="X"
          PinToolTip="X\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="-1"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47440"
          PinName="Y"
          PinToolTip="Y\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47441"
          PinName="Z"
          PinToolTip="Z\nFloat"
          PinType=(PinCategory="float")
          DefaultValue="0.0"
          AutogeneratedDefaultValue="0.0"
       End Object
       Begin Object Name="EdGraphPin_47442"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2558.EdGraphPin_47454'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="MakeVector")
       Pins(0)=EdGraphPin'EdGraphPin_47438'
       Pins(1)=EdGraphPin'EdGraphPin_47439'
       Pins(2)=EdGraphPin'EdGraphPin_47440'
       Pins(3)=EdGraphPin'EdGraphPin_47441'
       Pins(4)=EdGraphPin'EdGraphPin_47442'
       NodePosX=816
       NodePosY=-48
       NodeGuid=CC1E48B5465B2BC9284CE596B2BBA3D0
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2558"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47453"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47454"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47455"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47456"
       End Object
       Begin Object Name="EdGraphPin_47453"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47454"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2557.EdGraphPin_47442'
       End Object
       Begin Object Name="EdGraphPin_47455"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2155.EdGraphPin_47320'
       End Object
       Begin Object Name="EdGraphPin_47456"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2972.EdGraphPin_47466'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_47453'
       Pins(1)=EdGraphPin'EdGraphPin_47454'
       Pins(2)=EdGraphPin'EdGraphPin_47455'
       Pins(3)=EdGraphPin'EdGraphPin_47456'
       NodePosX=1072
       NodePosY=48
       NodeGuid=F790EF7D4F6928FA1EBE5E89EE2523B9
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_2972"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47465"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47466"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47467"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47468"
       End Object
       Begin Object Name="EdGraphPin_47465"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47466"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_2558.EdGraphPin_47456'
       End Object
       Begin Object Name="EdGraphPin_47467"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_15175.EdGraphPin_47411'
       End Object
       Begin Object Name="EdGraphPin_47468"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_18567.EdGraphPin_47430'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="GreaterGreater_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_47465'
       Pins(1)=EdGraphPin'EdGraphPin_47466'
       Pins(2)=EdGraphPin'EdGraphPin_47467'
       Pins(3)=EdGraphPin'EdGraphPin_47468'
       NodePosX=1312
       NodePosY=528
       NodeComment="Forward vector"
       bCommentBubbleVisible=True
       NodeGuid=E14BA08A45EEFC99CFF437B03368781C
    End Object
    


    Get world-transform of HMD (or player-camera as a fallback):

    tWIuqjL.png
    Begin Object Class=K2Node_FunctionEntry Name="K2Node_FunctionEntry_3786"
       Begin Object Class=EdGraphPin Name="EdGraphPin_22699"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22700"
       End Object
       Begin Object Name="EdGraphPin_22699"
          PinName="then"
          Direction=EGPD_Output
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22679'
       End Object
       Begin Object Name="EdGraphPin_22700"
          PinName="__WorldContext"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          bHidden=True
       End Object
       ExtraFlags=469901312
       MetaData=(ToolTip="Returns current HMD transform in world-space (uses playerCameraManager as fallback)")
       SignatureName="getHmdOrCameraWorldTransform"
       bIsEditable=True
       Pins(0)=EdGraphPin'EdGraphPin_22699'
       Pins(1)=EdGraphPin'EdGraphPin_22700'
       NodePosX=896
       NodePosY=64
       NodeGuid=CCED74EA4A7EB879BABE57937748D531
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_6468"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47477"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47478"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47479"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47480"
       End Object
       Begin Object Name="EdGraphPin_47477"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nGameplay Statics Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameplayStatics')
          DefaultObject=Default__GameplayStatics
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47478"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10781.EdGraphPin_47524'
       End Object
       Begin Object Name="EdGraphPin_47479"
          PinName="PlayerIndex"
          PinToolTip="Player Index\nInteger"
          PinType=(PinCategory="int")
          DefaultValue="0"
          AutogeneratedDefaultValue="0"
       End Object
       Begin Object Name="EdGraphPin_47480"
          PinName="ReturnValue"
          PinToolTip="Return Value\nPlayer Camera Manager Reference"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10937.EdGraphPin_47531'
          LinkedTo(1)=EdGraphPin'K2Node_CallFunction_23524.EdGraphPin_47537'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.GameplayStatics',MemberName="GetPlayerCameraManager")
       Pins(0)=EdGraphPin'EdGraphPin_47477'
       Pins(1)=EdGraphPin'EdGraphPin_47478'
       Pins(2)=EdGraphPin'EdGraphPin_47479'
       Pins(3)=EdGraphPin'EdGraphPin_47480'
       NodePosX=224
       NodePosY=112
       NodeGuid=A43BE0464EEBC3B7F20CE994C1E4ABBD
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_10776"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47489"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47490"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47491"
       End Object
       Begin Object Name="EdGraphPin_47489"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nHead Mounted Display Function Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary')
          DefaultObject=Default__HeadMountedDisplayFunctionLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47490"
          PinName="DeviceRotation"
          PinToolTip="Device Rotation\nRotator \n\n(out) The device\'s current rotation"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10777.EdGraphPin_47500'
       End Object
       Begin Object Name="EdGraphPin_47491"
          PinName="DevicePosition"
          PinToolTip="Device Position\nVector \n\n(out) The device\'s current position, in its own tracking space"
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10777.EdGraphPin_47499'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.HeadMountedDisplayFunctionLibrary',MemberName="GetOrientationAndPosition")
       Pins(0)=EdGraphPin'EdGraphPin_47489'
       Pins(1)=EdGraphPin'EdGraphPin_47490'
       Pins(2)=EdGraphPin'EdGraphPin_47491'
       NodePosX=432
       NodePosY=304
       NodeGuid=3EC773794739B3A20EA5CA9F365174AD
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_10777"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47498"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47499"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47500"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47501"
       End Object
       Begin Object Name="EdGraphPin_47498"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47499"
          PinName="A"
          PinToolTip="A\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10776.EdGraphPin_47491'
       End Object
       Begin Object Name="EdGraphPin_47500"
          PinName="B"
          PinToolTip="B\nRotator "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10776.EdGraphPin_47490'
       End Object
       Begin Object Name="EdGraphPin_47501"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10778.EdGraphPin_47512'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="LessLess_VectorRotator")
       Pins(0)=EdGraphPin'EdGraphPin_47498'
       Pins(1)=EdGraphPin'EdGraphPin_47499'
       Pins(2)=EdGraphPin'EdGraphPin_47500'
       Pins(3)=EdGraphPin'EdGraphPin_47501'
       NodePosX=688
       NodePosY=304
       NodeGuid=037529454CAD9875E2D575A7D5B3BE1C
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_10778"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47510"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47511"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47512"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47513"
       End Object
       Begin Object Name="EdGraphPin_47510"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nKismet Math Library Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.KismetMathLibrary')
          DefaultObject=Default__KismetMathLibrary
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47511"
          PinName="T"
          PinToolTip="T\nTransform  (by ref)"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Transform',bIsReference=True,bIsConst=True)
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10937.EdGraphPin_47532'
          bDefaultValueIsIgnored=True
       End Object
       Begin Object Name="EdGraphPin_47512"
          PinName="Location"
          PinToolTip="Location\nVector "
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10777.EdGraphPin_47501'
       End Object
       Begin Object Name="EdGraphPin_47513"
          PinName="ReturnValue"
          PinToolTip="Return Value\nVector "
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22686'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetMathLibrary',MemberName="TransformLocation")
       Pins(0)=EdGraphPin'EdGraphPin_47510'
       Pins(1)=EdGraphPin'EdGraphPin_47511'
       Pins(2)=EdGraphPin'EdGraphPin_47512'
       Pins(3)=EdGraphPin'EdGraphPin_47513'
       NodePosX=912
       NodePosY=272
       NodeGuid=EEA9296B4A640C8B8436C590105D6D3F
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_10781"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47522"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47523"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47524"
       End Object
       Begin Object Name="EdGraphPin_47522"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nGameplay Statics Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameplayStatics')
          DefaultObject=Default__GameplayStatics
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_47523"
          PinName="WorldContextObject"
          PinToolTip="World Context Object\nObject Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/CoreUObject.Object')
       End Object
       Begin Object Name="EdGraphPin_47524"
          PinName="ReturnValue"
          PinToolTip="Return Value\nGame Mode Reference"
          Direction=EGPD_Output
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.GameMode')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_6468.EdGraphPin_47478'
       End Object
       bIsPureFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.GameplayStatics',MemberName="GetGameMode")
       Pins(0)=EdGraphPin'EdGraphPin_47522'
       Pins(1)=EdGraphPin'EdGraphPin_47523'
       Pins(2)=EdGraphPin'EdGraphPin_47524'
       NodePosX=-64
       NodePosY=112
       NodeGuid=7523C64D46F1859C31229EB39749C476
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_10937"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47531"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47532"
       End Object
       Begin Object Name="EdGraphPin_47531"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nActor Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.Actor')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_6468.EdGraphPin_47480'
       End Object
       Begin Object Name="EdGraphPin_47532"
          PinName="ReturnValue"
          PinToolTip="Return Value\nTransform \n\nThe transform that transforms from actor space to world space."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Transform')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10778.EdGraphPin_47511'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.Actor',MemberName="GetTransform")
       Pins(0)=EdGraphPin'EdGraphPin_47531'
       Pins(1)=EdGraphPin'EdGraphPin_47532'
       NodePosX=528
       NodePosY=64
       NodeGuid=D5C692234449A9BB1450D5AE4125A168
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_23524"
       Begin Object Class=EdGraphPin Name="EdGraphPin_47537"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_47538"
       End Object
       Begin Object Name="EdGraphPin_47537"
          PinName="self"
          PinFriendlyName="Target"
          PinToolTip="Target\nPlayer Camera Manager Reference"
          PinType=(PinCategory="object",PinSubCategoryObject=Class'/Script/Engine.PlayerCameraManager')
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_6468.EdGraphPin_47480'
       End Object
       Begin Object Name="EdGraphPin_47538"
          PinName="ReturnValue"
          PinToolTip="Return Value\nRotator \n\nReturns camera\'s current rotation."
          Direction=EGPD_Output
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22687'
       End Object
       bIsPureFunc=True
       bIsConstFunc=True
       FunctionReference=(MemberParent=Class'/Script/Engine.PlayerCameraManager',MemberName="GetCameraRotation")
       Pins(0)=EdGraphPin'EdGraphPin_47537'
       Pins(1)=EdGraphPin'EdGraphPin_47538'
       NodePosX=528
       NodePosY=176
       NodeGuid=F2C814C242B1A8E3D68E11A2C85AFC89
    End Object
    Begin Object Class=K2Node_FunctionResult Name="K2Node_FunctionResult_2"
       Begin Object Class=EdGraphPin Name="EdGraphPin_22679"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22680"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22686"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22687"
       End Object
       Begin Object Class=EdGraphPin Name="EdGraphPin_22688"
       End Object
       Begin Object Name="EdGraphPin_22679"
          PinName="execute"
          PinType=(PinCategory="exec")
          LinkedTo(0)=EdGraphPin'K2Node_FunctionEntry_3786.EdGraphPin_22699'
       End Object
       Begin Object Name="EdGraphPin_22680"
          PinName="transform"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Transform')
          SubPins(0)=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22686'
          SubPins(1)=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22687'
          SubPins(2)=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22688'
          bHidden=True
       End Object
       Begin Object Name="EdGraphPin_22686"
          PinName="transform_Location"
          PinFriendlyName="Transform Location"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_10778.EdGraphPin_47513'
          ParentPin=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22680'
       End Object
       Begin Object Name="EdGraphPin_22687"
          PinName="transform_Rotation"
          PinFriendlyName="Transform Rotation"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Rotator')
          DefaultValue="0, 0, 0"
          AutogeneratedDefaultValue="0, 0, 0"
          LinkedTo(0)=EdGraphPin'K2Node_CallFunction_23524.EdGraphPin_47538'
          ParentPin=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22680'
       End Object
       Begin Object Name="EdGraphPin_22688"
          PinName="transform_Scale"
          PinFriendlyName="Transform Scale"
          PinType=(PinCategory="struct",PinSubCategoryObject=ScriptStruct'/Script/CoreUObject.Vector')
          DefaultValue="1,1,1"
          AutogeneratedDefaultValue="1,1,1"
          ParentPin=EdGraphPin'K2Node_FunctionResult_2.EdGraphPin_22680'
       End Object
       bIsEditable=True
       Pins(0)=EdGraphPin'EdGraphPin_22679'
       Pins(1)=EdGraphPin'EdGraphPin_22680'
       Pins(2)=EdGraphPin'EdGraphPin_22686'
       Pins(3)=EdGraphPin'EdGraphPin_22687'
       Pins(4)=EdGraphPin'EdGraphPin_22688'
       NodePosX=1264
       NodePosY=64
       NodeGuid=8DE7D8994D561C5E21E578A945F041D8
       CustomProperties UserDefinedPin Name="transform" IsArray=0 IsReference=0 Category=struct SubCategoryObject=/Script/CoreUObject.Transform 
    End Object
    

    Many, many thanks! This is what I needed!

    PS: 'hmddbg showcamera on' doesn't work on shipping build only in editor.
  • NibreNibre Posts: 51
    Hiro Protagonist
    Here are some other problems I've run into on 4.8.2 (I figured using this thread would be better than making a new one).

    Loss of IPD

    When using 'Enable Player Camera Manager Follow Hmd' to override the updating of Orientation and Position for the Camera Manager, if you un-check both, the Rift loses its depth (effectively giving it an IPD of 0). This does not happen if you have either (or both) of them checked, only when both are un-checked does it lose IPD.

    Screenspace Billboard Sizing

    Billboards that are set to be sized in screenspace, about double in screen size once in VR. See the picture below for an example. I was able to work around this by just halving the screenspace size when it detects VR, but I wanted to check if that functionality was intentional. Is there another way that I should be scaling it in VR, or is this something that could just be fixed on the back-end? It might even be a UE4 problem (but I don't have other HMDs to verify that with).
  • artyom17artyom17 Posts: 319 Oculus Staff
    1) Sounds like a bug. Will look at it.
    2) Never ever used the billboards, so everything is possible. Can you give me a test project with those, so I could have a look?
  • artyom17artyom17 Posts: 319 Oculus Staff
    Speaking of billboards: does the size of those depend on ScreenPercentage? Try 'hmd sp 100', 'hmd sp 120' -> is the size changing?
  • NibreNibre Posts: 51
    Hiro Protagonist
    Doesn't look like ScreenPercentage is affecting it at all for me. I'm having trouble getting an example project uploaded for you so you can mess around with it, so I'll just tell you real quick how to do it;
      - In an Actor, add the 'MaterialBillboard' component in the Viewport
      - On it, go under Sprite -> Elements -> '+' to add one
      - Select a material to display on it
      - Check 'Size Is in Screen Space'
      - Set base size X/Y to something smaller than 1 (like 0.25)

    Then when you view that Actor in-game, compare the fixed size it gets normally, to the size it gets in VR. For me, the VR one is twice as big.
  • artyom17artyom17 Posts: 319 Oculus Staff
    I'll try this as soon as I have time. We are in a crunch now, thus give me some time. The bug report is created, so the issue won't be lost (as well as the 'zero-ipd issue').
  • NibreNibre Posts: 51
    Hiro Protagonist
    No rush on the Billboard problem, I just wanted to point it out to help get it knocked out of the way. The IPD one would help a ton though. Finally got around to re-basing my project on the Oculus branch, to get that VR Preview fix—which was well worth the trouble.

    I'll try to bring up any other issues I run into (even if they're not super important), so we can get this plugin as good as it can be. Thanks for responding so quickly!
Sign In or Register to comment.