Долгое время перебирал разные методы по анимации железнодорожных составов, но что-то получалось все либо слишком условно, либо просто некорректно, или слишком муторно по настройке и вот сегодня закончил основной принцип, который меня полностью устраивает для моих задач по экстерьерке, надеюсь этот материал будет кому то полезен.
Для начала вот тестовая анимация самого рига, вагоны и тележки ведут себя очень корректно и на поворотных участках и на уклонах, колеса с рельс не соскакивают.
а теперь подробно расскажу, как заригил, все делается через простейшие wire формулы и Animation Constraints, самое главное - грамотная компоновка вспомогательных объектов
и на картинках ниже показано, как должны располагаться пивоты вспомогательных объектов
а теперь сама схема иерархии вспомогательных объектов
-Красные стрелочки - цепляются дамми расположенные по осям колесных пар к сплайну через path Constraints с обязательным включением галки follow и banking, чтоб в случае боковых уклонов пути не было глюков.
-Синие - дамми цепляются друг к другу по цепочке через wire parameters по формуле percent+число, это число находится на глаз, и оно одинаково, это расстояние между осями на пути, сначала находится значение для осей между колесными парами в тележке, потом расстояние между второй и третьей осью вагона, и находится расстояние между последней осью первого вагона и первой осью второго, все это копируется для удобства в блокнот, а потом независимо от числа вогонов копипастой для соответствующих отрезков в wire.
-Зеленые - дамми тележки привязывается через position Constraints к одной из осей, его пивот должен быть на конце, этим концом собственно и будет привязка а ко второй оси он привязывается через Look-at constraints и в настройках надо снять галку с world в select upnode и выбрать тут дамии на который look-at, иначе на уклоне дамми тележки будет по Z флипаться
-Белыми - дамии на которые опирается кузов привязываются к осям через position constraints, их ориентация не имеет значения, т.к. от них нужен только пивот по центру тележек для привязки кузова.
-Черными - дамми кузова привязывается к дамми одного из центров тележек через Position Constraints, у дамми кузова пивот должен быть на одном из концов, ко второму дамми привязывается через Look-at constraints, там с local upnode все тоже самое снимается галка world, но выбрать надо в качестве upnode дамми тележки, а не центра.
Ну а сама геометрия тележек и вагонов просто линкуется к соответствующим дамми, за исключением того, что саму геометрию колесных пар надо линковать к геометрии тележек, а не к даммикам осей колесных пар, поскольку они не должны поворачиваться, они жестко фиксируются на тележках.
ПС: если что-то непонятно, то задавайте вопросы
ППС: дополнениям к методу буду только рад