Download

moving / renaming still completey broken in 4.8

The reason why Unity even has .meta files is because Unity does not convert assets to internal format during import (well, it technically does, but it is hidden away from you). So, if you put *.tga into project content/asset it’ll stay as *.tga. Because *.tga can’t have extra metadata, the metadata is stored in *.meta file which placed near original file.

Since UE4 has everything in *.uasset form, guid for the file could be placed inside the asset. Meaning no *.meta files.

You’re repeating what I said using different words. Redirectors exist for historical reason as a quick and dirty workaround around limitation of path-based system.

However, path-based system doesn’t bring any benefit to begin with, and should obviously be replaced with something that doesn’t break and doesn’t need redirectors.

I advise to get rid of that habit, and listen instead. There’s no point in getting wound up. Both engines have superior features that aren’t present in another one, and both have weak points. When people say “it is broken” they are trying to improve your favorite software tool, so when you argue with them, you oppose adding new improvements to your favorite engine.
That doesn’t make much sense, don’t you think?

By the way, at the moment really weak points of UE4 is asset management handling - the one that is discussed in this thread, and animation retargeting mechanism (although animation system itself is better).

I absolutely wasn’t, and my reason for irritation is that lot of the time the attitude of those coming from a different engine is that Unreal should bend itself to suit (Often as if it should be an easy or priority task), rather than listening to folks who have a lot of experience with the engine advising them on a better overall workflow for these tools. Cueing the condescending remarks I’m stepping out of the conversation permanently now.

In the meantime, I would suggest waiting for an Engine dev to post their thoughts on the matter.

As you wish. Have a nice day.

For what it’s worth, I 'm not coming from another engine. I used UT3’s modding kit, then UDK, then UE4. I believe I have plenty of experience with the engine (and other engines too), even if you’re implying I don’t.

Still believe redirectors are a broken fix to a bad design.

Goodness… Not sure how this turned into a ******* match. The bottom line is that UE4 needs to review and make their content browser better… And, one way to do that is to listen to feedback from ALL users, even users from different engines.

Its frustrating how the MOVE / COPY works… I simply want it to work… That’s it.

teak

Yes, having the same issues. Redirectors are simply hell on earth.

Why isn’t there some system of individual GUIDs for each each resource (created on first import) and a mapping table, storing the current path of this asset on the target computer or a similar system?

Me and Neg are netflix-and-chill now, sorry folks.

One issue I did think of with the GUID system is that they’d need to find a way to load only a small chunk of the .UAsset file - or you risk loading every asset into memory when you load up the engine (nine times out of ten you’ll probably run out once you’re project get’s up to a good size) - which could also mean longer loading/iteration times. It is possible to do that, I’m doing something similar to load only certain information from a UMap asset without loading the entire level - but I don’t know how much overhead that adds in itself and how responsive that would be.

Something like Spyro’s suggestion seems like a good idea, so long as the path is based on the ‘Root Directory’ and not specific drives or locations. IDK at this point…

It’s 2018 now and I’m using 4.21 with Perforce.

I just renamed a file and submitted it to source control.

Source control now contains two files, one with the old name, one with the new.

When I use “get latest version” (from P4V) on a different machine, I get the following error (and that’s the old name):

Capture.JPG

Quite a horrible first time user experience with Perforce, I must admit.

EDIT: Apparently you must rename files from within P4V itself, and not from the Unreal Editor:

https://forums.unrealengine.com/unreal-engine/feedback-for-epic/1368618-source-control-renaming-an-asset-should-keep-its-history-in-source-control?p=1368871#post1368871

I wish Epic would have disabled the rename option from the context menu when source control is activated then, and this could have been avoided…

No. Don’t rename them using Perforce, rename them in the editor. This will create the new file and modify the old file to be a redirector that points to the new file’s location. This is needed when you have other assets that reference the old file location so that it knows that the file has been moved. You want to check both the new file and the old modified file into Perforce to rename the asset.

The error you are getting in Perforce (failed after 10 attempts) is because you have the editor or game running and it has files opened. Perforce can’t overwrite files that are opened by some other process. Quit the editor or game, then sync to latest in Perforce and you will be able to update the files to the latest version.

They could at least stop using FArchive to serialize asset references then at least the crashes would stop when someone does something stupid.

Ignore conversation from the link. It gets you/us nowhere.

Don’t ever try to rename files outside of editor. You can easily mess up your files this way.
If there are any references to asset, editor uses old file as redirector - other files still have references to this old file as redirector. And redirector points to the new file. That’s why old file often isn’t removed. In this case you need run “Fix up redirectors” command on folder or redirector file (you can see redirector by using Show Redirectors options in Content Browser filters).

Your error from screenshot probably is caused by the fact you got opened editor while doing P4 update. Unreal locks all loaded files, makes them read-only. Usually you need to close editor before updating repo.

So what happens when I move an asset a third time? Do I now have two copies that function as references?

What if I move assets 10 times, does that mean I have at least 9 reference copies taking up the space?

Redirectors are very small (<1KB) so they don’t take up space. Run the “fix redirectors” command periodically to remove them - preferably when no one is working on your team, because the redirector fix requires changes to the user assets.

Epic could have a “direct removal” option for single developers who don’t need redirectors, but frankly we would just have 1000 “why are my assets broken after moving a texture” posts instead.

Or it could be made so that moving stuff doesn’t break things. It’s very simple.

  1. Get all references to file.
  2. Move file to new location.
  3. Update references with new file location.

This should be the default behavior and redirectors should be optional.

So how would that work if you move a mesh that’s used in every level ? You’ll just ask your LD & art team to save and commit their work and wait until you checkout their changes, move the mesh, commit the changes, and then let them resume working ? Even with a small team, that’s completely broken. Right now, the process is to move stuff all you want, and do a “fix redirectors” cleanup once a month. It’s not broken, it’s just meant for teams, not single devs, it’s safe and convenient at the expense of a few trivial files.

What I was saying a few years ago on this thread is, Epic could just do away with filenames and work like Unity. But that’s probably not a realistic change.

So if I understand this correctly, if you’re using version control (SVN, Perforce, etc) and you want to move a 200MB versioned asset from one folder to another, you have to upload a completely new 200MB file to the version control server?

Not only does that waste a lot of peoples’ time uploading files that are already committed, it means you can’t trace an asset’s history back before it was moved, since your version control software has no idea that the old 200MB file is the same as the new 200MB file.

Coming from Unity, this is atrocious!

You’d have the same behaviour using Perforce with Unity. It’s not engine specific. Not sure why complaining here :wink:

Because it’s stupid no matter the engine?

The issue this Fix Up Redirector is unreliable. Even if I import marketplace assets in a new project, and move them around, I will get moving issues, and Fix up can’t fix it.

Redirectors shouldn’t exist :slight_smile: