Мега информатика Теория и практика на 3D игрите - Изграждане на игрова сцена
Продължаваме поредица от уроци за разработването на Delphi DirectX игри.
Този урок описва функциите за създаване на анимация чрез прости трансформации на обекти, подходящи за експортиране в DirectX8 и DirectX9 приложения.
Първото нещо, което идва на ум, е просто да вземете колело и да ги завъртите във времето около оста си. Изглежда, че всичко е просто. Но се оказва, че в този случай, тъй като моделите на колелата са създадени на базата на цилиндри (примитивен цилиндър), завъртян на 90 градуса около оста Y, опит за завъртане на получените колела около оста X води до сложно въртене, съчетаващо промяна в първоначалната ориентация. С други думи, желаната трансформация не може да бъде създадена.
Освен това, ако се опитате да изнесете дори статичен модел на тази кола в тази форма - тяло и 4 колела, тогава по някаква причина колелата ще се окажат напълно не на място. Това се отнася както за експортиране от програмата за експортиране на DXExport DX9, така и за PandaDX за 3Ds Max 7. Освен това е възможно да се използва правилно анимация в приложението DX8.само при експортиране на PandaDX!
Решението се оказва тривиално просто, ако използвате така наречените Dummy обекти и изградите йерархия от тях.
Какво е Dummy?
Това е празна кутия без възможност за рисуване, която може да играе ролята на център за трансформация и също така да служи като връзка в йерархията на обектите.
В 3ds Max 7 този обект се намира в панела Създаване в групата Помощници -
Как да приложим получения обект за решаване на проблема?
Трябва да създадете 1 голяма кутия от обект Dummy и да я поставите в центъра на каросерията на колата -
създайте Dummy обект, мащабирайте до желания размер, подравнете в центъра спрямо тялото (Align).
Следващата стъпка е да създадете по-малък манекен и да го подравните с едно от колелата.
Сега трябва да свържете (да установите йерархична връзка) мрежата на даденото колело към дадения малък Dummy - wheel_Dummy. Това се прави чрез избиране на обекта колело, щракване върху бутона Избор и свързване и плъзгане на пунктирана връзка към родителския обект wheel_Dummy, докато се маркира в бяло. След това wheel_Dummy става родителски обект за wheel и като завъртите wheel_Dummy около оста X, можете да получите необходимото въртене на колелото. След като направите това - т.е. запишете ротационната анимация на това wheel_Dummy за необходимия брой кадри, просто трябва да клонирате това wheel_Dummy още 3 пъти, да поставите копията спрямо останалите 3 колела и да свържете тези колела към съответните им обекти Dummy.
В резултат на това всичките 4 колела ще се въртят по същия начин.
Сега просто трябва да свържете каросерията на колата с голям Dummy обект - base_Dummy, и да свържете Dummy обекти за всичките 4 колела към него.
В резултат ще имате следната йерархия на обекти - GraphEditors > Нов схематичен изглед