[Plugin] Leap Motion - Event Driven

:confused:**Unreal UE4 version 4.15 and LEAP Motion Crashing when Running Standalone Game **

When I enable the LEAP Plugin and Add it to a UE4 4.15 Project and Launch it as a Standalone game,
I get this error.

I do not get an Error if I run it in Preview Mode. Only when I try to Build the Deployable Game.

I have tried this on multiple computers.
I have started with Blank Projects.
As Soon as I add a Leap Enabled Character, even the Default ones with the Plugin, I can no longer Build a Windows Deployable Standalone using the Launch Button in UE4 4.15

This works fine in UE4 4.14

Please help!
This is Killing my Project right now.

I have included the screen shot and all errors I can Find.

Ken

Screenshot 2017-02-21 20.39.17.png

Assertion failed: LocalExportIndex.IsNull() [File:D:\Build++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 1915]

0x000000004D287788
0x00000000A33F4000
0x0000000000000400
0x00000000062CAD70
0x00000000CFDD3568
0x0000000000000001
0x0000000000000001

LogPlayLevel: CommandUtils.Run: Run: C:\Kenneth\Documents\Unreal Projects\BMW5\Saved\StagedBuilds\WindowsNoEditor\BMW5\Binaries\Win64\BMW5.exe ā€¦/ā€¦/ā€¦/BMW5/BMW5.uproject /Game/AIUE_V02_003/Maps/AIUE_V02_003 -stdout -abslog=ā€œC:\Users\Kenneth\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_4.15\Client.logā€ -Messaging -nomcp -Wi
ndowed -CrashForUAT -SessionId=3E7D2C9F465D984DE1AD8BA0358D90E4 -SessionOwner=ā€œKennethā€ -SessionName=ā€œLaunch On Deviceā€
LogPlayLevel: BMW5:
OCULUS: Info: [HMDState] Requested to SetForegroundWindow(111326ll)
LogPlayLevel: BMW5: LogInit:Display: Running engine for game: BMW5
LogPlayLevel: BMW5: LogInit:Display: RandInit(-1899815146) SRandInit(-1899815146).LogStreaming:Display: Async Loading initialized: New Async IO: true, Event Driven Loader: true, Async Loading Thread: false
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: LogStreaming:Display: Async Loading initialized: New Async IO: true, Event Driven Loader: true, Async Loading Thread: falseLogBlueprintUserMessages:Warning: DEBUG: LocalNotification DefaultPlatformService NOT FOUND
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.00:652] 0]LogBlueprintUserMessages:Warning: DEBUG: LocalNotification DefaultPlatformService NOT FOUNDLogConsoleManager:Warning: Setting the console variable ā€˜r.VSyncā€™ with ā€˜SetByGameSettingā€™ was ignored as it is lower priority than the previous ā€˜SetByCodeā€™. Value remains ā€˜0ā€™
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.03:869] 0]LogConsoleManager:Warning: Setting the console variable ā€˜r.VSyncā€™ with ā€˜SetByGameSettingā€™ was ignored as it is lower priority than the previous ā€˜SetByCodeā€™. Value remains '0ā€™LogInit:Display: Game Engine Initialized.
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.03:879] 0]LogInit:Display: Game Engine Initialized.LogInit:Display: Starting Game.
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.03:880] 0]LogInit:Display: Starting Game.LogWindows:Warning: CreateProc failed (2) ā€¦/ā€¦/ā€¦/Engine/Binaries/Win64/CrashReportClient.exe ā€œC:/Kenneth/Documents/Unreal Projects/BMW5/Saved/StagedBuilds/WindowsNoEditor/BMW5/Saved/Logs/UE4CC-Windows-8697A35649235C9EED3F35AEFCF72A0A_0000ā€ -AppName=UE4-BMW5 -CrashGUID=UE4CC-Wi
ndows-8697A35649235C9EED3F35AEFCF72A0A_0000 -DebugSymbols=ā€¦\Engine\Intermediate\Symbols
LogPlayLevel: BMW5: LogWindows:Error: begin: stack for UAT
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Warning: CreateProc failed (2) ā€¦/ā€¦/ā€¦/Engine/Binaries/Win64/CrashReportClient.exe ā€œC:/Kenneth/Documents/Unreal Projects/BMW5/Saved/StagedBuilds/WindowsNoEditor/BMW5/Saved/Logs/UE4CC-Windows-8697A35649235C9EED3F35AEFCF72A0A_0000ā€ -AppName=UE4-BMW5 -CrashGUID=UE4CC-Windows-8697A35649235C9EED3F35AEF
CF72A0A_0000 -DebugSymbols=ā€¦\Engine\Intermediate\Symbols
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: begin: stack for UATLogWindows:Error: === Critical error: ===
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: === Critical error: ===LogWindows:Error:
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: LogWindows:Error: Assertion failed: LocalExportIndex.IsNull() [File:D:\Build++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 1915]
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: Assertion failed: LocalExportIndex.IsNull() [File:D:\Build++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 1915] LogWindows:Error:
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: LogWindows:Error:
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: LogWindows:Error:
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: LogWindows:Error: 0x000000004D287788
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x000000004D287788LogWindows:Error: 0x00000000A33F4000
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x00000000A33F4000LogWindows:Error: 0x0000000000000400
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x0000000000000400LogWindows:Error: 0x00000000062CAD70
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x00000000062CAD70LogWindows:Error: 0x00000000CFDD3568
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x00000000CFDD3568LogWindows:Error: 0x0000000000000001
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x0000000000000001LogWindows:Error: 0x0000000000000001
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: 0x0000000000000001LogWindows:Error:
LogPlayLevel: BMW5:
LogPlayLevel: BMW5: [2017.02.22-04.39.21:780] 0]LogWindows:Error: LogWindows:Error: end: stack for UAT
LogPlayLevel: BMW5:
LogPlayLevel: Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.AutomationException: Client exited with error code: 3
LogPlayLevel: at Project.RunStandaloneClient(List1 DeployContextList, String ClientLogFile, ERunOptions ClientRunFlags, String ClientApp, String ClientCmdLine, ProjectParams Params)
LogPlayLevel: at Project.RunInternal(ProjectParams Params, String ServerLogFile, String ClientLogFile)
LogPlayLevel: at Project.Run(ProjectParams Params)
LogPlayLevel: at BuildCookRun.DoBuildCookRun(ProjectParams Params)
LogPlayLevel: at BuildCookRun.ExecuteBuild()
LogPlayLevel: at AutomationTool.BuildCommand.Execute()
LogPlayLevel: at AutomationTool.Automation.Execute(List1 CommandsToExecute, CaselessDictionary1 Commands)
LogPlayLevel: at AutomationTool.Automation.Process(String] Arguments)
LogPlayLevel: at AutomationTool.Program.MainProc(Object Param)
LogPlayLevel: at AutomationTool.InternalUtils.RunSingleInstance(Func2 Main, Object Param)
LogPlayLevel: at AutomationTool.Program.Main()
LogPlayLevel: Program.Main: AutomationTool exiting with ExitCode=1 (Error_Unknown)
LogPlayLevel: Completed Launch On Stage: Run Task, Time: 28.035717
LogPlayLevel: BUILD FAILED
PackagingResults:Error: Error Launch failed! Unknown Error

Great plugin. In your Jenga tutorial part 2 at around the 10 minute mark you seem to have trouble getting the Pickup interface show up as an event. What did you do to finally make it work. Iā€™ve compiled like shown but I still donā€™t see the event listed.

Thanks,

Dave

SOLVED
I was having issues with getting the floating hands to work so I cut and pasted everything to the rigged character. I didnā€™t have the interface in the inherited list for that character. Now that the rigged character works, Iā€™d like to get it functioning on the floating hands.

Dave

Havenā€™t had a chance to try 4.15 yet, your problem appears to be related to https://.com/EpicGames/UnrealEngine/blob/4.15/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp#L1915 (epic access required) which is the first time Iā€™ve ever seen that line. Try posting on answerhub to get some epic response on this as there is currently no documentation on this.

Potential question: do you have both a project leap plugin as well as the engine plugin or only the engine plugin?

The only Item that I copied to the Project is the LeapRiggedEchoHands

Epic has Identified this as a Bug now.

I did find a work around.

If you uncheck the ā€œEvent Driven Loader Enabledā€ it will not crash, but it will throw an error about loading DamageTypes.

I do not need damage in my project, so I disabled damage in my project, restarted the UE4 Editor and it is now running without crashing.

This is not a final solution, but this allowed me to send out a runnable demo to my client.

Thanks for getting back to me.

Hello all,
Iā€™m new to UE4 and I need to use Leap Motion for a project.

My question is: Does the Leap Motion plugin work with Mac OS X El Capitan and with UE4.14?

Thanks in advance!

Again, Thanks for the great plugin!

I went through the tutorial and everything works with the rigged character. I started to recreate with the floating hands actor but no go. I tried to follow Cantoniceā€™s suggestion but Iā€™m missing something. I made a child of the LeapRiggedEchoHandsActor and inside that bp put the ā€˜pickupā€™ and ā€˜closest handā€™ functions, basically recreating all I did for the rigged character. Although I have collision, my print to screen functions arenā€™t working and I canā€™t pickup anything. Any suggestions?

Thanks
Dave

Unlike the rigged character, the floating hands character contains a child actor which actually has the tracked hands. You may need to subclass the child actor class and add your tests to that blueprint.

The latest mac support that is available is v2.3.1 (pre-orion tracking). The latest UE4 build that supports 2.3.1 with mac binaries is this branch (UE4.10): https://.com//leap-ue4/tree/UE4.10, hereā€™s a direct download link: https://.com//leap-ue4/archive/UE4.10.zip

You could recompile that branch for 4.14 and the plugin should work. While normally no code fixes are required in engine upgrades, there could be a fix or two depending on whether the engine has had breaking changes since 4.10.

Leap has been focusing on VR since 3.0 and macs donā€™t really support VR so thatā€™s the main reason why the last support for the platform is the V2 (desktop focused) tracking.

Hello there .

IĀ“m trying to create a project with Leap Motion in UE4 4.15.0, but right now it feels pretty unusable for me.

IĀ“m using a HTC Vive and I managed to have the hands working in my pawn but there is a big problem, there is a BIG latency between the HMD and the hands, I can see the hands delay and stutter respect the HMD, this does not happend in Unity.

Is there any solution to this?

Best regards and thanks for the answer.

After digging a bit, I think the latency can be due to Timewarpā€¦ is there an ETA to fix this? Because I donĀ“t understand that UE is being released with a non-functional plugin, and in itĀ“s current state Leap Motion is completely unusableā€¦

Cheers.

There is a modern rewrite in the pipeline which will have proper latency, but itā€™s not quite ready. Stay tuned :slight_smile:

That said you can disable late update in the meantime (this isnā€™t timewarp) by taking the plugin and moving floating hands from the camera parent and setting their position manually in the tick; it is completely opensource.

Right now what I did with the included plugin is to detach the hands from the camera and apply the position and orientation using the HMD ā€œGet Orientation and Positionā€ node, but with that there is still lag and a lot of vibration.

Will it be better with the version?

Cheers and thanks for the answer.

Hi , I insist :slight_smile:

Is there any difference if I do that with the version instead of the version included in 4.15?

Cheers and thanks!

version may have timewarp disabled so it should work. Just drag and drop the plugin into your project to replace the engine plugin for the project.

When I put th eplugin inside a Plugin folder inside my project I get an error when I open the project, it tells me ā€œPlugin missing or incompatibleā€, am I installing it correctly?

Cheers and thanks!

Ok, I tried overwriting the original location of the plugin with the version and I still receive the same messageā€¦ I donā€™t know how to install it, Iā€™m sorry for that, please help :slight_smile:

To compile the plugin to your engine version, you will need to add the plugin to your project and a C++ class to your project (e.g. https://docs.unrealengine.com/latest/INT/Programming/QuickStart/2/index.html) and then compile the project. The included plugin will then recompile with the project and you should be able to launch it.

That said the modern rewrite isnā€™t too far off if you can wait a bit :slight_smile:

I get errors:



Plugins\LeapMotion\Source\LeapMotion\LeapMotion.Build.cs(11,48): error CS0619: 'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)' estĆ” obsoleto: 'GetModuleFilename is deprecated, use the ModuleDirectory property on any ModuleRules instead to get a path to your module.'

\Plugins\LeapMotion\Source\LeapMotion\LeapMotion.Build.cs(11,48): error CS0619: 'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)' estĆ” obsoleto: 'GetModuleFilename is deprecated, use the ModuleDirectory property on any ModuleRules instead to get a path to your module.'
1>EXEC : error : UnrealBuildTool encountered an error while compiling source files


Sorry to be so stubborn with this, but I need to deliver my project by the end of the month, and Iā€™m way behind the time schedule :stuck_out_tongue:

Cheers and thanks!!!

ok, I did this and it compiles :slight_smile:

Cheers!

So I have an update.

I implemented it and it does exactly the same as the included plugin in 4.15, so no improvement, eagerly waiting to the new plugin, please hurry up!

Cheers and thanks!