Переход на UNIGINE с Unity: физика
While Unity software provides two physics engines: Physics and Physics2D, UNIGINE's built-in Physics module works only in 3 dimensions.В то время как программное обеспечение Unity предоставляет два физических движка: Physics и Physics2D, встроенный в UNIGINE модуль физики работает только в 3-х измерениях.
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.Чтобы отключить симуляцию и сбросить состояние всех объектов, управляемых физикой, снимите флажок, и мир вернется в свое ранее сохраненное состояние.
Rigid BodiesТвердые тела#
The Unity Rigidbody component is responsible for physical behaviour for GameObject.Компонент Unity Rigidbody отвечает за физическое поведение GameObject.
In UNIGINE, some Object types are capable of being physics-driven. 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 некоторые типы объектов могут управляться физикой. На вкладке Physics окна Parameters вы можете назначить Физическое тело к объекту, который можно считать физическим приближением к реальным объектам. Один из них - Rigid Body, моделирующий наиболее часто используемую динамику твердого тела .
Global Physics settings, such as the global gravity vector and quality, are available in the Settings window compared to the Unity Physics section of the Project Settings:Глобальные настройки физики , такие как глобальный вектор гравитации и качество, доступны в окне Settings по сравнению с разделом Unity Physics в настройках проекта :
Colliders / ShapesКоллайдеры / формы (shapes)#
Collision Shapes in UNIGINE play the part of Unity Collider components, shapes are configured in the Shapes section. Here's the list of shape types compared to the Collider components:Коллизионные формы (shapes) в UNIGINE играют роль компонентов Unity Collider, формы настраиваются в секции Shapes. Вот список типов форм по сравнению с компонентами Collider:
Unity software | UNIGINE |
---|---|
Box Collider | Box |
Sphere Collider | Sphere |
Capsule Collider | Capsule |
— | Cylinder |
Mesh Collider | Convex |
Wheel Collider | implemented as the Wheel Jointреализован как Wheel Joint |
Terrain Collider | not provided, collisions are handled by the Terrain object itselfне предусмотрено, коллизии обрабатываются самим объектом Terrain object itself |
The same way as you create Compound Collider in Unity Editor, you can combine several shapes to define a more complex collision shape in UNIGINE:Так же, как вы создаете Compound Collider в редакторе Unity, вы можете комбинировать несколько форм для определения более сложной коллизионной формы (shape) в UNIGINE:
Colliders are also often used as triggers in Unity scripting.Коллайдеры также часто используются в качестве триггеров в сценарии Unity.
Static ColliderStatic Collider (статический коллайдер)#
In Unity software, you would create GameObject that has Collider but no RigidBody to create a non-moving collider.В программном обеспечении Unity вы должны создать GameObject с Collider, но без RigidBody, чтобы создать неподвижный коллайдер.
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 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 an ObjectMeshStatic) provide static collisions, just enable the Collision flag for it:Чтобы поверхность сетки (например, ObjectMeshStatic) обеспечивала статические коллизии, просто включите для нее флаг 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 (динамический коллайдер)#
In terms of Unity software, this is GameObject with Collider and a normal Ridigbody attached. Rigidbody collider is fully physics-driven and subject to collision and forces applied to it (either by other objects or from script).С точки зрения программного обеспечения Unity, это GameObject с прикрепленным Collider и обычным Ridigbody. Коллайдер Rigidbody полностью управляется физикой и подвержен столкновениям и силам, приложенным к нему (либо другими объектами, либо из скрипта).
To create such a collider object in UNIGINE, you assign 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). In Unity software, such objects are created by enabling the IsKinematic property of the Rigidbody component.Kinematic Collider - это термин для объекта, который управляется логикой, но влияет на другие физические объекты в сцене (например, персонаж или дверь). В программном обеспечении Unity такие объекты создаются путем включения свойства IsKinematic компонента Rigidbody.
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. При перемещении (например, из кода) такой объект действует как кинематический коллайдер и влияет на объекты, управляемые физикой.
Layer-Based Collision DetectionОбнаружение столкновений на уровне слоев#
In Unity Editor, layer-based collision detection is defined by configuring the Collision Matrix in the Physics category of the Project Settings:В редакторе Unity обнаружение столкновений на основе слоев определяется путем настройки матрицы столкновений в категории Physics в настройках проекта :
In UNIGINE, selective collision detection is controlled via 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:Подробнее читайте в специальной статье:
JointsJoints (сочленения)#
As well as Unity software, UNIGINE provides support for Joints to connect physically-driven objects and restrict their movement relative to each other. Here is a list of Unity Joint components compared to the joint types available in UNIGINE:Помимо программного обеспечения Unity, UNIGINE поддерживает Сочленения для соединения физических объектов и ограничения их движения относительно друг друга. Вот список компонентов Unity Joint по сравнению с типами соединений, доступными в UNIGINE:
Unity software | UNIGINE |
---|---|
Character Joint | Ball Joint |
Configurable Joint | — |
Fixed Joint | Fixed Joint |
Hinge Joint | Hinge Joint |
Spring Joint | Prismatic Joint, Cylindrical Joint |
implemented as Wheel Colliderреализовано как Wheel Collider | Wheel Joint, Suspension Joint |
— | Path Joint |
implemented as Cloth Constraints in the Cloth componentреализован как Cloth Constraints в компоненте Cloth | Particles Joint |
RagdollRagdoll#
Unity Editor has a simple wizard that lets you create a ragdoll by automatically generating all Colliders, Rigidbodies and Joints.В редакторе Unity есть простой мастер, который позволяет вам создавать тряпичную куклу, автоматически генерируя все Colliders, Rigidbodies и Joints.
In UNIGINE, Ragdoll is a special type of body used to simulate ragdoll dynamics. It operates on rigid bodies, shapes and joints to simulate limbs of an arbitrary skinned model. Ragdoll creation is available only for Skinned Mesh.В UNIGINE Ragdoll - это особый тип тела, используемый для имитации динамики тряпичной куклы. Он работает с твердыми телами, формами и суставами для имитации конечностей произвольной модели со скинами. Создание рэгдолла доступно только для Skinned Mesh.
To switch between a bone-based animation and ragdoll simulation, use the Frame-based animation feature.Чтобы переключаться между анимацией на основе костей и симуляцией тряпичной куклы, используйте функцию Frame-based animation.
Physic MaterialsPhysic Materials#
Unity Physic Materials contain a set of physical parameters used to adjust friction and bouncing effects of colliding objects.Unity Physic 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 |
Character ControllerCharacter Controller (контроллер персонажа)#
In Unity software, Character Controller is mainly used for simplified simulation of a third-person or a first-person player dynamics without making use of Rigidbody physics. A Capsule Collider is used in collisions.В программном обеспечении Unity Character Controller в основном используется для упрощенного моделирования динамики игрока от третьего или от первого лица без использования физики Rigidbody. При столкновениях используется Capsule Collider.
UNIGINE provides collision detection for players as well. You can enable the Collision flag for Spectator, Persecutor and Actor players, the latter is a counterpart of Unity Character Controller, its shape is also approximated by a capsule collider. With collisions enabled a player acts like both dynamic and kinematic object: it is controlled from script, affects dynamic colliders and can be blocked by static colliders at the same time.UNIGINE обеспечивает обнаружение столкновений для игроки также. Вы можете включить флаг Collision для игроков Spectator, Persecutor и Actor, последний является аналогом Unity Character Controller, его форма также аппроксимируется коллайдером капсулы. При включенных столкновениях игрок действует как динамический и кинематический объект: он управляется из сценария, влияет на динамические коллайдеры и может быть заблокирован статическими коллайдерами одновременно.
Constant ForceПостоянная сила#
Unity Constant Force component is a quick utility providing a force constantly applied to a GameObject. It contains force and torque vector in relative and world coordinates.Компонент Unity Constant Force - это быстрая утилита, обеспечивающая постоянное применение силы к GameObject. Он содержит вектор силы и крутящего момента в относительных и мировых координатах.
In UNIGINE, you can use Physicals. These are objects inside of which there is an invisible force field affecting physics-driven objects. The Physical Wind is capable of applying a constant directed force to an object.В UNIGINE вы можете использовать объекты Physicsals . Это объекты, внутри которых существует невидимое силовое поле, действующее на объекты, управляемые физикой. Physical Wind способен прикладывать к объекту постоянную направленную силу.