https://github.com/dcfapixels/unity-animator_and_joints_adapter
A script for combining the work of animations and joints.
https://github.com/dcfapixels/unity-animator_and_joints_adapter
unity
Last synced: 2 months ago
JSON representation
A script for combining the work of animations and joints.
- Host: GitHub
- URL: https://github.com/dcfapixels/unity-animator_and_joints_adapter
- Owner: DCFApixels
- License: mit
- Created: 2022-08-05T18:08:47.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-06T16:31:28.000Z (almost 3 years ago)
- Last Synced: 2025-02-02T10:13:48.543Z (4 months ago)
- Topics: unity
- Language: C#
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Unity-Animator_and_Joints_Adapter
A script for combining the work of animations and joints.Небольшой скрипт решающий проблему сочетания анимаций и Joint-ов. Проект содержит демо-сцену и основной скрипт CopyTransform.cs (В свой проект достаточно скопировать только этот скрипт)

Принцип работы заключается в том, чтобы для анимаций создать копию скелета с Animator, а с основного скелета для каждой кости повторять состояние Transform с аналогичных костей из копии, далее в основном скелете настроить Configurable Joint-ы. Скрипт CopyTransform.cs отвечает за такое повторение. Если вместе с CopyTransform на обекте висит Configurable Joint то он будет идентично повторять localPosition и localScale, а поворот будет происходит через joint, если нет Configurable Joint, то будет повторять и localRotation.
Для удобства скрипт содержит в себе генератор. Что бы сгенерировать копию, выберете нужный объект в иерархии(можно несколько), после чего кликните по "GameObject/Generate Animator-Joins" или через ПКМ кликните по "Generate Animator-Joins". Алгоритм найдет подходящий GameObject содержащий Animator и сделает его копию с привязками, а Animator перенесет на копию.

Если выбранный GameObject не содержит Animator, то алгоритм сначала попытается его найти в цепочке родителей, если не найдет, то попытается найти среди потомков, если среди потомков будет только один Animator то генерация копии будет для этого GameObject. В противном случае выдаст ошибку.
Скрипт CopyTransform работает как в режиме воспроизведения, так и в режиме редактирования, но в режиме редактирования не работают Joint-ы, поэтому анимации можно создавать в режиме редактирования, основной скелет будет повторять движения скелета с аниматором.