Re: Unreal Engine 4
I grabbed that latest push, and NoesisGUI-NativeSDK-2.1.0b12. Copied the SDK into the proper place, compilation went smooth. Same issue when launching project:
I copied the *.dll files from the NoesisSDK bin folder, into the Noesis plugin binaries/win_64 folder, same issue is there. My project is a C++ project, and I've added the Noesis header and PrivateDependencyModuleNames entries in the project's *.build.cs file. I'm at a loss.
[edit]
This tells me this isn't a project plugin. I didn't notice any documentation stating otherwise?
[edit edit]
Yup. Copied the NoesisGUI plugin folder in the installed engine plugin folder, and my project fired up. It would be ideal if this was project-based, not requiring the user to install into the engine directory. I realize now I didn't notice this in the documentation. I'm used to engine source modifications, and rebuilding the engine, and adding plugins on a per-project basis, but it's not elegant diving into the engine plugin folder, outside of marketplace installed plugins. It works, but it's dirty...
Also, the folder structure of the samples is very rugged. Plugins can contain content. Examples should be in there, and easily accessible. There is a ton of documentation on best-practices, and a handy style-guide here: https://github.com/Allar/ue4-style-guide
It'd be awesome if energy was put into making the UE4 plugin meet the quality and usability standards one would expect from this awesome looking GUI solution
Thanks for all the support so far, and I hope my critiques are taken as just that- not trying to be a douche!
Code: Select all
Unknown exception - code c06d007e (first/second chance not available)
KERNELBASE
UE4Editor_NoesisRuntime!__delayLoadHelper2() [f:\dd\vctools\delayimp\delayhlp.cpp:323]
UE4Editor_NoesisRuntime!_tailMerge_Noesis_dll()
UE4Editor_NoesisRuntime!FNoesisRuntimeModule::StartupModule() [f:\erebus\projects\edt\ue\plugins\noesisgui\source\noesisruntime\private\noesisruntimemodule.cpp:147]
UE4Editor_Core
UE4Editor_Projects
UE4Editor_Projects
UE4Editor_Projects
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll
[edit]
Code: Select all
LogWindows: File '../../../Engine/Plugins/NoesisGui/Source/Noesis/NoesisSDK/Bin/windows_x86_64/Noesis.dll' does not exist
[edit edit]
Yup. Copied the NoesisGUI plugin folder in the installed engine plugin folder, and my project fired up. It would be ideal if this was project-based, not requiring the user to install into the engine directory. I realize now I didn't notice this in the documentation. I'm used to engine source modifications, and rebuilding the engine, and adding plugins on a per-project basis, but it's not elegant diving into the engine plugin folder, outside of marketplace installed plugins. It works, but it's dirty...
Also, the folder structure of the samples is very rugged. Plugins can contain content. Examples should be in there, and easily accessible. There is a ton of documentation on best-practices, and a handy style-guide here: https://github.com/Allar/ue4-style-guide
It'd be awesome if energy was put into making the UE4 plugin meet the quality and usability standards one would expect from this awesome looking GUI solution
Thanks for all the support so far, and I hope my critiques are taken as just that- not trying to be a douche!
Last edited by Derjyn on 20 Dec 2017, 22:03, edited 1 time in total.
Re: Unreal Engine 4
Yes, it is an engine plugin at the moment. I'm not sure it can be made a project plugin, because we need to be able to find that dll, and I'm not sure that's possible if it's not on a fixed position relative to the engine install.
I'll investigate it, since there have been several changes relative to plugins lately. At the very least I'll add a check to the build system to make sure the plugin is installed in the right place if it has to remain an engine plugin.
I'll investigate it, since there have been several changes relative to plugins lately. At the very least I'll add a check to the build system to make sure the plugin is installed in the right place if it has to remain an engine plugin.
Re: Unreal Engine 4
Yes, it's certainly one of the areas of the engine that has been frustrating for people. I've done a bit of investigating on this topic myself, and while I've yet to find a magic-bullet solution, it seems it is completely possible. Not sure if any of this helps or is correctly related, but here are a few links:
https://github.com/shadowmint/ue4-static-plugin
http://www.valentinkraft.de/including-t ... -tutorial/
https://forums.unrealengine.com/develop ... -the-setup
There are more threads and articles on the subject, but it's mostly project specific details for various third-party libraries people are trying to get working. The gist of it though, is that is possible.
https://github.com/shadowmint/ue4-static-plugin
http://www.valentinkraft.de/including-t ... -tutorial/
https://forums.unrealengine.com/develop ... -the-setup
There are more threads and articles on the subject, but it's mostly project specific details for various third-party libraries people are trying to get working. The gist of it though, is that is possible.
Re: Unreal Engine 4
Not at all. Constructive criticism is always welcomeThanks for all the support so far, and I hope my critiques are taken as just that- not trying to be a douche!
A quick heads up. I've been looking at this these last couple of days, and I have a solution that works, but we're still trying to figure out how to do it for Launcher users, since the process to build the plugin for them relied on knowing where the automation tool was relative to the plugin, and unfortunately the windows libs are too big to commit them to GitHub.
Re: Unreal Engine 4
About the samples: could you elaborate a bit more? What is it that you don't like, the organization of the Tutorials GitHub repo, or the organization of each UE4 sample? Our UE4 samples are not just content, they contain C++ code that is sample specific, so I'd like to have them separate from the plugin itself and be game projects, as they are now.
Re: Unreal Engine 4
Well, this took longer than I anticipated, but it's finally working. The plugin now supports being used as either an Engine or a Project plugin. We've committed the editor binaries (Win64 and Mac) and the intermediate files to GitHub, so it works out of the box. For people using the GitHub version of UE4 it doesn't really matter, and regenerating the projects will add the plugin as normal, and you can build everything from there. For Epic Games Launcher versions, if you install it as a Project plugin, you don't need to do anything either. If you install it as an Engine plugin you need to run BuildNoesisGUIPlugin.bat (BuildNoesisGUIPlugin.command on the Mac) to produce the runtime binaries.
The README has been updated to reflect these changes. There's also a new troubleshooting section at the end, that I'll update as problems arise. Finally, more checks have been added to the build system files to try to catch improper use cases.
One thing mentioned in the README but that it's worth repeating here. If you already have a project, you need to manually add the plugin dependency in your uproject file, otherwise you won't be able to launch the editor (you'll get an error that the module cannot be loaded).
Happy new year, everyone!
The README has been updated to reflect these changes. There's also a new troubleshooting section at the end, that I'll update as problems arise. Finally, more checks have been added to the build system files to try to catch improper use cases.
One thing mentioned in the README but that it's worth repeating here. If you already have a project, you need to manually add the plugin dependency in your uproject file, otherwise you won't be able to launch the editor (you'll get an error that the module cannot be loaded).
Happy new year, everyone!
- antsonthetree
- Posts: 44
- Joined:
Re: Unreal Engine 4
Hello,
Could you post an example that shows how to instanciate a noesis view and also setup databinding using C++ only?
Thanks
Jake
Could you post an example that shows how to instanciate a noesis view and also setup databinding using C++ only?
Thanks
Jake
Re: Unreal Engine 4
Hi Jake,
Doing data binding from C++ using the Unreal reflection system is quite straightforward, you just need to make sure the properties and functions are exposed to Blueprints and the system should work as it does with Blueprint classes. Or, alternatively, you can use the Noesis SDK C++ reflection macros directly, if you don't want your data sources to be UObjects.
View instantiation is a bit more tricky, since you still need a NoesisXaml asset. Provided you don't mind having a hardcoded reference to one in C++, it should still be possible.
I'll modify one of the samples to use a custom PlayerController to instantiate the UI from C++ as soon as I can.
Doing data binding from C++ using the Unreal reflection system is quite straightforward, you just need to make sure the properties and functions are exposed to Blueprints and the system should work as it does with Blueprint classes. Or, alternatively, you can use the Noesis SDK C++ reflection macros directly, if you don't want your data sources to be UObjects.
View instantiation is a bit more tricky, since you still need a NoesisXaml asset. Provided you don't mind having a hardcoded reference to one in C++, it should still be possible.
I'll modify one of the samples to use a custom PlayerController to instantiate the UI from C++ as soon as I can.
- antsonthetree
- Posts: 44
- Joined:
Re: Unreal Engine 4
Hello hcpizzi,Hi Jake,
Doing data binding from C++ using the Unreal reflection system is quite straightforward, you just need to make sure the properties and functions are exposed to Blueprints and the system should work as it does with Blueprint classes. Or, alternatively, you can use the Noesis SDK C++ reflection macros directly, if you don't want your data sources to be UObjects.
View instantiation is a bit more tricky, since you still need a NoesisXaml asset. Provided you don't mind having a hardcoded reference to one in C++, it should still be possible.
I'll modify one of the samples to use a custom PlayerController to instantiate the UI from C++ as soon as I can.
I have it working with the NoesisFunctionLibrary.h now. I am making this call to notify that the property was updated:
UNoesisFunctionLibrary::NotifyChanged(this, TEXT("MyCount"));
This seems to work fine, but I wonder is this as effecient as using the Noesis SDK? As an experiment I tried implementing the INotifyPropertyChanged on my UNoesisInstance, but I get a lot of compiler errors that way. If there is no benefit to the SDK (over the NoesisFunctionLibrary) then I will just keep using this method.
So far it looks very nice. You guys should put the plugin on the UE4 marketplace for more visibility.
Thanks
Jake
Re: Unreal Engine 4
Hi Jake,
There's an overhead, so if you're going the fully native route it's better to get those compiler errors sorted. Could you post the compiler output?
Thanks!
There's an overhead, so if you're going the fully native route it's better to get those compiler errors sorted. Could you post the compiler output?
Thanks!
Who is online
Users browsing this forum: No registered users and 34 guests