Он-па, матих!
Запоминайте вот такую штуку на будущее:
Если приспичило считать дот-продукт между ротациями, а перед этим была заюзана интерполяция, имеем в виду:
qA = Quaternion.Lerp ( qA, qB, factor)Здесь, если factor != 1 (а нахрена ему быть == 1?), то в результате лерповой цепочки qA поменяет свои компоненты на противоположные. То бишь,
qA.x = -qA.x и так далее.
Соответственно, Dot этих кватернионов, при их параллельности и однонаправленности даст
-1Если же вы хотите сохранить компоненты кватерниона и получить верный дот == 1 следует использовать формулу:
qA = Quaternion.Lerp ( qB, qA, (1-factor))Возможно, все про это знают со времен, когда сосали мамину сиську, но вот мне помог с этим разобраться "физический" программист, причем советом "а чо будет, если поменять местами?"