shown in other instead.
CPP SIM Samples
You should upgrade to
This demo contains a set of samples addressing the specific needs.
This set of samples demonstrates how to create ropes using an arbitrary set of points and joints between them. This approach can be used to create any kind of rope or even a net consisting of a number of ropes, a wire, or a primitive cloth.
You can use the sample ropes as a basis for your specific task by configuring their parameters as required.
Indices for segments are generated randomly to avoid a linear accumulation of error in joints.
This sample demonstrates how to imitate a crane with sling ropes transferring an object. The scene contains the manipulator with the ropes connected to it. Ropes are also connected to the load, which has BodyRigid assigned. The connection points are set via AttachPoint.
You can move the load around the scene by dragging the manipulator with the mouse, and make it interact with the wall also available in the scene.
Physics is simulated at 120 fps with 10 iterations to adjust the distance between points.
The physics update for the load is adjusted by impulses to ensure proper interaction with the environment.
This sample illustrates how to create wires. You can change the wire diameter value and move the plane also available in the scene to make the wires swing.
Simulating wires doesn't require a big number of physics iterations and fps, as they don't move across the scene, only swing.
This sample illustrates the implementation of message exchange with a server through an SSL connection.
It contains two windows: one representing the server, and the other one — the client.
To exchange messages, you need to run the server first (click the Run button in the Server window), then connect the client (use the Connect button in the Client window). Then you can type messages in the message areas and click Send.
This sample showcases a new High-Level Car Physics System. To learn more on using the system to create your own wheeled vehicle simulation please refer to this article.
- Setting engine's power and resistance curves, as well as idle speed (RPM).
- Gearbox simulation (manual and automatic) enabling you to adjust throttle and speed values for shifting gears along with transition time, as well as to set the number of gears and configure gear ratios.
- Mathematical wheel model for more realistic steering, enabling simulation of forces affecting the rotating wheel, along with an ability to adjust suspension travel distance, spring, and damping values.
- Easy setup of steering and driving axes along with capability to turn the differential lock on and off.
- Switching between different views (driver's view, external camera, etc.).
- Simulation of various surface conditions (such as dry, wet, snow-covered, or icy road, mud, and so on).
- A set of debug windows displaying information on all vehicle parameters in real time.
Fine-Tuning the Wheel Joystick#
If you use a wheel device, you might need to readjust the demo settings to control the vehicle properly.
- Run the demo and press F3 to visualize the axes.
- Check the controls status — which axis each control corresponds to.
- If the controls mismatch, open the demo project in UnigineEditor to reconfigure them. Find the joystick_input node, it has the car_joystick_input property assigned. Adjust the Joystick Axis parameter where required.
Accessing Demo Source Code#
You can study and modify the source code of this demo to create your own projects. To access the source code do the following:
- Find the CPP SIM Samples demo in the Demos section and click Install (if you haven't installed it yet).
- After successful installation the demo will appear in the Installed section, and you can click Copy as Project to create a project based on this demo.
- In the Create New Project window, that opens, enter the name for your new project in the corresponding field and click Create New Project.
- Now you can click Open Code IDE to check and modify source code in your default IDE, or click Open Editor to open the project in the UnigineEditor.