Так. Поковырялся немного. Собрано на коленке- поэтому плавает. Но путь перспективный.
Сначала результат:
В чем соль:
Кулачок. Сплайн для пути привязки боксов или думми, которые будут привязкой для движения пистона,
Сам кулачок любая геометрия, он ни для чего не нужен, просто вращается. И даммики (у меня боксы) которые path constrant ом запущены в противоход вращению кулачка.
В сумме это дает неподвижный даммик на любом по форме кулачке и НЕ ПРИВЯЗАНО к мировым осям.
Далее. поршень-пистон.
Геометрия цилиндров связана друг с другом через look at для получения постоянной осевой. Конец поршня через link привязан к solver-у IK иерархии. сами кости иерархии подлинкованы к кускам поршня соответственно. solver прилинкован к dummy бегающему по кулачку.
В сумме это дает систему замкнутую на себя, без привязки к миру. Точка выхода это линк solver а к любой фигне.
Как следствие, простой копипастой это множится в любых количествах. а все перерасчеты ключей анимации берут на себя constraint ы и solver ы.
Вот.