This page has been translated automatically.
Setting Up Materials
Setting Up Properties
Landscape Tool
Extending Editor Functionality
World Nodes
Sound Objects
Pathfinding Objects
Usage Examples
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Content Optimization
Material Nodes Library
Art Samples

Content Migration

You can upgrade content of your project to UNIGINE 2.15 in the automatic or manual mode.

You cannot correctly migrate the project that contains assets with a version higher than the project version.

If your project contains at least one file with a higher version, upgrade to this version will be skipped, as the migration script would consider that the project is already upgraded to that version. Let's review an example case:

  • Your project is v. 2.11.
  • It contains a v. 2.12 node.
  • You plan to upgrade the project to 2.15.

When you start the upgrade process, the following will happen:

  • Upgrading to v. 2.12 is skipped as you have one v. 2.12 node, and the script assumes the whole project is already using this version.
  • Upgrading to v. 2.13 is successful.
  • Upgrading to v. 2.14 is successful.
  • Upgrading to v. 2.15 is successful.

Thus, for a correct migration, follow this recommendation: ensure that the project does not contain assets with a version higher than the project version.

Automatic Upgrade#

Automatic upgrade of the project's content can be performed via UNIGINE SDK Browser.

By default, the automatic mode is used to upgrade only binary executable files and content stored in the project's /data folder. If you have content stored outside the /data folder or in the additional /data folders, you will have to upgrade it manually.

As a result, the binary executable and configuration files, meshes, terrains, worlds, nodes, splines, materials, properties, tracks, settings files will be upgraded to new formats (if any). The <unigine_project>/migration.log.html log file will be opened in the web browser. However, you can uncheck Migrate Content during automatic upgrading and perform content upgrading manually. In this case, only binary executable files will be upgraded.

The migration results depend on the version of UNIGINE SDK, from which you are going to migrate.

Manual Upgrade#

This mode should be used to upgrade content stored outside the project's /data folder (such as mount points).

To upgrade the project's content in the manual mode, do the following:

  1. Put the binary executable <UnigineSDK>/bin/usc_x64.exe to the <UnigineSDK>/utils/upgrade folder that contains the upgrade script.
    Use usc_x64.exe from the SDK version you are migrating to.
  2. In the command prompt, run the upgrade.usc with the required options:
    Shell commands
    usc_x64.exe upgrade.usc path/to/additional_content_1 path/to/additional_content_2 ...
    If you have unchecked Migrate Content during automatic upgrading, add the path to the project's data folder to the list of arguments passed to the upgrade script. For example:
    Shell commands
    usc_x64.exe upgrade.usc <unigine_project>/data path/to/additional_content_1 path/to/additional_content_2 ...
    • path/to/additional_content_* - paths to folders with content stored outside the /data folder.

As a result, you will get your meshes, terrains, worlds, nodes, splines, materials, properties, tracks, configuration and settings files upgraded.

The migration results depend on the version of UNIGINE SDK, from which you are going to migrate.

As soon as migration is completed, run the Editor to have the project assets "indexed".

Custom Base Materials Migration#

If you have custom-made base materials in your project, please read this passage carefully. Material texture declaration has changed with an argument renamed as follows: type -> source (this argument defines the type of the texture's source rather than the type of the texture itself).

Automatic migration in this case is not available. To migrate your custom base materials to 2.15 you should manually replace the type argument with source for every texture node in each custom base material file:

Texture2D screen_texture <type=procedural>
Texture2D screen_texture <source=procedural>

Object Water Global Migration#

Automatic migration doesn't update water. The Global Water object shall be created and customized manually from scratch. You can refer to the previously used settings in the Global Water node and material files — they are still available in the migrated project.

The updated water is not rendered limitlessly by default — if only a small part of water is rendered, check Visibility Distance for both water and camera.

Materials Manual Reparent from mesh_base to Graph#

Here we discuss how to migrate projects with materials inherited from the mesh_base to graph-based materials:

Before you start manual migration we strongly recommend you to make a backup of your projects or use a Version Control System.
  1. You need to reparent a material from the mesh_base to a graph-based material. If the names of parameters in the new base graph material are the same as in the old mesh_base all the values will be set for them automatically. Here is the list of the most common parameters that were used in the default mesh_base material:
    The parameters in your new base graph material must be named exactly like that (including the case) in order for reparent to work properly and keep parameter values.
    1. Common
      1. albedo
      2. albedo_color
      3. metalness
      4. roughness
      5. specular
      6. microfiber
      7. auxiliary
      8. translucent
      9. displacement
      10. tesselation_density_map
      11. ambient_occlusion
      12. diffuse_color
      13. specular_color
      14. gloss
      15. normal_scale
      16. translucent
      17. transparent
      18. transparent_pow
      19. opacity_fresnel
      20. opacity_fresnel_pow
      21. uv_transform
      22. ao_uv_transform
      23. triplanar_blend
      24. mip_bias
    2. Detail
      1. detail_diffuse
      2. detail_albedo
      3. detail_normal
      4. detail_mask
      5. detail_albedo_color
      6. detail_metalness
      7. detail_roughness
      8. detail_specular
      9. detail_microfiber
      10. detail_diffuse_color
      11. detail_specular_color
      12. detail_gloss
      13. detail_uv_transform
      14. detail_triplanar_blend
      15. detail_visible
      16. detail_visible_threshold
      17. detail_albedo_color_visible
      18. detail_metalness_visible
      19. detail_roughness_visible
      20. detail_specular_visible
      21. detail_microfiber_visible
      22. detail_diffuse_color_visible
      23. detail_specular_color_visible
      24. detail_gloss_visible
      25. detail_normal_visible
      26. detail_mask_uv_transform
      27. detail_mask_triplanar_blend
      28. detail_angle_fade
      29. detail_angle_fade_threshold
    3. Emission
      1. emission_color
      2. emission_scale
      3. emission_uv_transform
      4. emission_triplanar_blend
    4. Bevel
      1. bevel_scale
      2. bevel_uv_transform
      3. bevel_triplanar_blend
    5. Curvature
      1. curvature_scale_cavity
      2. curvature_scale_convexity
      3. curvature_uv_transform
    6. Parallax
      1. parallax_scale
      2. parallax_min_layers
      3. parallax_max_layers
      4. parallax_noise
      5. parallax_cutout_uv_transform
    7. Tessellation
      1. tessellation_smoothness
      2. tessellation_scale
      3. tessellation_vector_scale
      4. tessellation_mid_point
      5. tessellation_texture_exp
      6. tessellation_shadow_offset
      7. tessellation_factor
      8. tessellation_density
      9. tessellation_shadow_factor
      10. tessellation_shadow_density
      11. tessellation_distance_falloff_near
      12. tessellation_distance_falloff_far
      13. tessellation_distance_falloff_exp
      14. tessellation_distance_falloff_max_mip
      15. tessellation_culling_near
      16. tessellation_culling_back_face
      17. tessellation_culling_screen_border
      18. tessellation_shadow_culling_back_face
      19. tessellation_shadow_culling_screen_border
    8. Refraction
      1. refraction_ior
      2. refraction_ray_length
      3. refraction_normal_map
    9. Noise 2D
      1. noise_2d_scale
      2. noise_2d_uv_transform
    10. Noise 3D
      1. noise_3d_scale
      2. noise_3d_transform
    11. Planar Reflection
      1. reflection_viewport_mask
      2. reflection_distance
      3. reflection_distance_scale
      4. reflection_pivot_rotation
      5. reflection_pivot_offset
  2. For the manual reparent of materials inherited from mesh_base to materials inherited from a material graph use the reparent feature in the Materials window of UnigineEditor. To reparent select the material(s) inherited from the mesh_base in the hierarchy and drag it with the left mouse button pressed to the desired graph-based material. The alternative way to reparent materials is via the Ctrl+P hotkey (first selected materials wll be reparented to the last one selected before the hotkey was pressed).

After reparenting the old materials are deleted and the new ones are created in place of them. Now you can freely rename the parameters in the newly reparented graph materials.

If you want to make some metarial inherited from mesh_base into a unique graph material at the top level of hierarchy, you must reparent it to some graph base material and then in the context menu (available on the right mouse click) select Convert To Unique Graph.

In this case, the material will be turned into a default template material and won't preserve previous parameters and any logic. We are working on a smart conversion which must be available later.

Migration of Projects Based on IG Template#

The location of assets used in IG Template has changed:

%PROJECT%/data/ig %PROJECT%/ig_data/

When you migrate a project based on IG Template, a new folder with all the IG Template content is added automatically. However the old one won't be deleted because you might store extra data there. Please take care of these data, if any, and delete the /data/ig folder manually. Keeping this folder in the migrated project will cause errors and asset conflicts.

After migration, copy all modified and custom assets from /data/ig and delete this folder.

Migration of Projects Generated in Sandworm#

Successful automatic migration requires your Sandworm project to be located in the /data folder. If your Sandworm project is outside this folder, move it there or migrate manually.

Slots and Objects, which emerged in the latest release, will be created automatically during the migration, however, they will have autogenerated names. You can rename them manually for your convenience.

Buildings also migrate automatically: Tag becomes Slot and Floor Number TagFloor Attributes.

However, keep in mind that only the Sandworm project is migrated: already generated content, including materials and roofs, remains unchanged. If you want to update the exterior of autogenerated buildings, you need to regenerate the project.

Any items having identical names will be merged into one item (object, slot, layer, filter, etc.)

If you have any unused filters in your project, which are not assigned to any object and therefore don't participate in the project generation process, they will not migrate to the new project and will be deleted.

Compression should be enabled manually for Landscape Terrain, if required.

Last update: 2022-01-21
Build: ()