Three.js - Как я могу заставить дочерние кости игнорировать родительскую шкалу? - PullRequest
0 голосов
/ 21 сентября 2019

Я создаю редактор моделей персонажей в Three.js.Пользователи могут индивидуально создавать кости в скелете персонажа.

Я хотел бы добавить масштабирование костей, чтобы создать разные типы телосложения (толстый против худого, высокий против короткого и т. Д.).Когда я масштабирую кость, она отлично работает для этой конкретной кости.Но к дочерним костям, похоже, применяют вращение ДО того, как они масштабируются.Некоторые рисунки для иллюстрации:

Рука без масштабирования

Кость верхней части руки увеличена по оси X. (Также вызывает предплечье и кисть рукимасштабируется вдоль оси X.) Хорошо до этой точки.

Предплечье повернуто на 90 градусов. Вот где проблема проявляется.Я хочу, чтобы рука оставалась длинной и худой, но поскольку вращение происходит раньше, чем весы, оно заканчивается коротким и толстым.

Потенциальные решения - возможны ли они в Three.js?

  1. Примените масштаб ко всей структуре скелета перед вращением.
  2. Сделайте так, чтобы дочерние кости не наследовали масштаб от своих родителей.Таким образом, каждая кость может масштабироваться индивидуально, не опасаясь воздействия на кости ребенка.
...