Updating the scene when changes occur
Regardless if you use CAD or BIM software or rely on DCC systems, chances are that the models need to be updated to reflect changes in the design. Traditional visualization systems often fully import models and convert them in a system specific internal model, which is edited and adapted in a project. However, in such systems, you need to redo all these changes when you have to replace a model with a new, updated version. Since you cannot reasonably assume that a model is completely finalized before any game authoring starts, a more efficient workflow is in order. Like many game authoring systems, Unity is not modeling software, but relies on external software, such as Autodesk 3ds Max or Maxon CINEMA 4D. It is, however, possible to add modeling functionality to Unity using third-party plug-ins, such as ProBuilder available at http://www.probuilder3d.com or GameDraw available at http://gamedraw.mixeddimensions.com.
When you load models inside Unity, they are handled by an internal importer module. Like most 3D systems, you can tweak the import with a number of settings. However, in Unity these settings are maintained as part of the imported model's properties and a reference to the original file is kept. Whenever that file is updated, for example by exporting the model again, using the same file name, Unity recognizes this and reloads the file, applying the same import settings again. This is a very important behavior of the Unity pipeline, as you can see that all models that have already been placed inside the different scenes of a project are placed on exactly the same position, at the same scale and using the same geometry conversion. This also allows you to tweak the import, for example, by altering the import settings and re-importing the model even if it has already been placed in scenes of the project.
The following screenshot displays an ArchiCAD model inside Unity:
Unity goes a step further when you use one of the directly supported DCC modeling systems, such as 3ds Max, Maya, or CINEMA 4D. If you save your native model directly inside the project's Assets
folder, Unity automatically imports the model, or so it seems. Actually, Unity calls the original application in the background to request an export to the FBX format.
If you have such a supported modeling application and it is installed on the same machine as Unity, making changes can be really straightforward as shown:
- Double click the model icon inside Unity. The native model gets loaded inside the DCC software, ready for you to make changes.
- When you have finished editing, simply save the file and close the DCC software.
- When you switch back to Unity, after a few moments, the converted
FBX
model is reloaded automatically in the background.
For the user, it just looks like there is only a single model that Unity can import when changes occur. This same process also works fine with for example, Photoshop PSD
files, where no conversion is required.
When using SketchUp or ArchiCAD or other 3D modeling software that is not directly recognized by Unity, the process is a little more complicated:
- Double click the model icon inside Unity to launch the authoring software.
- When you are ready with editing, you need to export the model manually. Export the file to
FBX
or another supported format and overwrite the previous version in the Unity project'sAssets
folder. - When you switch back to Unity, the model is replaced with the new version.
Tip
If you need to set up the conversion configuration each time (for example, when the software does not remember export settings), take care of noting which configuration was used last time. For example, how the model is organized, how textures are treated,and if a possible transformation occurs. Once you have a conversion configuration that works, take a note of all the export settings and be wary of applying them again at the next export action.
Optimally supported workflows
While we would prefer to claim that any modeling software is equally usable, two combinations are worth mentioning specifically and they are based on using software from the same vendor in both cases.
When using CAD or BIM software from Autodesk, it helps to pass through DCC software that is also provided by Autodesk. AutoCAD or Revit models are best passed through 3ds Max or Maya before converting to FBX
into Unity. This is especially important to reflect model changes. AutoCAD models are usually passed as DWG
files to Max or Maya. Set up correct material properties and texture mapping and either save the file directly inside the Assets
folder (to have Unity call up the translation in the background) or export to FBX
into the Assets
folder. The former is slightly more convenient, but the latter gives you full control and is usually the preferred choice for experienced users.
This is equally true when using software from Nemetschek (or one of its daughter companies). ArchiCAD and VectorWorks models are best passed through CINEMA 4D, before converting to Unity, for exactly the same reason. The Exchange plug-ins for ArchiCAD and VectorWorks optimizes the model exchange with CINEMA 4D and automates model updates. You can set up materials and textures and still refine the model in the original creation software. CINEMA 4D models can be placed directly inside the Assets
folder.
As always with interoperability through add-ons, success depends on particular software versions and supported platforms and the fact that a software update of one application can break compatibility with the other one. Alas, this is beyond our control.
You can also be confronted with permission problems. When you use the automatic conversion process, Unity copies an FBX
exporter module in the supported application's add-on folder, which requires administrative permissions. On Windows, you have to launch Unity as an administrator at least once to have this process completed.
With both the Autodesk and Nemetschek applications workflow, you can reload the architectural model, while preserving applied materials, mapping, or animations, and consequently reload the FBX
model inside Unity while preserving the additional settings over there. The following screenshot gives an example of an ArchiCAD model that is exported to CINEMA 4D and loaded inside Unity:
Based on reactions in user forums on Unity (for example, the Unity Community at http://forum.unity3d.com/forum.php) or one of the related DCC software programs, many people actually suggest ignoring the automatic conversion and leaving the native models (for example, MAX
or C4D
files) outside of the Assets
folder. They would rather perform the conversion manually. This allows more control, for example by splitting the model up in smaller chunks, so they are easier to manipulate inside Unity. This is also required when you collaborate with others and not everyone has the Unity or modeling software available on their machine. In that case, the artist responsible for the 3D model can work on a provided FBX
, while the designer responsible for the building model can continue working, and export the model when updates need to be integrated.
The following figure summarizes several workflows that are known to work well for architectural visualization. Bold arrows are the recommended pathways for optimal integration.