There are already APIs for getting a relative product path from an absolute source path, or getting a relative source path for an *existing* source file, but there were no APIs for getting a relative source path for a *new* source file. Prefabs will need this ability to be able to correctly generate a relative source path inside the prefab file before the file has been saved.
The logic for relative source paths is a little bit tricky because the paths are relative to the watch folders, and the watch folders can be nested, with different priorities to explain which should take precedence. The input paths can also include specifiers like "." and "..", which need to be reconciled before creating the final correct relative path. The included unit tests test all of the tricky edge cases that I was able to identify.
The add_gem_project and remove_gem project scripts, now just enables on
a gem name basis instead of a CMake target basis
Updated the ProjectManager code and scripts to account for the
add_gem_project and rmeove_gem_project script changes.
Nested slices are now detected, converted into prefabs, and the top-level prefab will get linked to the nested prefabs with the proper number of instances. However, the nested prefabs won't retain any of the slice override values or parent entity hierarchy. That will (hopefully) be added in a separate PR.
This also adds support for better relative source paths for nested prefabs. To support this, the tool now needs to connect/disconnect with the AssetProcessor to be able to turn a slice asset ID into a relative source path, so that nested templates can be looked up and converted correctly.
* Projects Home Screen Dynamically displays Projects from O3DE and can open Project settings editor
* Seperated out CreateProjectCtrl and UpdateProjectCtrl
* Moved source level statics back into class headers
* Updated background image location
* Revert "FBX settings can be opened again: g_fbxImporter is set, and if the ex… (#878)"
This reverts commit 58adcf168f.
* Revert "Merge pull request #753 from aws-lumberyard-dev/Helios_DataDrivenAssetImporter"
This reverts commit 798d96f1a2, reversing
changes made to eb31d90ad9.
* Added sort filter proxy model for gem model that can filter based on name, gem origin, supported platform, features and/or types.
* Added new filter pane on the left with several filter categories for gem origin, type, platform and feature.
* Added filter category widget which is a collapsable generalized checkbox group that can interact with the proxy model and thus control filtering.
* Removed fixed size of the project manager. The application should always be resizable.
* FBX settings can be opened again: g_fbxImporter is set, and if the extension list is empty, it is reloaded.
* auto -> auto*, .size() == 0 -> .empty()
* [LYN-2522] Preparation work for the filter pane
* Added arrow up/down icons.
* Extended the gem info with the type (Asset, Code, Tool).
* Extended the model with the type and a helper for converting gem uuids into display names.
* Extended the link widget to be clickable with a custom action, needed for the "Show all/less" for the filters.
* Converting the uuids we get from Python to AZ::Uuids and then back to strings to have them all in the same format.
Previously FbxImportRequestHandler used to be activated as part of DllMain init and never had CreateDescriptor called, which meant reflect was not called. BehaviorComponents get created and Activated as part of special SceneCore logic. Since this component now needs to be activated as part of the normal flow, reflecting it caused it to be picked up by the SceneCore activate logic, causing it to be created/activated twice
* Helios - LYN-3250 - Fixed morph targets for meshes that had multiple materials (#374)
Fixed morph targets for meshes that had multiple materials and were split by AssImp: Recombined them into one mesh in the O3DE scene graph, so the behavior would match FBX SDK.
* Forced Project Manager window to 1200x800
* Final look for FirstTimeUseScreen, essentially complete
* Remove margins on screens
* Added License info for image