Переход на UNIGINE с Unreal Engine: физика
The physics system in Unreal Engine is powered by the PhysX 3.3 physics engine, UNIGINE uses its own built-in Physics module.Физическая система в Unreal Engine работает на физическом движке PhysX 3.3, UNIGINE использует собственный встроенный модуль физики.
In UNIGINE, physics simulation can be enabled both when you enter Play mode and right in the editor. Click the Physics toggle in the top toolbar (if the button is greyed out, toggle Animation on via the button next to it):В UNIGINE моделирование физики можно включить как при входе в режим Play, так и прямо в редакторе. Нажмите переключатель Physics на верхней панели инструментов (если кнопка неактивна, включите Animation с помощью кнопки рядом с ней):
To disable simulation and reset the state of all physics-driven objects, uncheck the toggle and the world will return to its previously saved state.Чтобы отключить симуляцию и сбросить состояние всех объектов, управляемых физикой, снимите флажок, и мир вернется в свое ранее сохраненное состояние.
Enabling CollisionsВключение коллизий#
In UE4, any PrimitiveComponent (ShapeComponent, StaticMeshComponent, SkeletalMeshComponent, etc.) can be a physical object. Unreal Engine combines the concepts of the potentially physical and the potentially visible into PrimitiveComponent.В UE4 любой PrimitiveComponent (ShapeComponent, StaticMeshComponent, SkeletalMeshComponent и т.д.) может быть физическим объектом. Unreal Engine объединяет концепции потенциально физического и потенциально видимого в PrimitiveComponent.
In UNIGINE, the concepts for physics-driven object and visible geometry are separated. Some object types are capable of being physics-driven (e.g. Static Mesh, Skinned Mesh, Water Mesh, etc.). In the Physics tab of the Parameters window you can assign a Physical Body to an object, which can be considered physical approximations of real-life objects. One of them is Rigid Body simulating the most commonly used rigid body dynamics.В UNIGINE понятия физического объекта и видимой геометрии разделены. Некоторые типы объектов могут управляться физикой (например, Static Mesh, Skinned Mesh, Water Mesh и т.д.). На вкладке Physics окна Parameters вы можете назначить объекту физическое тело, которое можно считать физическим приближением к реальным объектам. Один из них - Rigid Body, моделирующий наиболее часто используемую динамику твердого тела .
Global Physics settings, such as the global gravity vector and quality, are available in the Settings window:Глобальные настройки физики , такие как глобальный вектор гравитации и качество, доступны в окне Settings:
Collisions / ShapesКоллизии / формы (shapes)#
Collision Shapes in UNIGINE play the part of Collisions in UE4, shapes are assigned to a physical body in the Shapes section. Here's the list of shape types compared to the UE4 Collisions:Коллизионные формы (shapes) в UNIGINE играет роль Collisions в UE4, формы назначаются физическому телу в секции Shapes. Вот список типов форм по сравнению с UE4 Collisions:
Unreal Engine | UNIGINE |
---|---|
Box Simplified Collision | Box |
Sphere Simplified Collision | Sphere |
Capsule Simplified Collision | Capsule |
— | Cylinder |
Auto Convex Collision | Convex Hull |
You can combine several shapes to define a more complex collision shape in UNIGINE:Вы можете комбинировать несколько форм, чтобы определить более сложную коллизионную форму в UNIGINE:
Static ColliderStatic Collider (статический коллайдер)#
UNIGINE features two types of collisions, you can apply any option to make an object to be static collider:В UNIGINE есть два типа столкновений , вы можете использовать любой вариант, чтобы сделать объект статическим коллайдером:
-
Shape-Shape collision — between two objects with physical properties assigned (i.e. between their shapes).Shape-Shape столкновение - между двумя объектами с назначенными физическими свойствами (т.е. между их формами).
To create a static collider perform the following:Чтобы создать статический коллайдер, выполните следующие действия:
- Assign a Dummy Body to the node.Назначьте узлу Dummy Body.
- Add collision shapes.Добавьте коллизионные формы (shapes).
-
Shape-Surface collision — between an object with physical properties assigned and a non-physical object (i.e. between a shape and a mesh surface).Shape-Surface столкновение - между объектом с назначенными физическими свойствами и нефизическим объектом (то есть между формой и поверхностью сетки).
To make a mesh surface (e.g. of Static Mesh) provide static collisions, just enable the Collision flag for it:Чтобы поверхность сетки (например, Static Mesh) обеспечивала статические коллизии, просто включите для нее флаг Collision:
Thus, you can really quickly enable collisions with the scene geometry, however, this method may be more performance consuming than the other one, especially if the world contains a large number of polygons.Таким образом, вы можете действительно быстро включить коллизии с геометрией сцены, однако этот метод может потреблять больше производительности, чем другой, особенно если мир содержит большое количество полигонов.
Dynamic (Rigidbody) ColliderDynamic (Rigidbody) Collider (динамический коллайдер)#
To create such a physics-driven collider object in UNIGINE, you assign a Rigid Body to it and create the required set of Shapes to define its collision geometry.Чтобы создать такой управляемый физикой объект-коллайдер в UNIGINE, вы назначаете ему Rigid Body и создаете требуемый набор форм (shapes) чтобы определить его коллизионную геометрию.
Kinematic ColliderKinematic Collider (кинематический коллайдер)#
Kinematic Collider is the term for an object that is logic-driven but affects other physically based objects in the scene (for example, a character or a door).Kinematic Collider - это термин для объекта, который управляется логикой, но влияет на другие физические объекты в сцене (например, персонаж или дверь).
In UNIGINE, you should use an object surface with the Collision flag enabled to provide Shape-Surface collisions. When being moved (e.g. from code), such an object acts as a kinematic collider and influences physics-driven objects.В UNIGINE вы должны использовать поверхность объекта с включенным флагом Collision для обеспечения коллизий Shape-Surface. При перемещении (например, из кода) такой объект действует как кинематический коллайдер и влияет на объекты, управляемые физикой.
Collision ChannelsКоллизионные каналы#
In UE4, channel-based collision detection is defined by configuring the Collision Responses and Trace Responses settings:В UE4 обнаружение столкновений на основе канала определяется настройкой параметров Collision Responses и Trace Responses:
In UNIGINE, selective collision detection is controlled by the Collision mask of both shapes and surfaces depending on the type of collision detection used:В UNIGINE выборочное обнаружение столкновений управляется маской Collision как форм, так и поверхностей в зависимости от используемого типа обнаружения столкновения:
Shape Collision Mask |
Surface Collision Mask |
Two objects will collide only if their Collision masks match (one bit at least).Два объекта будут сталкиваться, только если их маски Collision совпадают (хотя бы один бит).
For more details proceed to the dedicated article:Подробнее читайте в специальной статье:
ConstraintsConstraints (ограничения)#
Unreal Engine Constraints are represented by Joints in UNIGINE. Joints are used to connect physically-driven objects and restrict their movement relative to each other. While in UE4 you configure constraints by pairing the Stable Mesh and the Constrained Mesh components, UNIGINE provides a set of joint types useful in different tasks:Ограничения (constraints) Unreal Engine в UNIGINE представлены сочленениями (joints). Сочленения используются для соединения физически управляемых объектов и ограничения их движения относительно друг друга. В то время как в UE4 вы настраиваете ограничения, объединяя компоненты Stable Mesh и Constrained Mesh, UNIGINE предоставляет набор типов соединений, полезных в различных задачах:
RagdollRagdoll#
Skeletal Mesh в Unreal Engine, для имитации ragdoll может использовать физически-управляемую анимацию, для чего необходимо настроить и применить к нему Physics Asset.
В UNIGINE Ragdoll - это особый тип тела, используемый для имитации динамики тряпичной куклы. Он работает с твердыми телами, формами (shapes) и сочленениями (joints), чтобы моделировать конечности произвольной модели со скинами. Создание рэгдолла доступно только для Skinned Mesh.
Чтобы переключаться между анимацией на основе костей и симуляцией ragdoll, используйте функционал Frame-based animation.
Physical MaterialsФизические материалы#
UE4 uses Physical Materials to specify a set of physical parameters, such as friction and bouncing effects of colliding objects.UE4 использует Physical Materials для определения набора физических параметров, таких как эффекты трения и отскока сталкивающихся объектов.
In UNIGINE, the Friction and Restitution parameters are available for shapes and surfaces and taken into account depending on the type of collision detection used:В UNIGINE параметры Friction и Restitution доступны для формы (shape) а также поверхности (surface) и учитывается в зависимости от используемого типа обнаружения столкновения:
Shape Collision Mask |
Surface Collision Mask |
VehiclesТранспортные средства#
In UE4, the Wheeled Vehicle Blueprint class covers the creation of vehicles.В UE4 класс Wheeled Vehicle Blueprint охватывает создание транспортных средств.
In UNIGINE, wheeled vehicles can be created either manually by using the Wheel Joint or by using the High-Level Car Physics system based on C++ components.В UNIGINE колесная техника может быть создана либо вручную с помощью Wheel Joint, либо с помощью Высокоуровневой системы физики автомобилей на основе компонентов C ++.