I am working with a number of external contractors to produce materials for us for unreal. A central source control has been very difficult to manage with a bunch of contractors. We also don’t want to use material formats that aren’t native to unreal to transfer our materials.
What is the best way to ensure that the materials a contractor sends are self-contained and can be automatically imported into our system?
Without using a central source control, you will have difficulty with anything automatic. Likely you will want to use branches and Github, Perforce, or another version control system that allows branching. Otherwise, you can have your contractors submit the materials inside of entire projects and migrate them into your central file upon arrival.
Could try mapping your Local Project to Cloud Storage like Google Drive. Then share Access to Material Folder Online with Contractors in which they upload directly to the Project.
What kind of materials are they creating for you? Tiling materials like a wallpaper or materials for assets, like for a piece of furniture?
Tiling materials are relatively easy to manage as you wouldn’t ask 3 people for the same stainless-steel material. You probably just need the textures for those and use a master material in house.
Asset materials are more difficult to manage as you may end up with many materials that are only marginal different. Like 5 versions of oak wood materials that are all 4k and eat away your texture pool.
It’s an organizational problem. You would need a library structure and having everyone to stick to it. From my experience that is an almost impossible tasks with assets created by outsourcers. We had a dedicated person who would send out asset requests and then receive them and put them in the right places.
Personally, I would keep as much as possible in house. Otherwise, you end up with a lot of mediocre duplicate assets that are not reusable in the next project. At least that happened in the company I worked in, which relied heavily on outsourcing. It affected quality in a bad way and often it took longer to fix things than having them built properly in house.
It’s more difficult in Unreal than let’s say in pure 3ds max scenes where many assets are one time use only. In Unreal you’ll need to think more about reusability because it takes longer to make a good asset.
Sorry, that doesn’t answer your question. I just wanted to share my experience.
Amazing answers! Here is a proposed solution I have, any issues anyone foresees here?
create folder named UNIQUE_NAME under the Content folder
manually drag each material instance at the same time to that folder and select ‘Advanced Copy Here’
Go through each arrow and ensure that every asset under each arrow is checked.
Save Project
Right click on Content folder and select “Fix Up Redirectors”
Right click on our folder and select “Migrate”. Ensure that there are no assets that have a check mark that are not inside of our folder. If there are, restart the entire process. Press ok.
Click the Content Folder of another project
Find the folder in the Content folder of the other project. Zip this.
Send it to us.
On our end, we import the unzipped folder into our project and rebuild the project. In theory, all the dependencies should be self-contained in this folder and all relative to the content directory.