Я создаю редактор моделей персонажей в Three.js.Пользователи могут индивидуально создавать кости в скелете персонажа.
Я хотел бы добавить масштабирование костей, чтобы создать разные типы телосложения (толстый против худого, высокий против короткого и т. Д.).Когда я масштабирую кость, она отлично работает для этой конкретной кости.Но к дочерним костям, похоже, применяют вращение ДО того, как они масштабируются.Некоторые рисунки для иллюстрации:
Рука без масштабирования
Кость верхней части руки увеличена по оси X. (Также вызывает предплечье и кисть рукимасштабируется вдоль оси X.) Хорошо до этой точки.
Предплечье повернуто на 90 градусов. Вот где проблема проявляется.Я хочу, чтобы рука оставалась длинной и худой, но поскольку вращение происходит раньше, чем весы, оно заканчивается коротким и толстым.
Потенциальные решения - возможны ли они в Three.js?
- Примените масштаб ко всей структуре скелета перед вращением.
- Сделайте так, чтобы дочерние кости не наследовали масштаб от своих родителей.Таким образом, каждая кость может масштабироваться индивидуально, не опасаясь воздействия на кости ребенка.