NegInfinity / ProjectExodus

Project Exodus - Unity to Unreal scene/project transfer tool.
BSD 3-Clause "New" or "Revised" License
497 stars 100 forks source link

ProjectExodus

Currently supported versions:

Currently supported versions are 2018.3 for Unity, and 4.25 for Unreal 4 (Unreal side of the plugin is tested for 3 latest minor versions of Unreal 4, which currently 4.25.0, 4.24.3, 4.23.1. While it is possible that the plugin will compile on earlier version, this is not guaranteed). This file will be updated to indicate whne supported versions change.

Description

"ProjectExodus" is a conversion tool intended to convert individual scenes and whole projects from Unity to Unreal engine. The conversion focus solely on assets, ignoring all the game logic (C#) and limitations apply. The project is available under BSD-3 license, and constists of two plugins - one for unity and one for unreal, and also includes very basic demo scene for unity.

Disclaimer/Warning

This document is subject to change, and due to the project being developed, may be altered on short notice.

Files and Folders

Installation - Unity side

To install exporter plugin into unity project, copy or symlink "ExodusExport" folder into any location within "Assets" folder and wait for scripts to finish compiling. Once compilation is finished the export action would be available in context menu within Hierarchy window, or via MainMenu.

Installation - Unreal side.

Please disregard buttons that are not marked "Import", if such buttons are present. Those are test cases.

Usage

The exporter is accessible either through rightclick within hierarchy view in Unity, OR through "Migrate to UE4" within main menu of unity. Following options are available:

Once you selected desired option, you'll be prompted to pick up an empty location for the "project" fuke and exported data. It is a good idea to select an empty folder without anything else in it. The exported data constists of one "master" file in json format and a folder with similar name. Once project export starts, the plugin will copy and convert relevant data into the destination folder.

On unreal side simply find "Import" button in the tool bar, and select the *.json file you exported with it.

In situation where you exported current scene only, the scene will be exported into current unreal scene and merged with it. However, if your scene contains terrain, it will be imported as a scene file, which will be located at /Import//. When this happens, you'll see a warning, and request to wait till shader compilation is done. Wait till shaders finish compiling, then head to the location of the scene file and open it.

In situation where you exported multiple scenes, the exporter/importer will try to store them within paths similar to those used in unity. Meaning the imported scene content should be under /Import// and then in whatever unity folder path you used.

What's supported and limitations

The plugin will rebuild current scene or scenes, will convert static meshes, and will attempt to convert terrain, landscapes, and skeletal meshes to unreal format. The plugin will also attempt to recreate materials.

Currently following limitations are in place:

Additionally, the file format used for transferring the project is subject to change and should not be used for long term data storage or backup.

Additional contact information:

Bugs can be reported via github project page. Additionally I can be reached through email address: neginfinity000gmail.com

Contacts

The preferred method for submitting bugs is github. However, I can also be reached via an email address: