Announcement

Collapse
No announcement yet.

[Plugin] Myo

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    I use this plugin in 4.8 ,just by blueprint .It runs ok in editor But can not run after package . Crashed !Anyone can help me ?
    Fatal error!



    myo64.dll {0x000007fecac41ae0} + 0 bytes
    myoPluginTest.exe!DataCollector::Startup() {0x0000000141fef41e} + 138 bytes [d:\users\wujiankun\documents\unreal projects\myoplugintest\pl
    myoPluginTest.exe!FMyoPlugin::SetDelegate() {0x0000000141feef9a} + 0 bytes [d:\users\wujiankun\documents\unreal projects\myoplugintest\pl
    myoPluginTest.exe!MyoDelegate::MyoStartup() {0x0000000141ff707d} + 0 bytes [d:\users\wujiankun\documents\unreal projects\myoplugintest\pl
    myoPluginTest.exe!MyoDelegateBlueprint::MyoStartup() {0x0000000141ff8222} + 0 bytes [d:\users\wujiankun\documents\unreal projects\myoplugintest\pl
    myoPluginTest.exe!AWorldSettings::NotifyBeginPlay() {0x000000013fd027fd} + 0 bytes
    myoPluginTest.exe!AGameMode::HandleMatchHasStarted() {0x000000013fe68032} + 0 bytes
    myoPluginTest.exe!AGameMode::SetMatchState() {0x000000013fe83be0} + 0 bytes
    myoPluginTest.exe!UWorld::BeginPlay() {0x000000013fcdc0ce} + 0 bytes
    myoPluginTest.exe!UEngine::LoadMap() {0x000000013fbe70a8} + 0 bytes
    myoPluginTest.exe!UEngine::Browse() {0x000000013fb8cd6e} + 0 bytes
    myoPluginTest.exe!UGameInstance::StartGameInstance() {0x000000013fe87683} + 0 bytes
    myoPluginTest.exe!UGameEngine::Init() {0x000000013fe69b0b} + 0 bytes
    myoPluginTest.exe!FEngineLoop::Init() {0x000000013f280b15} + 0 bytes
    myoPluginTest.exe!GuardedMain() {0x000000013f27fed8} + 0 bytes
    myoPluginTest.exe!GuardedMainWrapper() {0x000000013f28020a} + 0 bytes
    myoPluginTest.exe!WinMain() {0x000000013f2930e9} + 0 bytes
    myoPluginTest.exe!__tmainCRTStartup() {0x0000000142300c95} + 21 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
    kernel32.dll {0x00000000774b59cd} + 0 bytes
    ntdll.dll {0x00000000775eb981} + 0 bytes
    ntdll.dll {0x00000000775eb981} + 0 bytes

    Leave a comment:


  • replied
    Myo plugin crash fix

    The current version of the Myo plugin (0.7.11) is still crashing the UE4 editor when Myo Connect is not running.

    I've traced this crash to an assert in a function being called after plugin startup.

    The actual error is:

    Code:
    "Assertion failed: O != NULL [File:C:\Users\<user>\Desktop\<project>\Plugins\MyoPlugin\Intermediate\Build\Win64\UE4Editor\Inc\MyoPlugin\MyoPlugin.generated."
    
    UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:355]
    UE4Editor_MyoPlugin!IMyoInterface::Execute_DeviceDisabled() [c:\users\<user>\desktop\<project>\plugins\myoplugin\intermediate\build\win64\ue4editor\inc\myoplugin\myoplugin.generated.cpp:196]
    UE4Editor_MyoPlugin!FMyoPlugin::SetDelegate() [c:\users\<user>\desktop\<project>\plugins\myoplugin\source\myoplugin\private\fmyoplugin.cpp:814]
    UE4Editor_MyoPlugin!MyoDelegate::MyoStartup() [c:\users\<user>\desktop\<project>\plugins\myoplugin\source\myoplugin\private\myodelegate.cpp:206]
    Here's what's happening...

    In MyoPlugin.generated.cpp:

    Code:
        
    void IMyoInterface::Execute_DeviceDisabled(UObject* O){
            check(O != NULL); // This is where the assert is failing.
    ...
    In FMyoPlugin.cpp:809:

    Code:
    void FMyoPlugin::SetDelegate(MyoDelegate* newDelegate){ 
        collector->myoDelegate = newDelegate;
        collector->Startup();
    
    
        //Emit disabled event if we didn't manage to create the hub
        if (!collector->Enabled){
            collector->myoDelegate->MyoDisabled(); // Here is where IMyoInterface::Execute_DeviceDisabled is ultimately getting called.
    ...
    The reason this assert is failing is that the pointer to the interface delegate (_interfaceDelegate) is null after startup/initialization of the plugin when Myo Connect is not running.

    In MyoDelegateBlueprint.cpp:211

    Code:
    void MyoDelegateBlueprint::SetInterfaceDelegate(UObject* newDelegate)
    {
        UE_LOG(LogClass, Log, TEXT("InterfaceDelegate passed: %s"), *newDelegate->GetName());
    
    
        //Use this format to support both blueprint and C++ form
        if (newDelegate->GetClass()->ImplementsInterface(UMyoInterface::StaticClass()))
        {
            _interfaceDelegate = newDelegate;
        }
        else
        {
            //Try casting as self
            if (ValidSelfPointer->GetClass()->ImplementsInterface(UMyoInterface::StaticClass()))
            {
                _interfaceDelegate = (UObject*)this;
            }
            else
            {
                //If you're crashing its probably because of this setting causing an assert failure
                _interfaceDelegate = NULL;
            }
    There is a function which can be used to check for this condition called MyoDelegateBlueprint::IsValidDelegate().


    In MyoDelegateBlueprint.cpp:187


    Code:
    bool MyoDelegateBlueprint::IsValidDelegate()
    {
        return (_interfaceDelegate != NULL);
    }
    So, IsValidDelegate() can be used to detect this condition and fix the crash.


    Originally posted by getnamo View Post
    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.


    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.
    Last edited by kzoink; 07-27-2015, 07:29 PM.

    Leave a comment:


  • replied
    Originally posted by SchmaR View Post
    UE 4.8.0
    Myo Connect 0.14.0

    Unfortuneally the editor crashes in the most cases without any additional informations. The last crash, which appeared right now, has some crash inforamtions.

    http://pastebin.com/RzrPvxRq

    It happens always when I try to compile a BP with MyoComponent attached. But after the crash the BP is compiled and can be used by "play in editor"
    It happens also in the most cases when I am moving Instances of the BP in editor.
    On rare occasions the Editor crashes when opening the MyoComponent containing BP.

    I hope this will help you to debug. Let me know if I can provide any further information.
    Thanks for this, I suspect this has something to do with how the Myo is being instantiated, which is why it crashes when you hit play or compile (it would re-make the myo component attached to your blueprint in preview). Still trying to find the time to debug this issue. Just letting you both know its still on my radar. If you're good with C++ have a look at https://github.com/getnamo/myo-ue4/b...FMyoPlugin.cpp to see if I'm doing anything funky that would cause this bug.

    Leave a comment:


  • replied
    With UE4.8.1 and myo connect 0.14, I have the same problem ! When i compile my blueprint, editor crash. It also crashes when I try to load a level if a pawn with myo component is present or instanciated.

    Leave a comment:


  • replied
    Hey there how are you going?
    Is there anything I could provide you to help fixing this bug?

    Leave a comment:


  • replied
    UE 4.8.0
    Myo Connect 0.14.0

    Unfortuneally the editor crashes in the most cases without any additional informations. The last crash, which appeared right now, has some crash inforamtions.

    http://pastebin.com/RzrPvxRq

    It happens always when I try to compile a BP with MyoComponent attached. But after the crash the BP is compiled and can be used by "play in editor"
    It happens also in the most cases when I am moving Instances of the BP in editor.
    On rare occasions the Editor crashes when opening the MyoComponent containing BP.

    I hope this will help you to debug. Let me know if I can provide any further information.

    Leave a comment:


  • replied
    Originally posted by SchmaR View Post
    Hey I installed the plugin as mentioned but the editor crashes every time I want to compile a BP which uses the Myo component. Do you have any suggestions?
    Originally posted by pajamajama View Post
    Thanks for wrapping this!

    Unfortunately I'm getting crashes that seem pretty inconsistent.
    But more importantly, here is the data I'm getting from EventOnOrientationData: Current value =(Pitch=-90.0, Yaw=-1.#IND00,Roll=1.#QNAN0)
    Event OnAccellerometerData seems to be working fine

    Any ideas?

    Thanks very much for your help!
    Looks like something has broken recently in the plugin, I'll have a look and see if I can't reproduce these crashes/erroneous data. Let me know what version of UE and MyoConnect you are using, it will help with the debug.

    Leave a comment:


  • replied
    Hey I installed the plugin as mentioned but the editor crashes every time I want to compile a BP which uses the Myo component. Do you have any suggestions?

    Leave a comment:


  • replied
    Thanks for wrapping this!

    Unfortunately I'm getting crashes that seem pretty inconsistent.
    But more importantly, here is the data I'm getting from EventOnOrientationData: Current value =(Pitch=-90.0, Yaw=-1.#IND00,Roll=1.#QNAN0)
    Event OnAccellerometerData seems to be working fine

    Any ideas?

    Thanks very much for your help!

    Leave a comment:


  • replied
    Update to 0.7.10
    -Updated SDK to Myo 0.9

    Update to 0.7.11
    -Updated to UE4.8

    grab the latest zip at the github repo for the updates.

    Leave a comment:


  • replied
    Originally posted by viky View Post
    Thank you so much Gentamo!

    I want to get Myo's pitch, roll and yaw but I couldn't do it yet.

    This is what I've done so

    [ATTACH=CONFIG]36094[/ATTACH]

    Sadly, it doesn't do anything.

    Thank you all
    I suspect you're missing a myo component. In order to use input mapping you need to have a Myo Component attached to something that is placed in the map. Typically the easiest place to add it is to your pawn/character. After you've done that your input mapping events will work. You should also attach the interface so that the plugin won't warn you about lack of interface bind (used for non-IM blueprint events)

    Here is a quick video on how to add myo support to the rolling template in under 60 seconds.



    Edit:

    Thalmic Labs have posted a page outlining the steps in a simple format, highly recommended for concise instructions:
    http://developerblog.myo.com/myo-unl...unreal-engine/
    Last edited by getnamo; 05-25-2015, 06:13 AM.

    Leave a comment:


  • replied
    Thank you so much Gentamo!

    I want to get Myo's pitch, roll and yaw but I couldn't do it yet.

    This is what I've done so

    Click image for larger version

Name:	Sin título.png
Views:	1
Size:	102.3 KB
ID:	1074934

    Sadly, it doesn't do anything.

    Thank you all

    Leave a comment:


  • replied
    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.
    Click image for larger version

Name:	Redm6ly.png
Views:	1
Size:	39.0 KB
ID:	1074745

    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.

    Leave a comment:


  • replied
    Originally posted by viky View Post
    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]
    ...
    Thaks so much for your help
    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.

    Originally posted by PM Snippet
    ...
    How do i tell the UE on wich arm i wear the Myo? It doesn't figure it out by itselfe. To be exact, i got two Myo's and of course I want to handle them seperated from each other.
    ...
    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.
    Last edited by getnamo; 04-19-2015, 09:05 AM.

    Leave a comment:


  • replied
    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

    Leave a comment:

Working...
X