This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Materials and Shaders
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

RagDoll Body

RagDoll body enables inverse kinematics and procedural animation of a death sequence for bone-animated characters. This type of body is actually a set of Rigid bodies representing each bone of a character linked together by joints. These joints restrict movement of the bones relative to each other, providing realistic look.RagDoll body включает обратная кинематика и процедурная анимация сцены смерти для оживленный костью символы. Этот тип тела на самом деле представляет собой набор Твердые тела представляющие каждую кость персонажа, соединенную суставами. Эти суставы ограничивают движение костей относительно друг друга, обеспечивая реалистичный вид.

Примечание
RagDoll body can be assigned only to Mesh Skinned objects.RagDoll body можно присвоить только объектам Mesh Skinned.

RagDoll animation

RagDoll animationRagDoll анимация

See alsoСмотрите также#

Assigning a RagDoll BodyНазначение тела тряпичной куклы#

To assign a RagDoll body to an object via UnigineEditor perform the following steps:Чтобы присвоить объекту RagDoll body через UnigineEditor выполните следующие действия:

  1. Open the World Hierarchy window.Откройте окно World Hierarchy.
  2. Select a Mesh Skinned object to assign a RagDoll body to.Выберите Сетка со шкурой объект, которому нужно присвоить RagDoll body.
  3. Go to the Physics tab in the Parameters window and assign a physical body to the selected object by selecting Body -> RagDoll.Перейдите на вкладку Physics в окне Parameters и назначьте физический тело к выбранному объекту, выбрав Body -> RagDoll.

    Adding a body

  4. Set the body name and refer to the next section to create a RagDoll.Задайте имя тела и обратитесь к следующему разделу, чтобы создать RagDoll.

Creating a Physical RagDollСоздание физической тряпичной куклы#

There are two ways of creating a RagDoll:Есть два способа создать RagDoll:

After the body is assigned to the Mesh Skinned, the first step is to create a Rigid body that will represent each bone in physical simulation.После того, как тело будет присвоено Mesh Skinned, первым шагом будет создание Rigid body, который будет представлять каждую кость в физической симуляции.

For now, all the bones are free, meaning there is no Rigid body associated with them. To automatically generate a RagDoll, i.e. rigid bodies and approximating shapes along with joints to connect them, Create button should be clicked.На данный момент все кости свободны , то есть с ними не связан Rigid body. Чтобы автоматически генерировать RagDoll, т.е. твердые тела и аппроксимирующие формы вместе с соединениями для их соединения, необходимо нажать кнопку Create.

Примечание
For proper automatic RagDoll generation the mesh should be in the Reference Pose (T-pose for human-like characters). If animation has been already applied to the mesh, apply an animation with the static Reference Pose.Для правильной автоматической генерации RagDoll сетка должна находиться в эталонной позе (T-поза для персонажей, похожих на людей). Если анимация уже была применена к сетке, примените анимацию со статической опорной позой.

Automatic generation is performed on the basis of the following parameters:Автоматическая генерация выполняется по следующим параметрам:

Approximation ShapeФорма приближения#

Bones can be approximated either with Convex hull or Capsule, if Capsule shape box is checked:Кости можно аппроксимировать с помощью Convex hull или Capsule, если установлен флажок Capsule shape:

  • Capsule provides very fast physics simulation and continuous collision detection.Capsule обеспечивает очень быстрое физическое моделирование и постоянное обнаружение столкновений.
  • Convex hull provides more accurate approximation.Convex hull обеспечивает более точное приближение.

If any other shape is required, approximation is to be done manually.Если требуется какая-либо другая форма, необходимо выполнить аппроксимацию. вручную .

Approximation with capsules and convex hulls

Approximation with capsules and convex hullsАппроксимация капсулами и выпуклыми оболочками
Примечание
Remember that physical shapes need not reproduce the mesh precisely. Rough approximation provides physical interaction that is realistic and convincing enough.Помните, что физические формы не обязательно должны точно воспроизводить сетку. Грубое приближение обеспечивает реалистичное и достаточно убедительное физическое взаимодействие.

Total MassОбщая масса#

Total mass of the RagDoll will be automatically distributed among all the shapes that approximate bones. By distribution, the volume that the shape occupies is taken into account. If the mass is changed afterwards, all the shapes masses are recomputed. And the opposite way, if shape mass is changed, the total mass is modified correspondingly.Общее масса RagDoll будет автоматически распределен между всеми формами, приближающимися к костям. При распределении учитывается объем, который занимает фигура. Если впоследствии масса изменится, массы всех фигур пересчитываются. И наоборот, при изменении массы формы соответственно изменяется и общая масса.

Approximation ErrorОшибка приближения#

If convex hulls are used to approximate bones, the result may contain too much detail for collision geometry. As a rule, it is unnecessary, because a highly detailed shape does not provide noticeable visual difference while significantly affecting performance. Approximation error makes it possible to control the number of vertices in the resulting convex hull:Если для аппроксимации костей используются выпуклые оболочки , результат может содержать слишком много деталей для геометрии столкновения. Как правило, в этом нет необходимости, потому что высокодетализированная форма не обеспечивает заметной визуальной разницы, но существенно влияет на производительность. Ошибка аппроксимации позволяет контролировать количество вершин в получившейся выпуклой оболочке:

  • The lower the value, the more accurate and close to the mesh approximated shape is.Чем ниже значение, тем точнее и приближается форма к сетке.
  • The maximum value of 1 provides quite rough approximation that may not cover all the mesh volume.Максимальное значение 1 обеспечивает довольно грубое приближение, которое может не покрывать весь объем сетки.

If a character is approximated with capsules, low value of approximation error provides more precise shape orientation.Если символ аппроксимируется капсулами , меньшее значение ошибки аппроксимации обеспечивает более точную ориентацию формы.

Volume ThresholdПорог громкости#

When creating a RagDoll, small bones (like finger bones, for example) are rarely simulated. They are too insignificant to change the motion of the whole object, as their mass and volume is not sufficient for that. Volume threshold allows to merge all small adjacent bones, the volume of which is too small, into one shape:При создании RagDoll малые кости (например, кости пальцев) моделируются редко. Они слишком незначительны, чтобы изменить движение всего объекта, так как их масса и объем недостаточны для этого. Порог объема позволяет объединить все мелкие соседние кости, объем которых слишком мал, в одну форму:

  • By the minimum value of 0, all the bones without exception are represented in rigid bodies and hence shapes.При минимальном значении 0 все кости без исключения представлены твердыми телами и, следовательно, формами.
  • By the maximum value of 1, approximation shapes are big and follow only the major bones. Small bones are included in this volume, but their individual transformations are not considered in physical simulation.При максимальном значении 1 формы аппроксимации большие и следуют только за основными костями. В этот том включены маленькие кости, но их индивидуальные преобразования не учитываются при физическом моделировании.
Minimum volume threshold     Maximum volume threshold
Volume threshold defines whether all bones up to the smallest one should be simulated separately or merged into bigger shapesПорог объема определяет, должны ли все кости вплоть до самой маленькой, моделироваться отдельно или объединяться в более крупные формы.

 

Body Hierarchy for BonesИерархия тела для костей#

After a RagDoll has been created, all the bones that are represented in rigid bodies and shapes and specify their movement are marked as bound in the hierarchy. All the small bones not participating in physical body movement, stay marked as free. If automatically generated shapes are too loose, they can be tuned manually till approximation is satisfying enough.После создания RagDoll все кости, представленные в твердых телах и формах и определяющие их движение, помечаются как связанные в иерархии. Все мелкие кости, не участвующие в движении физического тела, остаются свободными . Если автоматически сгенерированные формы слишком рыхлые, их можно настроить вручную до тех пор, пока приближение не станет достаточно удовлетворительным.

Hierarchy of bodies and shapes that approximate bones can be saved into a .node and loaded from one. The set hierarchy can as well be removed from the RagDoll body and created anew.Иерархию тел и форм, которые приблизительно соответствуют костям, можно сохранить в .node и загрузить из него. Установленную иерархию также можно удалить из RagDoll body и создать заново.

Hierarchy of rigid bodies that represent bones

Manual Creation of a RagDollРучное создание тряпичной куклы#

It is also possible to create a RagDoll manually. In this case arbitrary shapes can be used to approximate bones of a RagDoll body. To create a RagDoll manually follow these steps:Также возможно создать RagDoll вручную. В этом случае можно использовать произвольные формы для аппроксимации костей RagDoll body. Чтобы создать RagDoll вручную, выполните следующие действия:

  1. Create a Node Dummy that will be a parent node for future RagDoll hierarchy.Создайте Node Dummy, который будет родительским узлом для будущей иерархии RagDoll.
  2. Add a Dummy Object and make it a child node. Assign a Rigid body to it and name the body after the bone it will represent. After that, approximate the bone with any necessary shape.Добавьте Dummy Object и сделайте его дочерним узлом. Присвойте ему Rigid body и назовите тело в честь кости, которую оно будет представлять. После этого аппроксимируйте кость любой необходимой формы.
  3. Create all Rigid bodies and shapes for the RagDoll bones. Hierarchy is of no importance, only names of the bodies do.Создайте все тела и формы Rigid для костей RagDoll. Иерархия не имеет значения, важны только названия тел.
  4. Export the parent node into the .node file.Экспортируйте родительский узел в файл .node.
  5. Select the character and load this file for its RagDoll body.Выберите символ и загрузите этот файл для его RagDoll body.
  6. Add and set up joints that connect rigid bodies within the RagDoll.Добавьте и настройте суставы, которые соединяют твердые тела в пределах RagDoll.

Enabling RagDoll AnimationВключение анимации RagDoll#

When the character hits some obstacle or, for example, he is shot and dies, it is necessary to turn off bone-based animation playback and simulate the character realistically falling according to the physical laws. When the Frame-based box is unchecked, RagDoll body is no longer driven by the bone transformations. It collapses according to Rigid body dynamics (masses of all rigid bodies, that represent parts of a RagDoll, velocity damping, etc.), joint constraints and Rigidity of motion.Когда персонаж сталкивается с каким-либо препятствием или, например, в него стреляют и он умирает, необходимо отключить воспроизведение анимации на основе костей и имитировать реалистичное падение персонажа в соответствии с физическими законами. Когда флажок Frame-based снят, RagDoll body больше не управляется преобразованиями костей. Он рушится согласно Rigid body динамика ( массы всех твердых тел, которые представляют собой части RagDoll, демпфирование скорости и т. д.), совместные ограничения и Жесткость движения.

Примечание
Enabling RagDoll animation influences only those bones that were physically approximated. For example, small bones that were discarded due to volume threshold, will still move. To prevent this from happening, mesh animation should be stopped explicitly.Включение анимации RagDoll влияет только на те кости, которые были физически аппроксимированы. Например, мелкие кости, которые были выброшены из-за порог громкости , по-прежнему будет двигаться. Чтобы этого не произошло, анимация сетки должна быть остановился явно.

Rigidity of MovementЖесткость движения#

The Rigidity parameter allows to additionally constrain the motion of a RagDoll. It determines how uniform the motion of RagDoll parts is. To achieve that, both linear and angular velocities of each separate rigid body are corrected according to the total velocities interpolated from all the bodies.Параметр Rigidity позволяет дополнительно ограничивать движение RagDoll. Он определяет, насколько равномерно движение частей RagDoll. Для этого как линейные, так и угловые скорости каждого отдельного твердого тела корректируются в соответствии с полными скоростями, интерполированными для всех тел.

  • By the minimum value of 0, all RagDoll parts represented in rigid bodies move independently and unrestricted (of course, except for joint constrains). This gives an impression of loose and floppy movement.При минимальном значении 0 все части RagDoll, представленные в твердых телах, перемещаются независимо и неограниченно (конечно, за исключением ограничений суставов). Это создает впечатление свободного и неустойчивого движения.
  • By the maximum value of 1, RagDoll parts move in a uniform and stiff manner, which may seem over-constrained.При максимальном значении 1 части RagDoll перемещаются равномерно и жестко, что может показаться чрезмерно ограниченным.

Combined Animation and Inverse KinematicsКомбинированная анимация и обратная кинематика#

The problem with pre-backed animation is that it does not offer proper environmental interaction. For example, when walking up or down the hill, character's feet do not land firmly on terrain. Or as it climbs the ladder, the hands have to tightly grab the rungs. This effect is achieved with combined animation: motion animation is played for the basic bones, while smaller bones (feet or hands, for example) are simulated physically.Проблема с предварительно созданной анимацией заключается в том, что она не обеспечивает должного взаимодействия с окружающей средой. Например, при подъеме или спуске с холма ноги персонажа не приземляются твердо на местности. Или, когда он поднимается по лестнице, руки должны крепко держаться за ступеньки. Этот эффект достигается с помощью комбинированной анимации: анимация движения воспроизводится для основных костей, в то время как меньшие кости (например, ноги или руки) моделируются физически.

Frame-based animation can be disabled for each of the rigid bodies that approximate bones. Instead of following specific bone transformation, rigid body sags loose under its own weight and connects to collider objects underneath it.Покадровую анимацию можно отключить для каждого твердого тела, которое приближается к костям. Вместо того, чтобы следовать определенному преобразованию костей, твердое тело провисает под собственным весом и соединяется с объектами-коллайдерами под ним.

For instance, physically-driven motion of the leg requires disabling bone animation of the whole limb: thigh, calf, and foot. Inverse kinematics allows to properly position the chain of bones given the position of the lowest bone in the hierarchy, the foot. So when the character walks or runs, his foot collides with the ground, while the knee bends and straightens according to the joint constrain.Например, физически управляемое движение ноги требует отключения костной анимации всей конечности: бедра, голени и стопы. Обратная кинематика позволяет правильно позиционировать цепочку костей с учетом положения самой нижней кости в иерархии - стопы. Поэтому, когда персонаж ходит или бежит, его ступня сталкивается с землей, а колено сгибается и выпрямляется в соответствии с ограничением сустава.

Inverse Kinematics

With inverse kinematics feet of the characters are tightly glued to the floor no matter how tilted the surface isПри обратной кинематике ноги персонажей плотно приклеиваются к полу независимо от того, насколько наклонена поверхность.
Последнее обновление: 10.03.2022
Build: ()