microdee / UE4-SpaceMouse

Control Viewport cameras with 3DConnexion SpaceMice, using HID directly.
MIT License
156 stars 23 forks source link

Paying it forward: I have worked out the build issue with 5.4, built and lightly tested in 5.4 for compatibility #104

Open aknittel1 opened 4 months ago

aknittel1 commented 4 months ago

Add the last #include to SmEditorManager.cpp. It will build and seems to work. I haven't tested it thoroughly.

/ Copyright 2018-2021 David Morasz All Rights Reserved. // This source code is under MIT License https://github.com/microdee/UE4-SpaceMouse/blob/master/LICENSE

include "SmEditorManager.h"

include "SmViewportOverlay.h"

include "CameraController.h"

include "CommonBehaviors.h"

include "SpaceMouse.h"

include "SmInputDevice.h"

include "Editor.h"

include "SEditorViewport.h"

include "EditorViewportClient.h"

include "MovementState.h"

include "HAL/PlatformApplicationMisc.h"

include "SmUeVersion.h"

include "Framework/Application/SlateApplication.h"

include "Engine/Hitresult.h"

This was the build error:

[49/56] Compile [x64] SmEditorManager.cpp D:\Data\Downloads\Browser\SpaceMouse-Win64-1.2.4.5.2.0-Source\SpaceMouse540Prebuild\HostProject\Plugins\SpaceMouse\Source\SpaceMouse\Private\SmEditorManager.cpp(169): error C2079: 'hit' uses undefined struct 'FHitResult' D:\Data\Downloads\Browser\SpaceMouse-Win64-1.2.4.5.2.0-Source\SpaceMouse540Prebuild\HostProject\Plugins\SpaceMouse\Source\SpaceMouse\Private\SmEditorManager.cpp(178): error C2664: 'bool UWorld::LineTraceSingleByChannel(FHitResult &,const FVector &,const FVector &,ECollisionChannel,const FCollisionQueryParams &,const FCollisionResponseParams &) const': cannot convert argument 1 from 'int' to 'FHitResult &' C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\World.h(1848): note: see declaration of 'UWorld::LineTraceSingleByChannel' D:\Data\Downloads\Browser\SpaceMouse-Win64-1.2.4.5.2.0-Source\SpaceMouse540Prebuild\HostProject\Plugins\SpaceMouse\Source\SpaceMouse\Private\SmEditorManager.cpp(178): note: while trying to match the argument list '(int, FVector, FVector, ECollisionChannel, FCollisionQueryParams)' [50/56] Compile [x64] SpaceMouseConfig.cpp

microdee commented 4 months ago

Thanks for the suggestions, yeah I haven't tested with 5.4 yet, it has been released only yesterday. I'll make a release of this plugin soon, probably with this included then.

anttin2020 commented 2 months ago

@microdee, please make this excellent plugin to work in UE 5.4, the UE 3DConnexion plugin is only partially usable as it cannot work in runtime. Your plugin is also much more feature-rich.

But is runuat broken in UE 5.4? I wanted to try to use the runuat.bat to recompile this for UE 5.4 but here's what I got:

S:\UE\UE_5.4\Engine\Build\BatchFiles>RunUAT.bat BuildPlugin-plugin="s:\\ue\\ue_5.3\\engine\\plugins\\spacemouse\\spacemouse.uplugin"-package="s:\\newplugin" -TargetPlatforms=Win64
Running AutomationTool...
Using bundled DotNet SDK version: 6.0.302
Starting AutomationTool...
Parsing command line: BuildPlugin-plugin=s:\\ue\\ue_5.3\\engine\\plugins\\spacemouse\\spacemouse.uplugin-package=s:\\newplugin -TargetPlatforms=Win64
ERROR: Unknown parameter -TargetPlatforms=Win64 in the command line that does not belong to any command.
BUILD FAILED

Has someone managed to rebuild this or any plugin for UE 5.4? Is it broken and if not, what is the correct command line now? I also tried to use -platform instead of -TargetPlatforms but same error. I haven't found any documentation for this, only old forum posts that of course give the old method.

Anyone, please help :) Thank you!

anttin2020 commented 2 months ago

Anyone?

Cascho1975 commented 2 months ago

@microdee Please go on for supporting, thank you!

anttin2020 commented 2 months ago

Add the last #include to SmEditorManager.cpp. It will build and seems to work. I haven't tested it thoroughly.

@aknittel1, while we are waiting for official release, could you please tell how did you manage to compile it in 5.4? I cannot get runuat.bat to work at all in 5.4 (please see my post above) so how did you do the build?

I am not familiar with c++ so it is probably something simple but I haven't found any documentation for 5.4 for runuat.bat so it should work the same as before but it does not.

Thank you very much in advance :)

aknittel1 commented 2 months ago

I'll give you my RUNUAT.BAT tomorrow and see what folders it references and their content. Or i can just send the build output. But shouldn't microdee have official build by now?

Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: AnttiN @.> Sent: Thursday, July 4, 2024 3:13:26 AM To: microdee/UE4-SpaceMouse @.> Cc: aknittel1 @.>; Mention @.> Subject: Re: [microdee/UE4-SpaceMouse] Paying it forward: I have worked out the build issue with 5.4, built and lightly tested in 5.4 for compatibility (Issue #104)

Add the last #include to SmEditorManager.cpp. It will build and seems to work. I haven't tested it thoroughly.

@aknittel1https://github.com/aknittel1, while we are waiting for official release, could you please tell how did you manage to compile it in 5.4? I cannot get runuat.bat to work at all in 5.4 (please see my post above) so how did you do the build?

Thank you very much in advance :)

— Reply to this email directly, view it on GitHubhttps://github.com/microdee/UE4-SpaceMouse/issues/104#issuecomment-2208274934, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFIQNYDH3HQHX52E7II4PX3ZKTYZNAVCNFSM6AAAAABGZJP6MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBYGI3TIOJTGQ. You are receiving this because you were mentioned.Message ID: @.***>

anttin2020 commented 2 months ago

@aknittel1 , thank you for fast response :)

I'll give you my RUNUAT.BAT tomorrow and see what folders it references and their content.

That would be great, thank you very much! And if you have done some other configuration changes or anything that is needed, please include that info as well. Also is VS 2019 still ok or do I need VS 2022? I have both installed but have never done anything with them except run the runuat :) But if the runuat.bat itself has not changed, then just your command line with it should be enough. And in source code no other changes are needed than to add the #include "Engine/Hitresult.h" to SmEditorManager.cpp?

Or i can just send the build output.

That would be nice too but please also give me the runuat usage as I will need it on next UE update :)

But shouldn't microdee have official build by now?

Indeed should but the 'latest' is still Sep 7 2023...

The problem is that I don't want to switch to 5.4 until I know I can use my SpacePilot Pro (yep, not spacemouse but works fine) in playtime (for realtime-recorded fly-throughs of a scene etc. using Take Recorder). That's why I cannot wait that long to get the official version. It was the same on 5.2 -> 5.3 but then I managed to compile it myself but as said, those instructions don't work anymore.

That's why your help is VERY important, thank you very much again!

aknittel1 commented 2 months ago

Think the best course of action is for me to give you the output of the build first. I can give you a shared folder to download from.

Going through our dev configurations will take time.

Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: AnttiN @.> Sent: Thursday, July 4, 2024 2:50:27 PM To: microdee/UE4-SpaceMouse @.> Cc: aknittel1 @.>; Mention @.> Subject: Re: [microdee/UE4-SpaceMouse] Paying it forward: I have worked out the build issue with 5.4, built and lightly tested in 5.4 for compatibility (Issue #104)

Thank you for fast response :)

I'll give you my RUNUAT.BAT tomorrow and see what folders it references and their content. That would be great, thank you very much! And if you have done some other configuration changes or anything that is needed, please include that info as well. Also is VS 2019 still ok or do I need VS 2022? I have both installed but have never done anything with them except run the runuat :) But if the runuat.bat itself has not changed, then just your command line with it should be enough. And in source code no other changes are needed than to add the #include "Engine/Hitresult.h" to SmEditorManager.cpp? Or i can just send the build output. That would be nice too but please also give me the runuat usage as I will need it on next UE update :) But shouldn't microdee have official build by now? Indeed should but the 'latest' is still Sep 7 2023...

The problem is that I don't want to switch to 5.4 until I know I can use my SpacePilot Pro (yep, not spacemouse but works fine) in playtime (for realtime-recorded fly-throughs of a scene etc. using Take Recorder), that's why I cannot wait that long to get the official version. It was the same on 5.2 -> 5.3 but then I managed to compile it myself but as said, those instructions don't work anymore.

That's why your help is VERY important, thank you very much again!

— Reply to this email directly, view it on GitHubhttps://github.com/microdee/UE4-SpaceMouse/issues/104#issuecomment-2209455935, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFIQNYGHQZDDUW6YU6CYRDLZKWKPHAVCNFSM6AAAAABGZJP6MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBZGQ2TKOJTGU. You are receiving this because you were mentioned.Message ID: @.***>

anttin2020 commented 2 months ago

Ok, whatever you think is best and easiest for you :) So, see you tomorrow!

aknittel1 commented 2 months ago

Here is a download link to a ZIP file that is the build of this driver for UE4:

https://1drv.ms/u/s!AtCAJBoxlRBgo4NHOKbFA-30zvkH2w?e=qjWc9y

Access will expire 7/19/2024

anttin2020 commented 2 months ago

Thank you very much! I will get into it tomorrow (it's evening here now), I'll let you know how it works :)

aknittel1 commented 2 months ago

BTW, I DID upgrade to Visual Studio 2022. The RUNAT.BAT was unmodified and I used these batch file command line parameters:

runuat BuildPlugin -plugin="D:\Data\Downloads\Browser\SpaceMouse-Win64-1.2.4.5.0.0-Source\SpaceMouse.uplugin" -package="D:\Data\Downloads\Browser\SpaceMouse-Win64-1.2.4.5.2.0-Source\SpaceMouse540Prebuild"

and made the one change I referred to earlier in Davi’s source:

From: AnttiN @.> Sent: Friday, July 5, 2024 1:11 PM To: microdee/UE4-SpaceMouse @.> Cc: aknittel1 @.>; Mention @.> Subject: Re: [microdee/UE4-SpaceMouse] Paying it forward: I have worked out the build issue with 5.4, built and lightly tested in 5.4 for compatibility (Issue #104)

Thank you very much! I will get into it tomorrow (it's evening here now), I'll let you know how it works :)

— Reply to this email directly, view it on GitHub https://github.com/microdee/UE4-SpaceMouse/issues/104#issuecomment-2211176797 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AFIQNYFQAM2JMDSHICMIRYLZK3HRRAVCNFSM6AAAAABGZJP6MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRGE3TMNZZG4 . You are receiving this because you were mentioned.Message ID: @.***>

anttin2020 commented 2 months ago

Ok, thanks for the info! I have VS 2022 installed but should I do something so that it definitely uses that and not 2019? Some config/path or something like that? Or will it try 2022 first by default on UE 5.4?

aknittel1 commented 2 months ago

I deinstalled 2019 and installed only 2022. I cant speak to parallel installations and their effect.

From: AnttiN @.> Sent: Friday, July 5, 2024 1:56 PM To: microdee/UE4-SpaceMouse @.> Cc: aknittel1 @.>; Mention @.> Subject: Re: [microdee/UE4-SpaceMouse] Paying it forward: I have worked out the build issue with 5.4, built and lightly tested in 5.4 for compatibility (Issue #104)

Ok, thanks for the info! I have VS 2022 installed but should I do something so that it definitely uses that and not 2019? Some config/path or something like that? Or will it try 2022 first by default?

— Reply to this email directly, view it on GitHub https://github.com/microdee/UE4-SpaceMouse/issues/104#issuecomment-2211222931 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AFIQNYELJ53GWMSQHDLM2S3ZK3M3PAVCNFSM6AAAAABGZJP6MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRGIZDEOJTGE . You are receiving this because you were mentioned.Message ID: @.***>

anttin2020 commented 2 months ago

ok I think I'll uninstall 2019 too, there is no need for it anymore :)

aknittel1 commented 2 months ago

Here:

https://www.youtube.com/watch?v=4TfjK4PBrI8#:~:text=Quick%20notes%20on%20how%20to%20install%20Visual,you%20need%20to%20modify%20the%20existing%20installation.

UE 5.4 only supports VS 2022

anttin2020 commented 2 months ago

Ok, thanks! :)

anttin2020 commented 2 months ago

I have now tried your plugin directly and it works but only in Editor, not in play mode. I also have compiled the plugin on my own from old source (with the added #include) successfully, except that runuat.bat says: TDxUnreal: 3DxWare SDK was not found. Navigation in PIE Mode and Asset Editor will not be available. And indeed, compiled plugin works the same as yours.

I have downloaded the SDK, added the root folder to PATH and also TDxWare_SDK_DIR env variable and set it to root folder as well but it still does not find it. Can you please help me? Should I point PATH or TDxWare_SDK_DIR to some other folder inside the SDK?

First, please confirm that spacemouse works for you in play mode and if it does, tell me what did you do to get it to work :)

Thank you!

aknittel1 commented 2 months ago

Sorry I have only used in editor mode since I'm a filmmaker not a game dev.

As to your other issue, can't help you. You'll have to seek support from. DAVID. From the runtime error you got it seems you still have the 3DX driver installed? My understanding is you have to uninstall that according to the install directions..

Get Outlook for Androidhttps://aka.ms/AAb9ysg


From: AnttiN @.> Sent: Saturday, July 6, 2024 8:30:02 AM To: microdee/UE4-SpaceMouse @.> Cc: aknittel1 @.>; Mention @.> Subject: Re: [microdee/UE4-SpaceMouse] Paying it forward: I have worked out the build issue with 5.4, built and lightly tested in 5.4 for compatibility (Issue #104)

I have now tried your plugin directly and it works but only in Editor, not in play mode. I also have compiled the plugin on my own successfully, except that runuat.bat says: TDxUnreal: 3DxWare SDK was not found. Navigation in PIE Mode and Asset Editor will not be available. And indeed, compiled plugin works the same as yours.

I have downloaded the SDK, added the root folder to PATH and also TDxWare_SDK_DIR env variable and set it to root folder as well but it still does not find it. Can you please help me?

First, please confirm that spacemouse works for you in play mode and if it does, tell me what did you do to get it to work :)

Thank you!

— Reply to this email directly, view it on GitHubhttps://github.com/microdee/UE4-SpaceMouse/issues/104#issuecomment-2211756437, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFIQNYFUICHREXW2CJF777DZK7PMVAVCNFSM6AAAAABGZJP6MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRG42TMNBTG4. You are receiving this because you were mentioned.Message ID: @.***>

anttin2020 commented 2 months ago

Yes sorry my bad, it works fine :) The message refers to 3dconnexion driver, not this one. And you can have 3dconnexion driver installed (and often must be for other software like Houdini etc. for me).

But what is interesting is that the message suggests it would be possible to get the 3dconnexion driver to support PIE mode as well :o Anyway, this is more feature rich so now that it works in UE 5.4, I'm happy :)

Thank you very much for your help and have a nice day!