Мега Інформатик Теорія та практика 3D-ігор - Побудова ігрової сцени
Продовжуємо серію уроків, присвячених розробці гри Delphi DirectX.
У цьому уроці розповідається про особливості створення анімації простими трансформаціями об'єктів придатною для експорту в DirectX8 та DirectX9-додаток.

Перше що спадає на думку, це просто взяти об'єкти коліс і обертати їх у часі навколо своєї осі. Здавалося б – все просто. Але виявляється, що при цьому, оскільки моделі коліс створені на основі циліндрів (примітив Cylinder) повернених на 90 градусів навколо осі Y, то спроба обертати отримані колеса навколо осі X призводить до складного повороту, що поєднує зміну початкової орієнтації. Іншими словами, потрібну трансформацію створити не вдається.
Крім того, якщо Ви спробуєте експортувати навіть статичну модель цього авто в такому вигляді - кузов і 4 колеса, то колеса чомусь виявляться зовсім не на своїх місцях. Це стосується як експорту експортером DXExport DX9, так і PandaDX для 3Ds Max 7. Крім того, у додатку DX8 анімацію можна коректно використовуватитільки при експорті PandaDX!
Рішення виявляється тривіально простим, якщо використовувати так звані Dummy-об'єкти і побудувати з них ієрархію.
Що таке Dummy?
Це порожній бокс, що не відмальовується, який може грати роль центру трансформацій, а також служити сполучною ланкою в ієрархії об'єктів.
У 3ds Max 7 даний об'єкт знаходиться в панелі Create у групі Helpers -

Як застосувати отриманий об'єкт на вирішення поставленої задачи?
Потрібно створити 1 великий бокс з Dummy-об'єкта та розмістити його по центру кузова авто.
створити об'єкт Dummy, відмасштабувати до потрібного розміру, вирівняти центром щодо кузова (Align).
Далі потрібно створити менший Dummy та вирівняти щодо одного з коліс.
Тепер потрібно здійснити прив'язку (установити ієрархічний зв'язок) міша даного колеса до цього малого Dummy - wheel_Dummy. Це виконується вибором об'єкта колеса (wheel), натисканням на кнопку Select And Link і протягуванням пунктирної лінії зв'язку до батьківського об'єкта wheel_Dummy поки він не буде виділено білим. Після цього wheel_Dummy стає батьківським об'єктом для wheel та обертаючи wheel_Dummy навколо осі X можна отримати необхідне обертання колеса. Коли Ви це зробите - тобто. запишете анімацію обертання даного wheel_Dummy протягом необхідної кількості кадрів, Вам залишається тільки клонувати даний wheel_Dummy ще 3 рази, розмістити копії щодо 3-х коліс, що залишилися, і здійснити прив'язку цих коліс до відповідних їм Dummy-об'єктів.
В результаті всі 4 колеса обертатимуться однаково.
Тепер Вам залишається тільки виконати прив'язку кузова авто до великого Dummy-об'єкту - base_Dummy, і до нього прив'язати Dummy-об'єкти для всіх 4-х коліс.
В результаті у Вас вийде наступна ієрархія об'єктів – GraphEditors > New Schematic View
