UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
FAQ
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes

Migrating to Unigine from Unreal Engine

This section gives a brief overview of UNIGINE from an Unreal Engine user's perspective and provides basic information to help you transfer your Unreal Engine experience to UNIGINE.

Editor Interface#

Below you can see interfaces of the Unreal Editor and UnigineEditor. Interface elements in the images are color-coded to indicate common functionality. Each element has a label to show UNIGINE's equivalent. The layout of UnigineEditor is fully customizable by resizing, dragging and dropping the tabbed windows.

Unreal and Unigine Editor UI Comparison (click to enlarge)

Unreal and Unigine Editor UI Comparison

To learn more about the UnigineEditor interface, read this article.

Scene#

The concept of the Scene in both engines is the same. However, Unreal Engine and UNIGINE use different coordinate systems.

Unreal EngineUNIGINE

Unreal Engine Coordinate System (left-handed)

UE uses a left-handed coordinate system where the vertical direction is usually represented by the +Z axis.

Axes and Directions:

  • X — forwards (+), backwards (-)
  • Y — right (+), left (-)
  • Z — up (+), down (-)

Positive rotation angle sets the rotation clockwise.

File format: *.umap

UNIGINE Coordinate System (right-handed)

UNIGINE uses a right-handed coordinate system where the vertical direction is usually represented by the +Z axis.

Axes and Directions:

  • X — right (+), left (-)
  • Y — forwards (+), backwards (-)
  • Z — up (+), down (-)

Positive rotation angle sets the rotation counterclockwise.

File format: *.world

Loading a Scene#

  • In UE you would use:
    Source code
    UGameplayStatics::OpenLevel(GetWorld(), TEXT("MyLevelName"));
  • In UNIGINE you should use:
    Source code (C++)
    Console::get()->run("world_load MyLevelName");

Scene Objects#

This section gives a brief description of basic scene objects in both engines as well as their basic similarities and differences.

Unreal EngineUNIGINE

Basic scene object — Actor.

It is the base object that can be placed in or spawned into the world.

The Actor's position, rotation and scale are stored in a USceneComponent, which the Actor does not contain by default.

Components add functionality to the Actor.

Actors can be organized into a hierarchy (parent-child relation).

Programmers can inherit from the default UActorComponent to create their own component.

Node is a basic type from which all types of scene objects are inherited. Some of them appear visually: Objects, Decals, and Effects — they all have surfaces to represent their geometry (mesh), while others (Light Sources, Players, etc.) are invisible.

Basic functionality of a node is determined by its type. Additional functionality can be added using properties and the custom component system.

Each node has a transformation matrix, which encodes its position, rotation, and scale in the world.

Nodes can be organized into a hierarchy (parent-child relation).

Notice
All scene objects added to the scene regardless of their type are called nodes.

Quick Glossary#

This chapter matches common Unreal Engine terms on the left and their UNIGINE equivalents (or rough equivalent) on the right. UNIGINE keywords are linked directly to related articles to provide you with more in-depth information.

CategoryUnreal EngineUNIGINE
Editor UIWorld Outliner World Hierarchy window
Details PanelParameters window
Content BrowserAsset Browser window
ViewportScene Viewport
SceneLevelWorld
Gameplay TypesActor, Pawn Node
Blueprint ClassNodeReference + Component System
MeshesStatic MeshStatic Mesh, Dynamic Mesh
Skeletal MeshSkinned Mesh
EffectsEffect, Particle, Cascade Particle System
Game UIUMG (Unreal Motion Graphics)GUI
MaterialsMaterial, Material EditorBase Material
Material InstanceUser Material
ProgrammingC++C++ / C#
BlueprintUnigineScript
PhysicsLine TracegetIntersection
Primitive ComponentRigid Body
CollisionShape
Physics ConstraintJoint
AnimationTimelineTracker

Projects and Files#

Directories and Files#

A project in UNIGINE, just like a UE project, is stored in its own folder, project settings are stored in the *.project file. There are various subfolders inside the project's folder, where your content and source files as well as various configuration files and binaries are stored. The most important are the data and source sub-folders.

In UNIGINE, each project has a data folder. Similar to a UE project's Content folder, this is where your project's assets are stored. To import assets into your project, simply drop files into your project's data directory and they will be automatically imported and appear in the Asset Browser. The assets in the editor will update automatically as you make changes to the files using an external program.

Bringing Your Assets from UE#

Meshes

You can import assets you used in UE to Unigine: export your mesh as an FBX model and import it to Unigine checking the required import options depending on the model.

Materials

Similar to other engines, Unigine works with PBR materials. Moreover, Unigine supports both Metalness and Specular workflows and has a rich out-of-the-box library of materials that can be used to create almost any material. Therefore, materials created for the model in Unity can be re-created in Unigine using mesh_base material, the base material in Unigine used for physically based materials.

Textures

Textures can be imported as a part of a model or separately and then applied to a mesh. To import textures, you might have to do some adjustments in advance. For example, the shading texture in Unigine stores the metalness, roughness, specular, and microfiber maps in its corresponding channels, so you need to modify the texture using third-party software, such as GIMP or Photoshop, and then import it to Unigine.

Normal texture used in UE is compatible with Unigine, therefore you can import your normal textures to Unigine without any changes.

Animations

If you want to import an animated model, export it from UE as an FBX file and enable the Import Animations option during the import to Unigine. You will also have additional options to finetune the import.

For more details, see import recommendations.

Supported File Types#

UNIGINE, like UE, supports the most commonly used file types.

Project Assembly#

In UE you got used to assembling your projects via the editor. In UNIGINE all projects are managed via the specialized tool called SDK Browser.

To learn more about creating a release build of your project, please follow the link below:

Key Concepts#

Game Logic#

Game logic in a UE project is implemented via Blueprint Classes or C++ Classes. You got used to determine Actor's behavior by writing event functions like BeginPlay(), Tick(), etc.

UNIGINE has quite a similar concept. Each component has a set of functions (init(), update(), etc.), that are called by the corresponding functions of the Engine's main loop. Thus, you implement logic by writing your code inside the init(), update(), etc. In UNIGINE, you can do it either for each component individually, like in UE, or for the whole application.

To learn more about the execution sequence and how to build components, please follow the links below:

Blueprint Classes#

The workflow in UE is based on Blueprint Classes. It is usual for you to build a complex object (Actor) from components, select it, and click the Blueprint / Add Script button (in the Details panel). Then you choose a place to save your Blueprint Class and click Create Blueprint to save your new Blueprint Class.

UNIGINE's workflow is based on using Node References and Custom Component System. This couple is very similar to Blueprint Classes. In order to make a complex object to be instanced in your world, you just build the desired hierarchy from nodes, assign materials and properties to them, and save it as a Node Reference. Logic is implemented via the Custom Component System and added to nodes by simply assigning corresponging propecties. Then you can use this node reference as many times as necessary.

To learn more about creating Node References and managing them please follow the link below:

Last update: 2019-04-04