Download

[Plugin] Myo

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

This will probably be fixed in the next myo update, its a fairly easy fix changing MyoIsValidId(myoId) to include a check if the delegate !NULL. Beyond that though, I want to find out why this crash is happening, and why I haven’t been able to replicate it yet. Might be a while for a proper fix, got a lot on my plate at the moment.

Right, 4.7 then… for me it happens with or without things connected to it, then again this is a project I’ve shepherded along for a couple of versions of unreal, and who knows what legacy **** the older nodes bring with them.
If I get some time I’ll re-create my broken blueprint, zip it up and send you a link, if it doesn’t break on your machine, then I have to talk to my sys-admins again and see what crazy registry or other restrictions I have on my box…

-Derek

Unreal 4.7 Update

Hi Everyone,

I’m a new user of Unreal Engine because of the recent price change and because I found this really cool Myo plugin. I am having some issues installing the plugin in Unreal Engine 4.7 and I was wondering if someone could help me update the library. I am running Myo Connect 0.9.1 and Myo Firmware Version 1.2.955. I did successfully get the plugin installed on Unreal Engine 4.6.1, but I was not able to receive Myo data. In addition, it crashed on me a few times. Hopefully a 4.7 could be a quick fix.

When I follow the installation instructions on the GitHub page, when I reach step 8 I receive the error dialoge

When I rebuild it always fails and responds:

Let me know if there is anything else I can do that might help update this. I’ve had some development experience, so if I end up diving deeper into Unreal and Myo I’d love to help out.

Thanks,
James

4.7 version should be available this weekend, I’ve been running behind for this release =/

Thanks a ton! I can’t wait to try it out.

Problem with C++

Heyho,

first of all thank you for all the work! i am having quite the trouble with the C++ classes. My current setup:

All this should work with newest version in the git repository. In fact it does work when i am following the installation steps and set the default input mappings to the myo events. With that i was able to control the ball in the rolling template just with the help of the myo armband what was actually quite nice. I tried to follow your instructions for the c++ version but i can’t find a way to compile a successfull project. Here is what i have done:

  1. creating a basic c++ template project.
  2. close the project and copy the myo stuff into it.
  3. fix the error DCrosby talked about (TArray to FMyoEmgData). The project now compiles without errors and i see some myo stuff in the console. looks good so far.
  4. start the debug game editor and see that the plugin is enabled. Go to Window -> Developer Tools -> Class Viewer and search for MyoPluginActor. Right click and Create new C++ class.
  5. Inside visual studio there is now a new class and the Plugins folder with the myo plugin inside.
  6. Compiling the project now gives the error: Fehler 1 error C1083: Datei (Include) kann nicht geöffnet werden: “MyoPluginActor.h”: No such file or directory d:\unreal projects\myotestproject\source\myotestproject\MyMyoActor.h 5 1 MyoTestProject
  7. I add “MyoPlugin” to the PublicDependencyModuleNames. The error is now gone but a new one appears. see screenshot: http://i.imgur.com/pLvidQGt.png
    here is another one with my header class shown: http://i.imgur.com/7cofJlUt.png

I also tried to extend my own actor with all the steps you have shown in the git documentation. But in the end I am getting the same error. I hope it is just a stupid error on my side.

Greetings
Tobias

UPDATE: i was able to fix the problem. i am now able to read the data in c++ with the help of the plugin. i just had to add the MyoDelegate.cpp into my source project and make some header adjustments. i found the solution while watching your youtube video about implementing the hydra plugin in c++ where you are doing just the same thing.

https://www.youtube.com/watch?v=zRURG4Zp0Zo&t=731

i hope this helps some other people.

Thanks for linking the solution. The C++ bind isn’t as clean as I would’ve liked it but unfortunately the plugin and the game code targets are different so you need the cpp. Note that when you build for package or shipping you will have to remove the duplicate file. Will hope to revisit this some day; if any of you UE C++ experts out there can simplify this, please advise :slight_smile:

Plugin update to 0.7.8
-updated binary for UE 4.7
-moved convenience content into the plugin, delete if you do not want to
use it and wish to save space.
-updated myo sdk bind to 0.8.1

Grab the latest release here.

Note that this is an early release to provide the convenience binaries, planning on adding joint prediction before 4.8 and maybe a rigged skeleton if the prediction works reliably enough!

Hello!
Thanks for the work, I am beginning to use this plugin with UE 4.7.4 and it crash when put the component folowing steps with the rolling template…

The message is:

MachineId:A6280501428EFC7AF9A98A8BAE0F36EB
EpicAccountId:44b3283f76a4470f878e0ab424c090f3

C++ EH exception - code e06d7363 (first/second chance not available)

KERNELBASE + 37901 bytes
msvcr120 + 388963 bytes
UE4Editor_MyoPlugin + 14140 bytes
UE4Editor_MyoPlugin + 20710 bytes
UE4Editor_MyoPlugin + 19322 bytes
UE4Editor_MyoPlugin + 45520 bytes
UE4Editor_MyoPlugin + 49927 bytes
UE4Editor_Engine!UActorComponent::ExecuteRegisterEvents() + 48 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\actorcomponent.cpp:945]
UE4Editor_Engine!UActorComponent::RegisterComponentWithWorld() + 942 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\actorcomponent.cpp:749]
UE4Editor_Engine!AActor::AddComponent() + 393 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\actorconstruction.cpp:702]
UE4Editor_Engine!AActor::execAddComponent() + 423 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\classes\gameframework\actor.h:70]
UE4Editor_CoreUObject!UFunction::Invoke() + 180 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\class.cpp:3713]
UE4Editor_CoreUObject!UObject::CallFunction() + 1112 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:395]
UE4Editor_CoreUObject!UObject::execLetObj() + 430 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1292]
UE4Editor_CoreUObject!UObject::ProcessInternal() + 1644 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:602]
UE4Editor_CoreUObject!UObject::CallFunction() + 2707 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:516]
UE4Editor_CoreUObject!UObject::ProcessInternal() + 1644 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:602]
UE4Editor_CoreUObject!UFunction::Invoke() + 180 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\class.cpp:3713]
UE4Editor_CoreUObject!UObject::ProcessEvent() + 3036 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:924]
UE4Editor_Engine!AActor::ProcessEvent() + 259 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\actor.cpp:529]
UE4Editor_Engine!AWorldSettings::NotifyBeginPlay() + 342 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\worldsettings.cpp:119]
UE4Editor_Engine!AGameMode::HandleMatchHasStarted() + 426 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\gamemode.cpp:602]
UE4Editor_Engine!AGameMode::SetMatchState() + 141 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\gamemode.cpp:711]
UE4Editor_Engine!AGameMode::StartMatch() + 83 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\gamemode.cpp:579]
UE4Editor_Engine!UGameInstance::StartPIEGameInstance() + 1545 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\gameinstance.cpp:218]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEGameInstance() + 8708 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\playlevel.cpp:2861]
UE4Editor_UnrealEd!UEditorEngine::PlayInEditor() + 7184 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\playlevel.cpp:2212]
UE4Editor_UnrealEd!UEditorEngine::StartQueuedPlayMapRequest() + 643 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\playlevel.cpp:974]
UE4Editor_UnrealEd!UEditorEngine::Tick() + 3604 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\editor.cpp:1226]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() + 22 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\unrealedengine.cpp:347]
UE4Editor!FEngineLoop::Tick() + 4179 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launchengineloop.cpp:2257]
UE4Editor!GuardedMain() + 1404 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Thaks so much for your help

Hey viky-

We would like to investigate and track the crash you reported. Could you make a post on the AnswerHub (http://answers.unrealengine.com/) with any information related to the crash such as the call stack you posted here as well as any log files from the crash and what you were doing when the crash happened.

Thanks

Doug

This may be related to the fact that the Myo SDK throws exceptions at start if you do not have Myo Connect running. It is something that I’m working to get around and should be fixed in the next release.

I recently answered a pm regarding how to check which arm you have, figured this should be posted here to be helpful for others looking for the same answer.

The myo can distinguish your arms after you’ve done the sync gesture. There are two methods used in the plugin to get your arm possession.

One, you can get the arm possession by dragging off the myo controller pointer you get from an event such as OnPair or OnPose.

For Example if you had a pose and you wanted it to only affect a particular arm you could do something like this

Two, if you want a reference to specific arms outside an event, you can get them by dragging off of the myo component and using any of the convenience functions

Remember that all the available functions/properties relevant to the myo are easily searched by dragging off of the Myo Controller or Myo Component and typing ‘myo’. This will limit your functions only to the ones relevant to the plugin. Hope this helps!

Edit: this section been added to the github documentation.

Update to 0.7.9
-Added a work around that fixes the UE editor crash if you do not have Myo Connect running when you begin play. This will allow for safe integration of myo with multiple other plugins.

Let me know if you still have crashes after this fix. This also means that if you do not see your plugin working you can confirm its because of Myo Connect failure by checking your logs

e.g.
Redm6ly.png

Simply relaunching myo connect and restarting your game will make it initialize correctly. Note that you can have the myo connect running but no hub connected in which case you will also not have myo control, but you should be able to hot plug the hub in that instance.