Download

[Plugin] Myo

I usually update all my plugins within a week of new UE version, if that is not fast enough, then by all means make compile fixes and help out by making a pull request with the fixes! UE4.6 made a mess of custom input mapping so it took a bit longer to find a workaround. Did most of the testing on a simpler plugin (Joystick) which is why it got pushed earlier. Glad you found it useful :slight_smile:

Your previous errors were due to using Myo 0.7 when 0.6 was the supported version. The plugin is now updated to UE4.6 and Myo 0.7.

Update to 0.7.4
-Contains compile fixes to sync code base to UE4.6. Note that warning
C4273 is suppressed due to 4.6 changes to Input Mapping.
-Syncs Myo SDK to Beta 7 (0.7)
-As per 0.7 Thumb to Pinky is now DoubleTap
-Added locking mechanism, this plugin defaults to none, but you can call
SetLockingPolicy on your MyoComponent to change this on say BeginPlay.
-As per 0.7 Added Lock/Unlock functions on MyoController class
-Arm Orientation space now persists throughout PIE sessions, will only
get lost when quitting app.

Let me know if any bugs crop up!

I’m sorry if I came off as entitled, I understand that Epic does some frustrating things between releases, and I greatly appreciate your efforts. If you ever want to set up a donation with paypal or put these up in the Unreal Marketplace, I’d gladly compensate you for your work. And in reality, I just wanted to know if you were aware of the changes and working on them yourself, or if the thread was dead (Has Happened to me), and I needed to look elsewhere for help / support.

I’m actually a bit disappointed that all the manufacturers that you support Hydra, Leap, and Myo don’t support their own plugins, yet they support Unity, which is pretty short sighted if you ask me… (but nobody asks :smiley: )…

And thank you again for all the time / effort to support the Unreal / VR Community.

-Derek

I’m looking through the new archive, and I see the date has been updated, but it seems the .uplugin file has the Engine version as 4.5 and the .dll states it needs to be re-compiled… was that so I could do my own compile, while you finish the release, or was that an oversight? I’m Verifying, I have the latest build of 4.6 just in case I got my side tangled up somehow…

Investigating a bit more, when I add the files all of a sudden Unreal Engine 4.6.0 Doesn’t recognize the project anymore, and asked me to convert in place, or copy to a new folder or ignore. I’ve always copied or converted in place if I had a perforce backup, this time I hit Ignore and it worked. Strange though that it’s asking this…

After that it seems to work :smiley:

I understand where you’re coming from, and thank you for the kind words :). I’m just trying to get VR input to be a bit more standardized and easier to use so that all those cool applications can be found. In that vein it doesn’t make sense to charge for input plugins, but I’m hoping to make a middleware ‘body input’ plugin in the future (which will also be open source), any additional testers are always welcome.

The version specified in the .uplugin file specifies the minimum engine version to my knowledge and shouldn’t have an impact if you are using a newer version.

If you’re using a vanilla version of the engine the pre-compiled plugin will work with that major version (e.g. 4.5 will work for 4.5.0 and 4.5.1 etc). If you’re compiling a custom version of the engine you may need to compile the plugin yourself (which is as simple as add code to project and hit compile). Do remember to delete your MyoPlugin (only the Plugins folder in general) before replacing it with the new version as some files may have been removed between versions.

Minor update to 0.7.5
-removes C4273 suppression by including SlateCore in build rules

Edit: My bad, you answered it in the previous post (it was about recompiling the engine)

I’m referencing the Docs,

I’m wondering if you can elaborate, on point 1.
So I have to have Visual Studio express to create an empty class, and then re-compile the project ? Or is there a way around this by putting the .dll in the proper folders, as the whole, can’t find Plugin .dll seems to still be an issue in 4.6.
Or is there a way to create an empty class in the editor based on nothing.

I have another bug in with epic, where I can’t “generateProjectFiles.bat” because of a fatal error. Hence me generating an empty class isn’t something I can do until I resolve the issue.

So the reason you need code is that without it, the plugin doesn’t get detected and will not be included in a packaged build. This is because all of your dependencies collapse into a monolithic .exe in a packaged build, as it currently stands this is an unavoidable step (though there are some hints that it may change come 4.7).

So step 1 with a bit more verbose instructions:

  1. Projects require code, if you are using a blueprint only project, add an empty class and compile your project module. You simply do File->Add Code to Project and it can be anything so I usually just pick None->Create Class and then it will ask you to open visual studio where you just hit compile (Build solution). If you haven’t added code before follow the unreal engine programming Quick Start guide. Essentially it boils down to downloading the free Visual Studio Community and changing a few small configs.

The rest of the steps should be clear enough.

Edit:
Updated github readme with the clarifications

Thanks !

I’ve resorted to compiling the source with my own laptop, where everything works, until epic resolves the generateProjectFiles issue…

I seem to be able to move 1 step forward and then get hit a wall again… I checked, I’m using 0.7.0 and I have the latest from you, and it works fine when I use it in editor. But when I try and play it in its own window or Build for Distribution, which I have to do to get Oculus to work, I get the following:

MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: [189/191] Link MyoTest-WmfMedia-Static.lib
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: -------- End Detailed Actions Stats -----------------------------------------------------------
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: D:\Users\amara_000\Documents\Unreal Projects\MyoTest\Plugins\MyoPlugin\Binaries\Win64\MyoTest-MyoPlugin-Static.lib
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Cumulative action seconds (8 processors): 0.00 building projects, 3326.44 compiling, 0.00 creating app bundles, 0.00 generating debug info, 1.28 linking, 0.00 other
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: UBT execution time: 878.96 seconds
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: Took 879.1203049s to run UnrealBuildTool.exe, ExitCode=2
MainFrameActions: Packaging (Windows (64-bit)): ErrorReporter.Error: ERROR: AutomationTool error: Command failed (Result:2): D:\Work\Unreal\UnrealEngine-release\Engine\Binaries\DotNET\UnrealBuildTool.exe MyoTest Win64 Development “D:\Users\amara_000\Documents\Unreal Projects\MyoTest\MyoTest.uproject”
MainFrameActions: Packaging (Windows (64-bit)): -noxge. See logfile for details: ‘UnrealBuildTool.txt’
MainFrameActions: Packaging (Windows (64-bit)): BuildCommand.Execute: ERROR: BUILD FAILED
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: AutomationTool terminated with exception:
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: Exception in AutomationTool: Command failed (Result:2): D:\Work\Unreal\UnrealEngine-release\Engine\Binaries\DotNET\UnrealBuildTool.exe MyoTest Win64 Development “D:\Users\amara_000\Documents\Unreal Projects\MyoTest\MyoTest.uproject”
MainFrameActions: Packaging (Windows (64-bit)): -noxge. See logfile for details: ‘UnrealBuildTool.txt’
MainFrameActions: Packaging (Windows (64-bit)): Stacktrace: at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\ProcessUtils.cs:line 792
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\UBTUtils.cs:line 33
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.UE4Build.BuildWithUBT(String ProjectName, String TargetName, UnrealTargetPlatform TargetPlatform, String Config, String UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\UE4Build.cs:line 321
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InForceNonUnity, Boolean InForceUnity) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\UE4Build.cs:line 1299 MainFrameActions: Packaging (Windows (64-bit)): at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Scripts\BuildProjectCommand.Automation.cs:line 114 MainFrameActions: Packaging (Windows (64-bit)): at BuildCookRun.DoBuildCookRun(ProjectParams Params) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 256 MainFrameActions: Packaging (Windows (64-bit)): at BuildCommand.Execute() in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\BuildCommand.cs:line 37 MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Automation.Execute(List1 CommandsToExecute, CaselessDictionary`1 Commands) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Automation.cs:line 371
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Automation.Process(String] CommandLine) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Automation.cs:line 343
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Program.MainProc(Object Param) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Program.cs:line 167
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.InternalUtils.RunSingleInstance(MainProc Main, Object Param) in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Utils.cs:line 649
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Program.Main() in d:\Work\Unreal\UnrealEngine-release\Engine\Source\Programs\AutomationTool\Program.cs:line 114
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: Command failed (Result:2): D:\Work\Unreal\UnrealEngine-release\Engine\Binaries\DotNET\UnrealBuildTool.exe MyoTest Win64 Development “D:\Users\amara_000\Documents\Unreal Projects\MyoTest\MyoTest.uproject” -noxge. See logfile for detai
MainFrameActions: Packaging (Windows (64-bit)): ls: ‘UnrealBuildTool.txt’
MainFrameActions: Packaging (Windows (64-bit)): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: AutomationTool exiting with ExitCode=2
MainFrameActions: Packaging (Windows (64-bit)): Domain_ProcessExit
MainFrameActions: Packaging (Windows (64-bit)): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Windows (64-bit)): AutomationToolLauncher exiting with ExitCode=2
MainFrameActions: Packaging (Windows (64-bit)): copying UAT log files…
MainFrameActions: Packaging (Windows (64-bit)): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
MainFrameActions: Packaging (Windows (64-bit)): BUILD FAILED
LogRenderer:Warning: Reallocating scene render targets to support 1200x904.

Which is strange since it builds the engine/project just fine in VS2013. And this is before I can even copy the .dll’s to the target folder. So I did what the instructions stated. Create an Empty Class, Modify the .ini file. But the last part eludes me due to not being able to compile the code for release.

I believe the error you got was from having Try/Catch blocks within the myo plugin (which UE compiler doesn’t support by default). patched update 0.7.6 with these fixes which will allow the packaging to work correctly again.

Do note that you can try oculus in development by choosing Play->Standalone. Never use launch, this is not supported until automatic copying is fixed by Epic.

If you want to use an older version of the plugin with this fix instead of 0.7.6, just change Startup() to comment out the try/catch block in FMyoPlugin.cpp

e.g.



			//try{
				hub = new myo::Hub("com.plugin.unrealengine4");
				UE_LOG(MyoPluginLog, Log, TEXT("Myo Hub Initialized."));
			//}
			//catch (const std::exception& e) {
				/*UE_LOG(MyoPluginLog, Error, TEXT("Myo did not initialize correctly, check if Myo Connect is running!"));
				UE_LOG(MyoPluginLog, Error, TEXT("Error: %s"), e.what());
				hub = NULL;*/
			//}

Update to 0.7.6
-Packaged file fix by removing try/catch block. No longer needed since
Myo Connect handles hot plugging of hub

Update to 0.7.7
-Myo SDK bind updated to beta 8
-Now supports raw streams see readme for documentation
-Added convenience content called Myo Utility BP Library, which has convenience functions for debug output.
-Updated documentation, check github readme

Example using the convenience content to debug output from raw streams:

You have to first enable the raw streams for your myo e.g. using the double tap pose

Then subscribing to the OnEmgData event with the optional content library function

Yields the following results in the rolling template while making the wave-out pose (with Debug Orientation shown and Debug Poses printed to log)

I went back and refined my experience in the game / application I’m trying to develop while someone at epic figured out what was wrong with the project building issues I had, now that we finally have that sorted I’m back to trying to compile Myo, and get the .DLL’s out so that I can create a package that I can install anywhere, as long as it has a Myo connected.
I also bought a Leap, and got that library to function with your tutorials. And I’m waiting for a Tobii Eye-X which they provide plugins for, which is nice to see from a hardware manufacturer…
So back to the myo, it refuses to compile on my machine, here are the errors, and what I’ve looked into. (I made sure I had the latest download from the top of the page, and I have Myo Connect 0.8.0 and teh firmware it installs when you install 0.8.0

Error 6 error C2664: ‘void MyoDelegate::MyoOnEmgData(int32,FMyoEmgData)’ : cannot convert argument 2 from ‘TArray<int32,FDefaultAllocator>’ to ‘FMyoEmgData’ E:\DD_Perforce\dc_MB_01\EGame\Plugins\MyoPlugin\Source\MyoPlugin\Private\FMyoPlugin.cpp 437 1 EGame

Error 7 error : Failed to produce item: E:\DD_Perforce\dc_MB_01\EGame\Plugins\MyoPlugin\Binaries\Win64\EGame-MyoPlugin-Static.lib E:\DD_Perforce\dc_MB_01\EGame\Intermediate\ProjectFiles\ERROR EGame

Error 8 error MSB3073: The command “E:\DD_Perforce\dc_MB_01\Unreal4.6\Engine\Build\BatchFiles\Build.bat EGame Win64 Development “E:\DD_Perforce\dc_MB_01\EGame\EGame.uproject”” exited with code -1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets 38 5 EGame

and in the Output:

E:\DD_Perforce\dc_MB_01\EGame\Plugins\MyoPlugin\Source\MyoPlugin\Private\FMyoPlugin.cpp(437): error C2664: ‘void MyoDelegate::MyoOnEmgData(int32,FMyoEmgData)’ : cannot convert argument 2 from ‘TArray<int32,FDefaultAllocator>’ to ‘FMyoEmgData’
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> -------- End Detailed Actions Stats -----------------------------------------------------------
1>ERROR : UBT error : Failed to produce item: E:\DD_Perforce\dc_MB_01\EGame\Plugins\MyoPlugin\Binaries\Win64\EGame-MyoPlugin-Static.lib
1> Cumulative action seconds (8 processors): 0.00 building projects, 6.06 compiling, 0.00 creating app bundles, 0.00 generating debug info, 0.00 linking, 0.00 other
1> UBT execution time: 16.94 seconds
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command “E:\DD_Perforce\dc_MB_01\Unreal4.6\Engine\Build\BatchFiles\Build.bat EGame Win64 Development “E:\DD_Perforce\dc_MB_01\EGame\EGame.uproject”” exited with code -1.

I tried to change the line:
TArray<int32> data;
to
FMyoEmgData data;
But that was too simplistic… any Ideas what I’m doing wrong ?

Edit:

Nevermind! For others following along, there’s a section of code commented out above the line that has the error, Source looks like this:

//Gather and organize
//There are 8 streams one for each plate
/*
FMyoEmgData data;
for (int i = 0; i < 8; i++) {
data.streams.Add(emg*);
}
*/

TArray<int32> data;
for (int i = 0; i < 8; i++) {
data.Add(emg*);
}

and needs to look like this:

//Gather and organize
//There are 8 streams one for each plate
FMyoEmgData data;
for (int i = 0; i < 8; i++) {
data.streams.Add(emg*);
}

	/*
	TArray&lt;int32&gt; data;		
	for (int i = 0; i &lt; 8; i++) {
		data.Add(emg*);
	}*/

So wap out the two commented blocks for eachother and mine started working.

Whoops, looks like I didn’t drag over the final code after compiling it in another folder. Reason for the comment code was that TArray as a blueprint value was giving me trouble so I wrapped it up into a custom structure. It’s not ideal (because it requires another level of indirection) but it compiles, and technically more future proof.

Good catch :slight_smile:

I have all my compiler issues worked out, or at least they’re telling me they succeeded in building the projects I have, but now I get Fatal Crashes…
I created a rolling blueprint game to test if it was anything in my project ported from 4.5.1 to 4.6.1 that was causing grief, but that wasn’t it. I also removed all myo references in the blueprint, and that didn’t help, only when I removed the Myo “Component” did it finally not crash.

So in my new RollingBall project, all I added was the Myo Component (Option1) and hit play, and here’s the crash:

MachineId:AE15053F41BFE34D2F2B78830D4D7C6C
EpicAccountId:

Unknown exception - code 00000001 (first/second chance not available)

Assertion failed: O != NULL [File:D:\Users\Admin\Documents\Unreal Projects\MyoPluginCode\Intermediate\Build\Win64\Inc\Plugins\MyoPlugin\MyoPlugin.generated.cpp] [Line: 310]

KERNELBASE + 37901 bytes
UE4Editor_Core + 3092349 bytes
UE4Editor_Core + 1597688 bytes
UE4Editor_Core + 1479058 bytes
UE4Editor_MyoPlugin + 65638 bytes
UE4Editor_MyoPlugin + 49057 bytes
UE4Editor_MyoPlugin + 37362 bytes
UE4Editor_MyoPlugin + 33724 bytes
UE4Editor_MyoPlugin + 30809 bytes
myo64 + 393614 bytes
myo64 + 373590 bytes
myo64 + 374048 bytes
myo64 + 373910 bytes
myo64 + 395020 bytes
UE4Editor_MyoPlugin + 18371 bytes
UE4Editor_MyoPlugin + 45362 bytes
UE4Editor_MyoPlugin + 49554 bytes
UE4Editor_Engine + 1299491 bytes
UE4Editor_Engine + 1446844 bytes
UE4Editor_Engine + 8851078 bytes
UE4Editor_Engine + 8881168 bytes
UE4Editor_Core + 713859 bytes
UE4Editor_Core + 714365 bytes
UE4Editor_Core + 842869 bytes
UE4Editor_Engine + 9095109 bytes
UE4Editor_Engine + 9009872 bytes
UE4Editor_Engine + 9020215 bytes
UE4Editor_Engine + 5593062 bytes
UE4Editor_Engine + 5622339 bytes
UE4Editor_UnrealEd + 1803906 bytes
UE4Editor_UnrealEd + 6686342 bytes
UE4Editor!FEngineLoop::Tick() + 3876 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launchengineloop.cpp:2214]
UE4Editor!GuardedMain() + 479 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\launch.cpp:131]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.6\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Any Idea what that could be ? (I’ll keep digging myself)

pm your logs from this crash (Saved/Logs) and post a small snippet of \MyoPlugin.generated.cpp] [Line: 310].

Some of these files
“UE4Editor_MyoPlugin + 65638 bytes
UE4Editor_MyoPlugin + 49057 bytes
UE4Editor_MyoPlugin + 37362 bytes
UE4Editor_MyoPlugin + 33724 bytes
UE4Editor_MyoPlugin + 30809 bytes”
should be giving you code lines if you’re compiling from source (.pdb links), try running it in debug mode then when it crashes you will get dumped to the line that causes it.

The vanilla version works as intended so I’m wondering what the issue could be here.

I run in Development Editor, but I’ll switch to debug editor, run it and see where it hangs…
Tomorrow :smiley:

-Derek

Log output:

The thread 0x37d0 has exited with code 0 (0x0).
[2015.01.15-23.34.11:688] 0]LogRenderer:Warning: Reallocating scene render targets to support 1136x1024.
The thread 0x30c4 has exited with code 0 (0x0).
[2015.01.15-23.34.12:772] 9]LogAssetRegistry: Asset discovery search completed in 10.4833 seconds
‘UE4Editor-Win64-Debug.exe’ (Win32): Loaded ‘E:\DD_Perforce\dc_MB_01\Unreal4.6\Engine\Binaries\Win64\Android\UE4Editor-AndroidDeviceDetection-Win64-Debug.dll’. Symbols loaded.
The thread 0x3180 has exited with code 0 (0x0).
[2015.01.15-23.34.58:864][154]LogEditorViewport: Clicking on Actor (LMB): StaticMeshActor (EditorCube11)
[2015.01.15-23.34.59:222][154]LogPropertyNode:Warning: UI Min (0.001) >= UI Max () for Ranged Numeric
[2015.01.15-23.34.59:521][154]LogSlateStyle:Warning: Unable to find Color ‘PropertyEditor.AssetName.ColorAndOpacity’.
The thread 0x37ec has exited with code 0 (0x0).
The thread 0x223c has exited with code 0 (0x0).
The thread 0x2bc4 has exited with code 0 (0x0).
The thread 0x35c0 has exited with code 0 (0x0).
The thread 0x32e4 has exited with code 0 (0x0).
The thread 0x3530 has exited with code 0 (0x0).
The thread 0x2ebc has exited with code 0 (0x0).
The thread 0x359c has exited with code 0 (0x0).
The thread 0x3020 has exited with code 0 (0x0).
The thread 0x2bf8 has exited with code 0 (0x0).
[2015.01.15-23.35.17:426][450]LogContentBrowser:Verbose: The content browser source was changed by the sources view to ‘/Game/Blueprints’
The thread 0x1428 has exited with code 0 (0x0).
The thread 0x3258 has exited with code 0 (0x0).
The thread 0x2be0 has exited with code 0 (0x0).
The thread 0x3560 has exited with code 0 (0x0).
The thread 0x3344 has exited with code 0 (0x0).
The thread 0x29d4 has exited with code 0 (0x0).
The thread 0x349c has exited with code 0 (0x0).
The thread 0x2370 has exited with code 0 (0x0).
The thread 0x860 has exited with code 0 (0x0).
The thread 0x1f84 has exited with code 0 (0x0).
The thread 0x2d9c has exited with code 0 (0x0).
The thread 0x3738 has exited with code 0 (0x0).
The thread 0x358c has exited with code 0 (0x0).
The thread 0x331c has exited with code 0 (0x0).
The thread 0x3224 has exited with code 0 (0x0).
The thread 0x2f20 has exited with code 0 (0x0).
The thread 0x3628 has exited with code 0 (0x0).
The thread 0x3648 has exited with code 0 (0x0).
The thread 0x31b4 has exited with code 0 (0x0).
The thread 0x330c has exited with code 0 (0x0).
The thread 0x2b8c has exited with code 0 (0x0).
The thread 0x14ac has exited with code 0 (0x0).
The thread 0x363c has exited with code 0 (0x0).
The thread 0x36c0 has exited with code 0 (0x0).
[2015.01.15-23.35.29:695][548]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_0
[2015.01.15-23.35.29:698][548]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.29:706][548]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.29:706][548]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.29:707][548]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.29:707][548]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
The thread 0x33e8 has exited with code 0 (0x0).
The thread 0x261c has exited with code 0 (0x0).
The thread 0x35dc has exited with code 0 (0x0).
The thread 0x310c has exited with code 0 (0x0).
[2015.01.15-23.35.29:779][548]MyoPluginLog: Myo Hub Shutdown.
[2015.01.15-23.35.29:781][548]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_0
[2015.01.15-23.35.29:781][548]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.29:787][548]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.29:788][548]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.29:788][548]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.29:789][548]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
The thread 0x313c has exited with code 0 (0x0).
The thread 0x352c has exited with code 0 (0x0).
The thread 0x3290 has exited with code 0 (0x0).
The thread 0x37a4 has exited with code 0 (0x0).
The thread 0x2f90 has exited with code 0 (0x0).
[2015.01.15-23.35.38:710][663]BlueprintLog: New page: Compile PhysicsBallBP
The thread 0x3178 has exited with code 0 (0x0).
The thread 0x339c has exited with code 0 (0x0).
The thread 0x33c8 has exited with code 0 (0x0).
The thread 0x2ad8 has exited with code 0 (0x0).
[2015.01.15-23.35.38:835][663]MyoPluginLog: Myo Hub Shutdown.
[2015.01.15-23.35.38:837][663]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_1
[2015.01.15-23.35.38:837][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.38:843][663]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.38:844][663]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.38:844][663]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.38:845][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.39:071][663]LogActorComponent: UnregisterComponent: (/Engine/Transient.MyoComponent_1) Not registered. Aborting.
The thread 0x232c has exited with code 0 (0x0).
The thread 0x3238 has exited with code 0 (0x0).
The thread 0x24a4 has exited with code 0 (0x0).
The thread 0x1f90 has exited with code 0 (0x0).
[2015.01.15-23.35.39:236][663]MyoPluginLog: Myo Hub Shutdown.
[2015.01.15-23.35.39:237][663]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_1
[2015.01.15-23.35.39:237][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.39:243][663]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.39:243][663]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.39:244][663]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.39:244][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
The thread 0x34b4 has exited with code 0 (0x0).
The thread 0x31c8 has exited with code 0 (0x0).
The thread 0x32b8 has exited with code 0 (0x0).
The thread 0x1d88 has exited with code 0 (0x0).
[2015.01.15-23.35.39:250][663]MyoPluginLog: Myo Hub Shutdown.
[2015.01.15-23.35.39:252][663]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_1
[2015.01.15-23.35.39:253][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.39:258][663]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.39:258][663]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.39:259][663]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.39:259][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.39:261][663]BlueprintEditorCompileResults: Info [0131.08] Compile of PhysicsBallBP successful! [in 487 ms]
The thread 0x33d0 has exited with code 0 (0x0).
The thread 0x2e54 has exited with code 0 (0x0).
The thread 0x2eb8 has exited with code 0 (0x0).
The thread 0x31b0 has exited with code 0 (0x0).
[2015.01.15-23.35.39:311][663]MyoPluginLog: Myo Hub Shutdown.
[2015.01.15-23.35.39:313][663]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_1
[2015.01.15-23.35.39:314][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.39:319][663]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.39:320][663]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.39:321][663]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.39:321][663]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
The thread 0x36dc has exited with code 0 (0x0).
The thread 0x1840 has exited with code 0 (0x0).
The thread 0x36fc has exited with code 0 (0x0).
The thread 0xbf8 has exited with code 0 (0x0).
[2015.01.15-23.35.41:071][688]MyoPluginLog: Myo Hub Shutdown.
The thread 0x1d00 has exited with code 0 (0x0).
The thread 0x3260 has exited with code 0 (0x0).
[2015.01.15-23.35.43:145][719]BlueprintLog: New page: Pre-PIE auto-recompile
[2015.01.15-23.35.43:169][719]LogPlayLevel: [PIE] Compiling Tutorial_BP_MacroLib before PIE…
[2015.01.15-23.35.43:422][719]LogActorComponent: UnregisterComponent: (/Engine/Transient.MyoComponent_2) Not registered. Aborting.
[2015.01.15-23.35.43:486][719]LogPlayLevel: PIE: Blueprint regeneration took 341 ms (1 blueprints)
[2015.01.15-23.35.43:489][719]PIE: New page: PIE session: Example_Map (Jan 15, 2015, 7:35:43 AM)
[2015.01.15-23.35.43:582][719]LogPlayLevel: PIE: StaticDuplicateObject took: (0.091640s)
[2015.01.15-23.35.43:584][719]LogPlayLevel: PIE: World Init took: (0.001930s)
[2015.01.15-23.35.43:586][719]LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/Maps/Example_Map.Example_Map to /Game/Maps/UEDPIE_0_Example_Map.Example_Map (0.096047s)
The thread 0x2e98 has exited with code 0 (0x0).
The thread 0x375c has exited with code 0 (0x0).
[2015.01.15-23.35.43:794][719]LogWorld: Game class is ‘RollingGameMode_C’
[2015.01.15-23.35.43:801][719]LogAIModule: Creating AISystem for world Example_Map
[2015.01.15-23.35.43:817][719]LogWorld: Bringing World /Game/Maps/UEDPIE_0_Example_Map.Example_Map up for play (max tick rate 0) at 2015.01.15-15.35.43
[2015.01.15-23.35.43:820][719]LogWorld: Bringing up level for play took: 0.017262
[2015.01.15-23.35.43:824][719]LogClass: InterfaceDelegate passed: PhysicsBallBP_C_14
[2015.01.15-23.35.43:825][719]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.43:831][719]MyoPluginLog: Myo Hub Initialized.
[2015.01.15-23.35.43:832][719]MyoPluginLog: Myo Delegate Set (should only be called once per begin play or you have duplicates).
[2015.01.15-23.35.43:833][719]LogClass: InterfaceDelegate passed: Myo1
[2015.01.15-23.35.43:833][719]LogClass: MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?
[2015.01.15-23.35.43:837][719]PIE: Info Play in editor start time for /Game/Maps/UEDPIE_0_Example_Map 0.766
Assertion failed: O != NULL [File:E:\DD_Perforce\dc_MB_01\MyoTest\Intermediate\Build\Win64\Inc\Plugins\MyoPlugin\MyoPlugin.generated.cpp] [Line: 310]

UE4Editor-Win64-Debug.exe has triggered a breakpoint.

UE4Editor-Win64-Debug.exe has triggered a breakpoint.

[2015.01.15-23.35.47:655][719]LogWindows:Error: Windows GetLastError: The operation completed successfully. (0)
[2015.01.15-23.35.47:657][719]LogCrashTracker:

[2015.01.15-23.35.47:658][719]LogWindows: === Critical error: ===
Assertion failed: O != NULL [File:E:\DD_Perforce\dc_MB_01\MyoTest\Intermediate\Build\Win64\Inc\Plugins\MyoPlugin\MyoPlugin.generated.cpp] [Line: 310]

[2015.01.15-23.35.48:046][719]LogExit: Executing StaticShutdownAfterError
[2015.01.15-23.35.48:053][719]LogWindows: FPlatformMisc::RequestExit(1)
The thread 0x30f8 has exited with code 3 (0x3).
The thread 0x3268 has exited with code 3 (0x3).
The thread 0x26fc has exited with code 3 (0x3).
The thread 0x33b0 has exited with code 3 (0x3).
The thread 0x20cc has exited with code 3 (0x3).
The thread 0x358 has exited with code 3 (0x3).
The thread 0x3164 has exited with code 3 (0x3).
The thread 0x248c has exited with code 3 (0x3).
The thread 0x133c has exited with code 3 (0x3).
The thread 0x3048 has exited with code 3 (0x3).
The thread 0x2a5c has exited with code 3 (0x3).
The thread 0x2554 has exited with code 3 (0x3).
The thread 0x1ce4 has exited with code 3 (0x3).
The thread 0x1d40 has exited with code 3 (0x3).
The thread 0x34dc has exited with code 3 (0x3).
The thread 0x37ac has exited with code 3 (0x3).
The thread 0x2790 has exited with code 3 (0x3).
The thread 0x3570 has exited with code 3 (0x3).
The thread 0x1654 has exited with code 3 (0x3).
The thread 0x37e8 has exited with code 3 (0x3).
The thread 0x29c8 has exited with code 3 (0x3).
The thread 0x3294 has exited with code 3 (0x3).
The thread 0x111c has exited with code 3 (0x3).
The thread 0x3744 has exited with code 3 (0x3).
The thread 0x1e54 has exited with code 3 (0x3).
The thread 0x34c8 has exited with code 3 (0x3).
The thread 0x3058 has exited with code 3 (0x3).
The thread 0x34d0 has exited with code 3 (0x3).
The thread 0x13e4 has exited with code 3 (0x3).
The thread 0x35b0 has exited with code 3 (0x3).
The thread 0x2490 has exited with code 3 (0x3).
The thread 0x3280 has exited with code 3 (0x3).
The thread 0x488 has exited with code 3 (0x3).
The thread 0x2950 has exited with code 3 (0x3).
The thread 0x1474 has exited with code 3 (0x3).
The thread 0x302c has exited with code 3 (0x3).
The thread 0x27e4 has exited with code 3 (0x3).
The thread 0x3310 has exited with code 3 (0x3).
The thread 0x3300 has exited with code 3 (0x3).
The thread 0x3128 has exited with code 3 (0x3).
The thread 0x1b04 has exited with code 3 (0x3).
The thread 0x36b8 has exited with code 3 (0x3).
The thread 0x2a74 has exited with code 3 (0x3).
The thread 0x20f0 has exited with code 3 (0x3).
The thread 0x37f8 has exited with code 3 (0x3).
The thread 0x3350 has exited with code 3 (0x3).
The thread 0x35bc has exited with code 3 (0x3).
The thread 0x247c has exited with code 3 (0x3).
The thread 0x3638 has exited with code 3 (0x3).
The thread 0x3054 has exited with code 3 (0x3).
The thread 0x3544 has exited with code 3 (0x3).
The thread 0x3660 has exited with code 3 (0x3).
The thread 0x291c has exited with code 3 (0x3).
The thread 0x3470 has exited with code 3 (0x3).
The program ‘[13508] UE4Editor-Win64-Debug.exe’ has exited with code 3 (0x3).

In the following the line: check(O != NULL); is line 310

void IMyoInterface::OnOrientationData(class UMyoController* myo, FRotator orientation)
{
check(0 && “Do not directly call Event functions in Interfaces. Call Execute_OnOrientationData instead.”);
}
void IMyoInterface::Execute_OnPair(UObject* O, class UMyoController* myo)
{
check(O != NULL);
check(O->GetClass()->ImplementsInterface(UMyoInterface::StaticClass()));
MyoInterface_eventOnPair_Parms Parms;
UFunction* const Func = O->FindFunction(MYOPLUGIN_OnPair);
if (Func)
{
Parms.myo=myo;
O->ProcessEvent(Func, &Parms);
}
}

Just noticed the Myo log contains Hydra referenced :smiley: whoops!

It looks like you play/stop a few times and then the assertion calls, anything is particular that you are doing when the assertion happens?

From the log it seems the assertion crash comes from the interface delegate (being the O in the code) disappearing/getting Null referenced. I could guard this by doing a null check before calling, but I wonder why this gets called, again any details on the actions you are performing shortly before this happens would help. Also how is the Myo Component + interface set up? Do you have one component only and is the physics ball set as the interface received (e.g. having added Myo Interface to that BP, the *MyoDelegateBlueprint Warning: Delegate is NOT set, did your class implement HydraInterface?

  • alludes to this maybe not being set properly)?

I use a Clean Rolling Ball Template, open up the RollingBall Blueprint, add a Myo component, and hit play. That’s it…
I wanted to test the VERY basics before I got more fancy, with initializing and running the blueprint, and connecting actions.

Re: Hydra, And I did see that and thought it was odd, but this is literally a virgin project with 1 empty “do nothing” class to generate a solution, and start compiling.
I have a Hydra, it sits behind my chair on a shelf, but hasn’t been plugged in since I got the Original DK1, and Portal 2 working. it hasn’t been a priority.

Did you need anything further from me, or are you busy, and will look into this when you get a second ?

-Derek