Large Library

Hi,
We are an Arch-Viz studio and we are starting to use Unreal a lot more and quickly growing our UE team.
With further expansion in mind, we were wondering what is the best way to sort all our assets and how do you guys go about having a very large library of Unreal ready assets?
Having assets scattered in all the different projects in the vault is really not optimal.

In traditional V-ray Arch-viz we were using Design Connecter, I’m wondering if the big game studios are using something similar or if there’s other way to organize a Library of Unreal assets ?

Thanks for your help

In my opinion, working with assets is the worst part of Unreal at the moment, for our small Arch-Viz projects. I’ll be interested to hear another opinion.

The way we have been working is to have a central file with all our assets in it. You can then migrate as required. As long as you keep the folder structures the same, it works ok.

Definitely not ideal, and requires updating a lot as Unreal versions change.

Zip files, categorical thoroughness, and not keeping them all in the Unreal Projects folders are my suggestions. By categorical thoroughness, I mean not just using the same categories that by default are the structure of Unreal folders (Config, Content, Saved, etc.). Those become tedious to go through. So, create folders and subfolders that define asset features and/or details:

Assets Static Meshes
[INDENT=2]Small
Medium
Large[/INDENT]
Stationary Meshes
[INDENT=2]Small
Medium
Large[/INDENT]
Dynamic Meshes
[INDENT=2]Small
Medium
Large[/INDENT]
Opaque Materials
[INDENT=2]Simple
Complex[/INDENT]
Translucent Materials
[INDENT=2]Simple
Complex[/INDENT]

That’s just an example, not a strict or the only solution. Another thing to do is for projects that are no longer being worked on, delete them. Or at least remove the imported assets. That is why it’s a better idea to locate assets in a more central folder or set of folders. Adding to different projects takes up far more space, especially for the same assets used across more than one or two projects.

Hi,
Thanks for your answers.
Unfortunately none are really what we are after. Are you guys familiar with Design Connecter? A great third party to sort out your 3d assets and importing them directly in 3dsMax.
Such a solution would awesome for Unreal.
I’ve been creating central files per category of Assets, like furniture, road stuff etc… but that’s an incredibly long and tedious job to import/migrate assets to these files to then migrate them again on a project.
i can’t get my head around the fact that there’s no simpler way to organise your assets for Unreal.

I’m using a library project where everything is in. All assets sorted into categories. I build my project there and when I’m finished I migrate the levels to a new project. Unreal will only migrate the assets that are referenced into this new project. At that point the project is separated from the library and any changes to assets would need to be done in both the library and the project (if necessary).

It works in a bigger studio as well. You would need perforce or another version control to be able to share the library project with everyone.

All the games I worked on had a similar system. The game would be the library. You always have the entire game/library to work in. Version control makes sure that everything is always up to date and only one person can work on any asset at the same time.

Maybe there is a plug in which does what you want to do. You can import assets and assign the materials automatically but the material needs to exist with this name in the project. So you would need all materials already being present in the project which makes that process impossible. The materials are not saved with the static mesh in unreal. They are totally independent assets.

I’m seeking a solution to this as well. I think Epic Games needs to modify Unreal to allow referencing assets to a central location like Twinmotion does so users not in game development don’t have to duplicate assets every project they work on.

2 Likes

On windows, you can use symbolic links to share assets from 1 project with all the others without the need to duplicate or migrate content. This dramatically reduces the data footprint for shared assets.

Typical setup looks like this:

[Asset_Vault]
[content]
[assets] ← The stuff you want to share

[Small_Project #1]
[content]
[assets] ← symbolic link

[Small_Project #2]
[content]
[assets] ← symbolic link

Follow these steps:
1.) Create a folder called “assets” in your “Asset_Library\Content” folder
2.) Open command prompt and navigate to the small project’s “content” folder
3.) Run this command:

mklink /j “assets” “D:\Projects\UE5_Projects\Asset_Library\Content\assets”

mklink (make symbolic link)
/j (make it a junction)
“assets” the name of the new folder in your smaller project(must match)
“D:\Projects\UE5_Projects\Asset_Vault\Content\assets” (location you want to link assets to)

IMPORTANT:

Make sure you put the file path in quotes so it will respect spaces in the file path. Best practice is to develop a naming convention that uses underscores instead of spaces for everything.

Also, make sure the names of the linked folders exactly match, or everything will break when Unreal looks for materials / references.

For example:
Asset_Library\Content\assets
Small_Project\Content\assets

Make sure the engine versions are the same for all projects and asset library.

Be careful with source control like Perforce, as the repository will not respect symbolic links. If prompted to “re-import” new assets after pulling from a repository, decline this action. Otherwise, it will flag old assets as new, causing bloat in the repository.
Either flag out the symbolic links on a push, or delete the links before pushing and use a BAT file to re-create the links when needed.

NOTES:

A symbolic link folder will look like a shortcut, but it does not act the same way. It makes windows think the folder exists somewhere it doesn’t without having to duplicate it.

The junction flag (/j) tells the symbolic link to act like a 2-way street. This means if you modify the assets in the smaller project, it will update the source files from the asset library folder as well. Be careful with this so you don’t modify the assets for all projects.

If you need to modify a library asset for a single smaller project, just duplicate it, and move it to a new folder in the local project and make changes there. Also, best practice is to set all the library assets to read-only and assign a person to oversee any changes to the asset library.

You can create a .BAT file in each small project’s content folder. Simply edit a text file, plug in the command, and save as a .BAT extension. Then, double click the .BAT file to execute the commands.

You can safely delete the symbolic linked folder without removing the source data files it was linked to.

By the way, this works for many other use cases besides Unreal Engine.

Have a look at DASH as well