Rotation Modes – Режими Обертання
Blender дозволяє вам визначати обертання кількома способами. Кожен з них має ряд переваг та недоліків; немає найкращого режиму обертання, оскільки кожен з них є підхожим для конкретних випадків.
В усіх цих режимах додатні значення кутів означають напрямок обертання проти годинникової стрілки, тоді як від’ємні значення визначають обертання за годинниковою стрілкою.
Хоча ви можете обертати елементи, використовуючи глобальні або локальні орієнтації трансформ, ці осі не підхожі для визначення обертань, оскільки ефект від кожної з них не може бути ізольованим для інших двох.
Візьмемо, наприклад, будь-які три значення по X, Y та Z для обертання. Здійснимо кожне з них, використовуючи глобальні або локальні осі. Залежно від порядку, в якому ви здійснюєте їх, ви отримаєте різні фінальні орієнтації. Тож необхідні належні системи координат для обертання.
Euler Modes – Режими Ейлера
Система осей, що використовується для обертання за Euler, є так званим ейлерівським карданом Euler gimbal. Кардан – це особливий набір з трьох осей. Особливість цього полягає в тому, що осі мають ієрархічне відношення між собою: одна з осей є на верху цієї ієрархії, і має одну з інших двох осей безпосереднім нащадком; водночас, ця нащадкова вісь є предком для третьої осі, тієї, що в самому низу ієрархії.
Яка вісь на верху, яка посередині та яка на низу, залежить від конкретного Euler gimbal: їх існує шість типів, оскільки існує шість можливих комбінацій: XYZ, XZY, YXZ, YZX, ZXY та ZYX – режими обертання за Ейлером. Ці режими названі з використанням літер осей за порядком, починаючи з осі, що на низу ієрархії, та закінчуючи тією, що на верху.
Головна проблема цих систем виникає, коли вони втрачають їх відносну перпендикулярність. І це трапляється, коли вісь посередині обертається, спричиняючи те, що вісь на низу обертається з нею. Це погіршується, коли ця вісь на низу наближається до 90° (або еквівалентних кутів). У такому випадку вона залишається вирівняною з віссю на верху ієрархії. У такий момент ми просто втрачаємо одну з осей обертання. Це може спричиняти переривчасті інтерполяції при анімуванні. Ця особлива втрата осі відома як «блокування кардана» – «gimbal lock».
Підказка
Фактичну конфігурацію осей кардана можна бачити в оглядвікні 3D Viewport, увімкнувши для об’єкта гізмо оберту Rotate та установивши його як кардан Gimbal (за допомогою кнопки гізмо в заголовку). Водночас, режим обертання повинен бути установлений в будь-який з режимів Ейлера для активного об’єкта.
Тепер ви можете здійснити обертання навколо осі посередині (наприклад, у режимі XYZ Euler це є вісь Y), і бачити, як легко зрештою мати кардан лише з двома осями. У певному випадку режиму XYZ Euler з блокуванням кардана, обертання навколо осі X буде мати такий же ефект, як обертання навколо осі Z, що означає, що на практиці жодних обертань навколо осі X не здійснюється.
Однією з переваг цього режиму є те, що криві анімації легко розуміти та редагувати. Проте, особливу увагу слід звернути, коли вісь посередині наближається до значень, близьких до 90° (або еквівалентних кутів).
Axis Angle Mode – Режим Кута Осі
Цей режим дозволяє вам визначати вісь (X, Y, Z) та кут обертання (W) навколо цієї осі.
Якщо ми визначаємо обертання, використовуючи інтерактивні обертання (за допомогою гізмо обертання), то значення X, Y та Z не будуть перевершувати 1.0 в абсолютному значенні, а W будуть вміщатися між 0 та 180 градусами.
Якщо ви бажаєте визначити обертання вище 180° (наприклад, для визначення кількох оборотів), то вам буде потрібно редагувати це значення W напряму, але як тільки ви здійсните інтерактивне обертання, то це значення буде наладнане знову. Те саме стосується значень осей.
Ця система підхожа для елементів, що обертаються навколо фіксованої осі, або для анімування одного з елементів за раз (осі або кута). Проблема може виникнути при анімуванні (інтерполювання) обох компонентів одночасно: осі та кута. Результатний ефект може бути не таким, як очікувалося.
Гізмо Gimbal у цьому режимі обертання показує набір трьох ортогональних осей, в якому вісь Z проходить уздовж визначеної осі обертання, тобто вона вказує у напрямку, визначеною (X, Y, Z) спрямуванням.
Система вісь-кут є вільною від блокування кардана, але криві анімації у цьому режимі не є інтуїтивними взагалі при анімуванні осі та кута одночасно, і в цьому випадку вони є важкими для розуміння та редагування.
Quaternion Mode – Режим Кватерніонів
У цьому режимі обертання також визначаються чотирма значеннями (X, Y, Z та W). X, Y та Z також визначають вісь, а W – кут, але він робить це зовсім інакше, ніж вісь-кут. Важливим тут є відношення між усіма чотирма значеннями.
Для опису цього інтуїтивно візьмімо ефект координати X: він робить обертання елемента навколо осі X до 180 градусів. Те саме стосується Y та Z. Ефект для W полягає в униканні цих обертань та залишенні елемента з нульовим обертанням. Фінальна орієнтація є комбінацією цих чотирьох ефектів.
Оскільки відношення між компонентами є таким, що визначає фінальну орієнтацію, множення або ділення всіх чотирьох чисел на постійне значення призведе до того ж обертання.
Цей режим ідеально підходить для інтерполювання між будь-якою парою орієнтацій. Він не страждає від блокування кардана або будь-якого небажаного ефекту інтерполяції. Єдиним недоліком є те, що ви не можете інтерполювати між двома орієнтаціями, які знаходяться на відстані більше ніж 180°, оскільки анімація пройде найкоротший шлях між ними. Таким чином, для анімування обертового елемента ви повинні встановити багато проміжних ключкадрів, щонайбільше на 180° один від одного.
Гізмо Gimbal у цьому режимі є еквівалентом режиму Local, і не має жодного спеціального значення.
Криві анімації в цьому режимі не є інтуїтивними, тому їх також важко розуміти та редагувати.
More about Quaternions – Більше про Кватерніони
Ця секція не є дуже корисною для 3D митців, але може бути підхожою для допитливого або науковця.
Кватерніони є системою чисел, що розширює комплексні числа. Вони представляють чотирикомпонентний вектор, чиї компоненти називаються, у Blender’і, X, Y, Z та W. При інтерактивному обертанні у режимі кватерніонів так звана норма (довжина) кватерніона буде залишатися постійною. За визначенням, норма кватерніона дорівнює 1.0 (це нормалізований кватерніон). Коли ви вибираєте режим кватерніонів у Blender, то компоненти XYZW описують нормалізований кватерніон.
Примітка
Норма кватерніона q визначається математично як:
Проте, якщо один з компонентів кватерніона блокується під час інтерактивної трансформації за допомогою належної кнопки блокування, то ця норма не буде залишатися беззмінною, оскільки цей блокований компонент не буде могли наладнуватися для зберігання об’єднаної норми.
Підказка
Інтерактивні обертання за допомогою гізмо не змінюють норму поточного кватерніона. Редагуючи одиничний компонент XYZW індивідуально, ви можете змінити норму. Щоб зробити норму знову як 1.0, ви можете перемкнутися на будь-який режим обертання та повернутися знову у кватерніон.
Компоненти обертання кватерніона зберігають тісний зв’язок з компонентами системи вісь-кут. Щоб знайти відповідність, перш за все ми повинні мати справу з нормалізованою версією кватерніона, тобто такою, норма якої дорівнює 1.0. Щоб нормалізувати кватерніон, просто поділіть кожен його компонент на його норму. Як ми бачили раніше, ділення всіх чотирьох значень на одне і те ж число дає однакову орієнтацію.
Як тільки ми розрахували компоненти нормалізованого кватерніона, то відношення з компонентами вісь-кут є таким:
X, Y та Z означають точно такі самі, як у вісь-кут: вони просто визначають вісь, навколо якої відбувається обертання.
W може використовуватися для відновлення фактичного обертання навколо визначеного кута. Застосовується наступна формула (за умови, що кватерніон є нормалізованим): \(W = \cos(\frac{a}{2})\), де a є фактично кутом обертання, який ми шукаємо. Тобто: \(a = 2 \arccos{W}\).
Other Considerations – Інші Міркування
У режимах вісь-кут та кватерніонів ми можемо блокувати обертання в інтерактивних режимах на основі кожного компонента, замість того, що робити це за віссю. Для цього ми можемо активувати здатність блокування за допомогою кнопок блокування поруч з відповідними кнопками трансформи обертання Rotation.
Стосовно анімацій обертання, то всі ключкадри повинні бути визначені в одному і тому ж режимі обертання, який повинен бути вибраним режимом обертання для об’єкта по всій анімації.