City Traffic System, New File Dialog and Node Export Plugin
Introducing City Traffic
We have a lot of customers developing driving-based application for different purposes. For example, UNIGINE-powered car simulators from INNOSIMULATION (South Korea) are used by driving schools in 20 countries worldwide.
So, we have decided to help our customers and have created City Traffic System, an expandable system that allows you to visualize real city traffic, filled with AI-controlled vehicles and pedestrians, which follow the traffic regulations.
Driving Simulator has the following features:
Road Network with Support for Different Configurations
- Multiple lanes.
- Two-way and one-way roads.
- Arbitrary crossroads (T-shaped intersections, roundabouts, etc.).
- Multi-level roads.
- Speed limit zones.
- Overtaking prohibition zones.
- Priority signs.
- Configurable traffic lights.
- Configurable motor, gearbox and drivetrain.
- Configurable suspension and wheels.
- Arbitrary number of axles (cars, trucks, special vehicles).
- Light signals.
- Can be either AI-driven, or human-controlled.
- Expandable API.
- Detects lanes and movement direction.
- Follows the driving regulation at crossroads and during passing.
- Obeys the signal lights.
- Avoids obstacles.
- Obeys the speed limits.
- Keeps the average speed of the traffic.
- Uses the turn signals.
- Predicts movement of the human-controlled cars.
- Expandable API.
Traffic Management System
- Simulation performance control for cars and pedestrians.
- Automatic distribution of AI-controlled cars.
- Animated motion.
- Follows the rules when crossing streets.
Driving Simulator supports control by keyboard, mouse and joysticks.
There is a demo of 1200x1200 meters of urban blocks with dense traffic based on the system: data/demos/driving.
New File Dialog
We updated file dialog interface in UnigineEditor, so navigation and file operations became much easier. Now it provides the following functionality:
- Adding bookmarks by dragging folders from a file list (or Ctrl+T on the selected folder).
- Renaming (F2 hotkey) and removal (Delete hotkey) of files, folders and bookmarks.
- Creation of new folders.
- Upper navigation panel with buttons for fast and convenient navigation.
- Fast jump to the required directory by specifying full path in the "Name" field and pressing the Enter button.
- Images preview.
- Access to the operating system file browser.
Introducing Node Export Plugin
Node Export is UnigineEditor plugin designed for exporting assets (nodes, meshes, textures, materials, properties, etc.) from one project to another.
The plugin provides the following functionality:
- Copying the node with all of its dependencies (e.g. NodeReferences, NodeLayers, etc.).
- Replacing of paths inside nodes, materials and properties.
- Appending the exported materials and properties into existing materials' libraries.
To load the Node Export plugin, open the Tools -> Plugins tab in UnigineEditor, press the Core button and choose the tools/node_export.cpp.
California Trees Pack
Cool vegetation library has been extanded with the following California plants in high quality (ready-to use, with several LODs set up):
- blue_oak - a blue oak
- buckbrush - a buckbrush
- douglas_fir - a Douglas fir
- foothill_pine - a foothill pine
- manzanita - a manzanita
The Node Export plugin, mentioned above, will be of much help while importing these assets. A library can be found in the data/library/vegetation directory.
- Added a wait argument for the system() function of OS class. It specifies if the program should wait for completion of command execution (for Windows versions only).
- Added a set_mtime() File System function. It sets the time of the last modification of a given file or directory.
- Added an engine.filesystem.setMTime() function. It sets the time of the file last modification.
- Updated an engine.world.saveNodes() function: added an int materials argument, specifying if nodes should be saved with the materials assigned.
- Added new WidgetDialog class functions:
- A getCloseButton(). It returns the button that closes an action.
- A getCloseText(). It returns a caption of the close button.
- A getResult(). It returns a value indicating which button has been clicked.
- An isCloseClicked(). It returns a value indicating if the Close button is clicked.
- A setCloseText(). It sets a caption of the close button.
- Fixed undo mode while editing NodeReference.
- Fixed object handler: when camera goes far from the object, the handler will be seen.
- Fixed copying of material and properties in the Surface tab.
- Fixed .world file version on saving.
- Added FPS limits to Video Grabber.
- Fixed Performance Profiler: it works correctly after video grabbing.
- Fixed decals pivot: it works correctly after pressing the Project button.
- Fixed position and direction display for the camera.
- Added an Importing Large Populated Areas with City Import Plugin article.
- Added a Making Environment Look Realistic with Randomizer Plugin article.
- Added a Driving Simulator section.
- Updated an Unigine::Syncker section.
- Added a Creating C++ Application article.
- Updated Stereo Rendering article.
- Added new articles on UnigineScript samples: dynamic_*, particles_02/03/04/05, mesh_01/02.
- Added a Protecting Your Data with a Password article.
- Updated articles in the C++ Usage Examples section.
- Updated a Terrain Grabber article.