- FAssetImportInfo is now marked as USTRUCT and is stored as a member value on UAssetImportData rather than using inheritance. This makes customization writing much easier and better affords UObject interoperability.
- Removed UAssetImportData::bDirty as it was only every used to enable/disable a button on the static mesh editor, and its presence caused confusion and inconsistency.
- Fixed issue where timestamps did not get updated correctly
- Fixed various reimport paths that were not updating their source file information correctly.
This addresses UETOOL-466 and UE-16406.
[CL 2646395 by Andrew Rodham in Main branch]
All changes regarding e-mail discussion titled "Asset registry shenanigans".
Changes:
1. Engine now actively is getting rid of short asset paths in FStringAssetReference during saving (for all packages) and loading (only for older packages).
2. Deprecated direct access to FStringAssetReference.AssetLongPathname and exposed it via ToString and SetPath -- SetPath is making sure the path is in correct format. If the path can't be found on disk, the path is cleared.
3. Also access to FStringAssetReference.AssetLongPathnam via Blueprints is guarded using custom Make node function that uses SetPath instead of simple assign.
4. StringAssetReferenceMap will now contain only paths to packages (not objects) and ini references
5. GetDependencies now has additional parameter that lets you chose if it should resolve ini references or not. It was left not as default to keep old behaviour.
[CL 2630589 by Jaroslaw Palczynski in Main branch]
Fixes for lots of existing modules by removing all dynamically loaded duplicates (this is probably not the correct solution, but is the safest).
#codereview robert.manuszewski
[CL 2610845 by Steve Robb in Main branch]
Data Tables can now import from JSON, and this was taking priority over the Paper2D importers. There were a few issues here:
1) FAssetTools::ImportAssets wasn't respecting the priority of the import factories, and was just testing them in the order they were found.
a) UCSVImportFactory needed to be given a lower than normal priority so it gets tested last as it will perform a catch-all match.
2) FAssetTools::ImportAssets will default to the first factory it finds, and then use FactoryCanImport to try and find a better match, however FactoryCanImport returns false by default, so...
a) UPaperSpriteSheetImportFactory needed to implement FactoryCanImport to avoid sprite sheets being imported as Data Tables.
b) UCSVImportFactory needed to implement a catch-all FactoryCanImport so it can be used when no other factory is a better match.
#codereview Andrew.Rodham, Michael.Noland
[CL 2608928 by Jamie Dale in Main branch]
#jira UE-17417 - User must run FixUp Redirector two times to complete operation
Added referencing assets' paths into the list in FAssetFixUpRedirectors::UpdateAssetReferencers so that the asset references lists are updated correctly.
Also fixed a problem leading to duplicate entries in the PendingDeletes list in FAssetDeleteModel.
[CL 2605630 by Richard TalbotWatkin in Main branch]
UETOOL-332 - Collections 2.0
UETOOL-373 - Check robustness of Collections 2.0
The collection manager will now fix-up any references to redirectors within its collections once the asset registry has finished discovering all the available assets. It also adds a watcher so it can pick up any moves or deletes as they happen.
All of this fix-up is applied to the in-memory copy of the collection, and doesn't get persisted to disk until it needs to be (because referenced redirectors are being deleted). This helps to minimize issues with source control availability and shared/private collections.
This change also makes sure that objects that are being referenced by a collection will leave a redirector behind, and also adds some extra context (such as the collection name) to some of the source control errors that may be reported when saving a collection.
[CL 2602519 by Jamie Dale in Main branch]
base for a change to replace all PostProcessSettings with Blendables. See new documentation on blendables.
[CL 2596231 by Martin Mittring in Main branch]
If you import a mesh that adds bones to a skeleton, but don't save the skeleton, it could cause a crash.
Added the ability to recover these bones in the editor.
#codereview lina.halper, martin.wilson
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2583044 by Laurent.Delayen on 2015/06/10 14:22:26.
[CL 2583061 by Laurent Delayen in Main branch]
The majority of asset reimport machinery is now held within UAssetImportData and FAssetImportInfo. This change allows us to remove the CachedAssetsBySourceFileName map from FAssetRegistry that was previously added to support auto reimport for 4.7.
The functionality of CachedAssetsBySourceFileName has been wrapped up in FAssetSourceFilenameCache, which sits on top of the asset registry in the editor.
This unification allows us to also consistently store the file timestamps and MD5 hashes of imported files. This subsequently allows auto-reimports to be ignored where a source content file has not actually changed (its MD5 is the same).
This addresses UETOOL-365 - Rework AssetRegistry changes to support auto-reimport
[CL 2567286 by Andrew Rodham in Main branch]
#jira UE-15787 - Creating a child blueprint of an anim blueprint does not result in an anim blueprint
#reviewedby Benn.Gallagher
[CL 2558443 by Richard TalbotWatkin in Main branch]
- An existing local foliage type assigned to the same mesh is no longer stomped by proc foliage from a blueprint class
- Added limited support for foliage type blueprints to the foliage palette
- Properties cannot be edited in the palette, but any changes to the BP propagate to the corresponding instances in the world. In general, using FoliageType assets for proc foliage is still recommended.
- No longer possible to assign the same mesh to multiple local foliage types
- Added source asset info to foliage palette item tooltips
- Local foliage types are now transactional
- Updated asset color for proc foliage spawner and foliage type
[CL 2539880 by Dan Hertzka in Main branch]