Unreal 5 Studio Beta & Project References
Hey, should it be possible to use references to other projects, without requiring absolute/relative paths in the Unreal Studio Beta?
Say I have the following setup:
When trying to set this up in the Samples project, it seems the Studio Beta gives both new projects the assembly 'GAME', which means it errors with an Assembly name conflict when you try to include one project in the other.
If I manually change one of the assembly's, e.g. GAME2, then it doesn't work in game (I presume as it doesn't have knowledge of that other assembly in the game).
Is it expected that I can do this setup in the Studio Beta?
Say I have the following setup:
Code: Select all
Content
Project1
Project1.noesis
Project1Resources.xaml
Project2
Project2.noesis
Include 'Project 1' using Project Ref
Main.xaml
Include 'Project1Resources.xaml' as resource to useIf I manually change one of the assembly's, e.g. GAME2, then it doesn't work in game (I presume as it doesn't have knowledge of that other assembly in the game).
Is it expected that I can do this setup in the Studio Beta?
-
-
sfernandez
Site Admin
- Posts: 3363
- Joined:
Re: Unreal 5 Studio Beta & Project References
Hello,
In Unreal the expected workflow would be to have a main Studio project (with assembly "Game") that would be mapped to the Unreal's project Content folder. Then, for each referenced project you would need to define an Unreal Plugin (with the same name as the referenced project assembly), mapping the referenced Studio project to the Unreal's Plugin Content folder.
Some structure like this should work:
In Unreal the expected workflow would be to have a main Studio project (with assembly "Game") that would be mapped to the Unreal's project Content folder. Then, for each referenced project you would need to define an Unreal Plugin (with the same name as the referenced project assembly), mapping the referenced Studio project to the Unreal's Plugin Content folder.
Some structure like this should work:
Code: Select all
MyProject/
* MyProject.uproject
- Assets/
* MainProject.noesis (assembly=Game)
* MainPage.xaml
- Content/
* MainPage.uasset
- Plugins/
- RefProject1
* RefProject1.uplugin
- Assets/
* RefProject1.noesis (assembly=RefProject1)
* Resources.xaml
- Content/
* Resources.uasset
Re: Unreal 5 Studio Beta & Project References
When creating a new Studio project in Unreal, we default the project name, which is also used as the assembly for the project, to Game. We selected this as the first project most users will create is going to be for their /Content folder, in which the Game assembly should be used.
When creating projects within plugins, those projects should use the same name as the uplugin file, to allow us to map Uris for that assembly to the Content folder of the plugin. For example, if the plugin file is DataBinding.uplugin, then the Studio project of that plugin should be DataBinding.noesis.
To confirm that this is working as expected, I downloaded Studio Unreal b6, created a Game.noesis project in a <UnrealProject>/Assets folder, and added a reference to one of our sample plugin projects, <UnrealProject>\Plugins\Samples\DataBinding\Assets\DataBinding.noesis.
Everything worked as expected, including using image assets, and merging a ResourceDictionary from DataBinding.
The project reference path, which was created in Studio using Add Project Reference... is relative.
When creating projects within plugins, those projects should use the same name as the uplugin file, to allow us to map Uris for that assembly to the Content folder of the plugin. For example, if the plugin file is DataBinding.uplugin, then the Studio project of that plugin should be DataBinding.noesis.
To confirm that this is working as expected, I downloaded Studio Unreal b6, created a Game.noesis project in a <UnrealProject>/Assets folder, and added a reference to one of our sample plugin projects, <UnrealProject>\Plugins\Samples\DataBinding\Assets\DataBinding.noesis.
Everything worked as expected, including using image assets, and merging a ResourceDictionary from DataBinding.
The project reference path, which was created in Studio using Add Project Reference... is relative.
Code: Select all
<Project.References>
<Reference Path="../Plugins/Samples/DataBinding/Assets/DataBinding.noesis"/>
</Project.References>
Re: Unreal 5 Studio Beta & Project References
Thank you for the info, it's good to understand your expected projects layouts in Unreal. I guess the using plugins & matching project names are the key here.
I did manage to make a test work with reference a plugin project from another plugin project in the Samples app, so it does work within that structure.
Our layout is currently multiple separate noesis projects within our game project, so if that's not supported when it comes to using project references then we'll have to rethink that. I'd be interested to check out that code that does the assembly to folder mapping, in-case there's anything custom we would perhaps do there. Relative paths have been working for us, but we've had to manually update them outside of Studio.
I did manage to make a test work with reference a plugin project from another plugin project in the Samples app, so it does work within that structure.
Our layout is currently multiple separate noesis projects within our game project, so if that's not supported when it comes to using project references then we'll have to rethink that. I'd be interested to check out that code that does the assembly to folder mapping, in-case there's anything custom we would perhaps do there. Relative paths have been working for us, but we've had to manually update them outside of Studio.
-
-
sfernandez
Site Admin
- Posts: 3363
- Joined:
Re: Unreal 5 Studio Beta & Project References
In plugin code NoesisRuntime/Public/NoesisSupport.h the helper function NsProviderUriToAssetPath is in charge of converting an Uri into the corresponding Unreal Asset path. This method uses Uri's Assembly information (if available) to map it to a Plugin's content folder.
Perhaps you want to modify that behavior in your project and map the assembly information to folders inside the main project's Content folder.
In any case, I don't think our current approach is something we want to change, because it is an easy way to split content in different projects and compatible with how Noesis Studio works with referenced projects.
Perhaps you want to modify that behavior in your project and map the assembly information to folders inside the main project's Content folder.
In any case, I don't think our current approach is something we want to change, because it is an easy way to split content in different projects and compatible with how Noesis Studio works with referenced projects.
Who is online
Users browsing this forum: No registered users and 0 guests