За да получите представа за резултата от този урок, най-добре е да видите съответното видео.
В работния файл PSD_C4D_R12_Dyn_Motor_Auto_Start.c4d вече са подготвени най-важните елементи на сцената, така че можем незабавно да започнем работа с динамиката. Понеже ще започнем с разширяването на малката играчка кола, всички развалящи елементи на сцената временно са скрити чрез превключвателите на таблото на Обект-мениджъра.
Сцената настрочване
Нека бързо разгледаме съставките на сцената. Освен автомобила, има и Сферичен обект като бъдещо препятствие, HyperNURBS-Обект с интегриран Обект за ландшафт както и Под, Небе и Светлинни обекти за околната среда и осветление в сцената.
За да направим построяването на превозното средство възможно най-просто и разбираемо, колата се състои само от каросерията и четирите колела. Като колела служат общо четири Цилиндрови обекти, насочени в положителната X-ос и поставени на предвиденото за тяхно място на колата.
За да се улесни по-късна интеграция на Конектори и Мотори, на всяко колело е закачена неговата позиция като абревиатура (вп = в предната лява част).
Каросерията генерира Екструдиран NURBS Обект от Крива. Разбира се, можете да използвате и друг автомобил или каросерия; важното е по-късно правилната интеграция чрез Конектор или Таг на тялото за динамика.
В настройките на Екструдиран NURBS Обект ширината на нашия автомобил е определена. Тя се получава чрез Отместване в X-ос по време на Екструзията. За постигане на естествен и реалистичен вид се грижат Закръгленията на ръбовете на каросерията.
Скрит в HyperNURBS Обекта е Обект за ландшафта, който ни предоставя удобна теренна повърхност за откриването на автомобила извън пътя. Благодарение на HyperNURBS Подразделба можем да спестим при сегментирането на ландшафта, без да получаваме прекалено изострена повърхност.
За повече действие по време на каране извън пътя добавяме няколко препятствия. В моя случай са прости Сферични обекти с 50 см-Радиус, които по-късно ще бъдат разпределени случайно върху терена или Обекта за ландшафта с помощта на МоуГрафика.
Построяване на превозното средство с конектори и мотори
Първо, за да отговори на нашите нужди, нека се обърнем към играчката с автомобил. Какви функции трябва да изпълнява за нашите цели?
Първо, трябва да бъдат прикрепени оборотните колела към превозното средство; също така е нужно да има задвижващо устройство на колелата, за да може да се движи независимо. И разбира се, трябва да разпознава сблъсъци - това започва вече с това, че колелата стоят на земята.
За да можем да предоставим тази функционалност чрез новите Dynamics на CINEMA 4D, участващите елементи трябва да имат Dynamics Body-Tags, за да бъдат приети от двигателя на динамиката.
Започваме с четирите колела, които всичките сме селектирали в Обект-Мениджъра и ги дефинираме като Твърдо тяло чрез достъпното меню Симулация>Динамикa.
Тъй като всички четири колела, разбира се, получават еднакви динамични свойства, нека селектираме четирите Dynamics Body-Tags и настроим желаните параметри.
На страната Динамика можем да приемем стойностите по подразбиране. Незабавнoтo започване е важно, за да имат колелата незабавен контакт с пода.
С Страната на Сблъсъка помагаме на разпознаването на сблъсъци от динамиката, като зададем за Форма Ос Z на Цилиндъра. Това отговаря на формата на колелото и подобрява производителността при изчисляването на динамиката. За да колата при налагане на удар на пода изпитва много лек скок, задаваме лека Еластичност от 10%. В замяна увеличаваме Триенето на 120%, за да колелата могат да се залепят добре на пода.
Да преминем към следващия елемент на превозното средство, каросерията. За съжаление, Екструдиран NURBS Обектът поради нелепата си ориентация по осите не е подходящ за център на каросерията, затова ще нека просто Null-Обекта Автомобил да влезе на сцената. Осите му са в центъра на колата.
Така че просто задаваме на Null-Обекта Автомобил чрез менюто Симулация>Динамика Dynamics Body-Tag като Твърдо тяло.
В диалоговия прозорец на тага за Динамично тяло нека също така да започне незабавно сработването за колата.
На страницата за сблъсъци трябва да вземем предвид йерархията на нашата кола, за да може каросерията да бъде разпозната. За целта задаваме Йерархията като Съставена колизионна форма и избираме за Форма най-добре конвексната обвивка или преместващата се мрежа.
Другите качества на сблъсъка могат да се запазят; накрая колата основно ще стои на четирите си колела и не е задължително да се преобърне.
За да се гарантира, че за центъра на тежест на нашата кола се използва точно осата, която искаме, трябва да преминем бързо към страницата за маса.
Тук активираме опцията Собствен тежестен център - тъй като обаче не искаме да се отклоняваме от дефинираната ос, оставаме смещенията по X, Y и Z на 0.
Ако започнем анимацията сега, колата ни би просто се срутила. Това не е изненадващо, тъй като до момента сме дефинирали само пет Динамични тела, CINEMA 4D все още не знае за конструктивните връзки.
Решаваме това с Конектори. С тях закрепяме колелата за колата, даваме възможност за въртене около остата на колелото и същевременно реализираме прилично окачване за пътя през терена.
Нека вземем първия Конектор от менюто Симулация>Dynamics.
Всяко колело получава собствен конектор. Започваме с предното ляво колело и преименуваме новосъздадения Конектор подходящо. За да конекторът да приеме позицията на колелото, активираме Инструмента за прехвърляне от меню Функции и пренасяме Колелото ляв.пр. в полето за превръщане в Обект.
След клик върху Бутона за назначаване, конекторът се намира на същата позиция като предварително дефинираното колело.
По същия начин създаваме следващия конектор; този път за предното дясно колело. Също на този конектор му назначаваме позицията на съответното колело чрез Командата за прехвърляне.
Преди да продължим с задните колела, насочваме конекторите на предните колела правилно. За целта селектираме конектора и го завъртаме като използваме Ъгъла на насочване в Мениджъра на атрибути с жълта част на шарнира навън. За дясното предно колело получаваме ъгъл от 90°, за лявото предно колело -90°.
Със същия подход можете сега да заобиколите с правилно позиционирани конектори и правилно зададени завъртания и двете задни колела. Долният изглед показва четирите поставени конектори.отгоре.
За да бъдат конекторите видими дори когато не са селектирани, активирайте просто опцията Всегда видим на Страницата за визуализация на диалоговия прозорец за настройка на Конектора. Намалете размера на конекторите, за да се съответстват по-добре на колата.
Сега трябва да определите правилната функция за конекторите; накрая искаме окачени оси, а не шарнири на колата. Това става на Страницата с обекти, където задаваме типа Окачена ос за всички четири конектори.
Все още държим селектирани четирите конектора, тъй като можем да направим настройки за следващите четири окачени оси. Първият обект за Връзване на конекторите, който избираме, е Нул-Обект Автомобил като Обект А в съответното поле.
За Твърдост на окачване избираме стойността 20, за Опасността на окачване, другото значи скоростта, с която окачването се връща обратно, вземаме стойност от 20%.
Активираме долната и горната граница в посока Y, със смещение от по 20 см всяка. Въпреки че е малко вероятно, колата ни да се удари в тези граници, сцената става по-прегледна.
Сега се грижим за отделните конектори или Окачени оси. Единствена настройка, която още трябва да направим за всеки конектор, е втория обект за връзване. За целта втасваме съответното колело към конектора в полето Обект B.
Когато сме настроили всички четири конектора или окачвания на колелата, ги интегрираме в йерархията на обектите в превозното средство. Поставяме ги близо до колелата като подобект в нулевия обект "Автомобил".
Това, което липсва нашата играчка кола, е задвижване, за да може да се движи самостоятелно. За терена би било желателно четиримото задвижване, но в нашия пример само двата предни колела ще бъдат задвижвани. Два мотора затова, защото по този начин предаването на мощност към отделните колела се извършва физически по-коректно.
Поставяме първия мотор в сцената чрез менюто Simulation>Dynamics.
Подобно на конекторите, също така преименуваме мотора съответно на задвижваното колело. Тук моторът трябва да задвижва лявото предно колело.
С помощта на Инструмента за прехвърляне от мениюто Функции прехвърляме позицията на мотора на колелото. След натискане на бутона Присвояване моторът се поставя на желаното място и трябва само да бъде насочен.
Това го постигаме чрез Управителя на атрибути на Страницата с координатите. Въртим мотора чрез Heading Angle от 90°, така че жълтата посока на въртене съвпада с посоката на въртене на колелото.
Моторът е свързан чрез Полетата на обекта в неговия диалог за настройки. В нашия случай поставяме предното ляво колело в полето Обект A. За задвижването задаваме скорост на въртене от 400° и момент на въртене от 50.
По същия начин сега поставяме още един мотор за задвижване на дясното предно колело. Подходящо го преименуваме и отново предаваме позицията на съответното колело на мотора с Инструмента за прехвърляне.
Също така въртим втория мотор чрез Управителя на атрибути в правилната посока и този път предаваме предното дясно колело като Обект A.
Вторият мотор получава естествено идентичните параметри за Целева скорост на въртене и Момент на въртене.
Така задвижването е коректно инсталирано в автомобила. Препоръчвам да включим моторите като подобекти в йерархията на обектите на превозното средство, така че редакторът да остане удобен дори по време на симулацията.
Преди да пуснем най-накрая колата си, ни е необходима подходяща повърхност, защото до момента играчечната кола би паднала в празното.
За нашия първи тест и като платформа за по-късно правим пода на Колизионен обект. Маркираме Обекта на пода и му присвояваме подходящото Dynamics Body-Tag чрез менюто Simulation>Dynamics.
Както при обикновен Колизионен обект, диалоговият прозорец за настройки е доста ясен. На първо място ни интересува Коефициента на триене. Увеличаваме го на 100%, така че колелата да намерят бързо зацапване и да могат да ускоряват добре.
Когато натиснем бутона за възпроизвеждане, играчечната кола вече тръгва сама. По-късно ще я оборудваме с малка управляваща система; сега обаче се грижим първо за терена.
Разширяване на сцената с елементи от Dynamics и MoGraph
Досега невидимо, тъй като е деактивирано като параметричен обект чрез Обектния мениджър, Обектът Ландшафт трябва да бъде използван като хълмиста повърхност. Подобно на Подния обект, трябва да дефинираме първо земята като Колизионен обект. За целта задаваме на надчелия Обект HyperNURBS чрез менюто Simulation>Dynamics Dynamics Body-Tag като Колизионен обект.
И при този Колизионен обект страната за Колизия в диалоговия прозорец е от особено значение. Тук ни е необходима Форма за колизия като статичен мрежест обект, така че колата по-късно да може да разпознае всеки буцка на повърхността. Подобно на Подния обект отново задаваме високия Коефициент на триене от 100%.
Нека тестваме колко добре се справя нашата кола в терена. За целта, първо трябва да преместим цялата група на колите по Ос Z в Управлението на атрибутите на 3000 cm. Така колата стои готова в посока на движение и може с пълна скорост да се насочи към терена.
След щракване върху бутона за възпроизвеждане, можем да видим как играчечката ни кола смело се справя с пътя си през хълмистите местности. За да направим сцената по-забавна, добавяме и допълнителни препятствия.
Основата за нашите препятствия вече е представена във формата на кула-обект. С цел да бъдат клонирани кулите не само на пътя на колата, но и отблъскаха, трябва да ги дефинираме като твърдо тяло. На практика е без значение дали самата кула или обектът-клон ен тялото на динамиката. По-гъвкави сте с първия вариант, тъй като по този начин можете да зададете на всеки клон собствени динамични свойства.
Така че, нека дефинираме обекта на кулата като необходимия таг на тялото на динамиката като твърдо тяло; както обикновено го намирате в менюто Симулация>Динамика.
В диалоговия прозорец на тага на тялото на динамиката за кулата, вървим по Динамичната страница и задаваме Тригер на При сблъсък. По този начин кулите не се движат нежелано сами по себе си, а реагират само когато колата или друга кула предизвика сблъсък.
Вярваме в автоматичното откриване на сблъсъци поради простата форма на обектите; увеличаващото се триене от 80% държи кулите основно на земята, така че те просто се плъзгат през терена без нежелано скокане.
Сега кулата е снабдена с динамични свойства, така че можем да я разпределим по терена. За целта използваме обект-клон от менюто MoGraph.
Чрез Управление на обектите подреждаме обекта на кулата към обекта-клон като клон. Поради използването на пареметрична кула, която използва средата на кулата като точка на отсмятане, в момента разположението на клонираните кули би означавало, че всички клони са на половината погребани в терена.
За да предотвратим това и да подредим кулите нагоре с радиуса, намираме в страницата Трансформация на диалоговия прозорец възможността за настройка на отместването. Отместваме кулите в Ос Z с 50 cm, което е радиусът на кулата.
Реалните настройки за дупликацията и разпределянето на клоните правим на страницата Обект на диалоговия прозорец.
Първо избираме Модус Обект; накрая желаем да използваме обектът за пейзажа за разпределянето на клоните. След това теглим споменатия обект за пейзажа в съответното поле Обект.
Разпределението на клоните трябва да стане върху повърхността на обекта, а броят може да бъде определен от вас. За да колата не трябва да премества излишен брой кули, препоръчително е да бъдат не повече от 80 клони.
На картината по-долу можете да видите текущото състояние на рендъра. Кулите са разпределени добре върху обекта за пейзажа, но все още са насочени в една и съща посока. С малко помощ от случаен-ефектор този малък проблем бързо се отстранява.
За да присвоим случаен-ефектор на обект-клон, докато го включваме в сцената като място на действие, селектираме обект-клон в Управление на обектите преди да вземем случаен-ефектор от менюто MoGraph>Ефектори.
В диалоговия прозорец на ефектора намираме във страницата Параметри трансформационните параметри. Тъй като кулите трябва да бъдат завъртяни просто около всички оси, ни трябват променени ъглови параметри. Ъгъл от по 90° е достатъчен, за да осигури достатъчно гъвкавост за различни завъртания.
Тестване на рендъра показва, че кулите, благодарение на случаен-ефектор, са разпределени напълно случайно върху пейзажа.
Сега е високо време да пуснем играчката си кола и на препятствията. С оглед на по-големите вероятности за сблъсъци в бъдеще, е добре да погледнем и в предварителните настройки за размера и скалирането на препятствията в раздела Предпочитания за Динамика под Предпочитания за Документа.
Тъй като големината на топките, на колелата и на играчката кола са много близки или се справят добре с колизионната толерантност, тук в моя пример няма нужда от промени.
За да не изчезне играчката кола ни веднага след стартиране, под Елементи на Сцената в Обектния Мениджър ще откриете Целева Камера, която се насочва автоматично към колата. В израза за насочване е заложено, че не трябва да изгуби обекта Кола от погледа си.
С активиране чрез кликване върху белия символ за търсене в Обектния Мениджър.
Сега можете да натиснете бутона за пускане и да наблюдавате колата по време на пътуването й изпъстреното с препятствия терен.
Инсталиране на прост контрол за колата с XPresso
Ще бъде по-добре, ако колата не просто върви право напред из терена, ако имаме възможност и ние като потребители да контролираме движението й.
За нашия пример е достатъчно да има прост контрол за завиване наляво или надясно чрез плъзгач. Вместо че наистина трябва да контролираме два обекта (колелата или конекторите), но желаем удобен регулатор, просто добавяме наш собствен параметър за управление във вид на Потребителски данни.
Изберете Групата Кола и добавете Потребителски данни през менюто Потребители в Мениджъра на Атрибутите.
Отваря се прозорецът Управление на Потребителски Данни. Тук ще намерите всички свързани с тях индивидуални Потребителски данни. На новият запис даваме подходящото име Завиване и указваме в полето Свойства какъв трябва да бъде параметъра.
Избираме Интерфейс в единицата Скользащ плъзгач с единица Градус. Параметризираме с размера на стъпката от 1°, за да имаме нагледни стъпки. За да предотвратим колелата да завъртат твърде много и да се прекръстят с автомобила, ограничаваме минималния ъгъл на -30° и максималния на 30°. Стойността по подразбиране от 0° гарантира, че на първоначално колелата са прави.
След като затворим диалоговия прозорец с OK и така са добавени Потребителските данни, намираме на страницата за Потребителски данни на нашата кола добавеното от нас Завиване като плъзгач, както е желано. Създадохме възможност да управляваме собствен параметър, който просто трябва да препратим на правилното място в сглобката на нашата кола.
Задача, двустранна за XPresso. Необходим е първоначално XPresso-таг, който можем лесно да зададем чрез контекстното меню с десен бутон в подменюто CINEMA 4D Тагове.
Като база за този Израз е подходяща нашата група за Кола.
С двойно кликване върху XPresso-тага отваряме XPresso-редактора. Като първа стъпка или Възел влачим Нулевия обект Кола от Обектния Мениджър в прозорец XPresso-редактор.
За да предложим нашият собствен създаден Параметър като Порт за връзка, натискаме червения бутон на Изходния порт и избираме порта Завиване от подменюто Потребителски данни.
С параметъра ни Завиване искаме да взаимстваме ъгловете на управление на Конекторите на съединителната вторична връзка. За да имаме достъп до тези параметри в XPresso-редактора, намираме двете Конектора на левото и дясното предно колело в Обектния Мениджър и влачим и двете обекта също в XPresso-редактора.
Понеже искаме да прехвърлим стойност към двата Конектора, ни трябват параметрите на Ленкунгът в входния порт. Като изберем синия бутон на Входните портове на възловете за конекторите и избираме от подменюто Обектни свойства портовете Ленкунг.
Сега просто трябва да свържем двата порта за ъгъл на управление с порта на волана на автомобила. Просто теглим от единия порт към другия с натиснат бутон на мишката.
Нашето кратко запознанство с XPresso вече приключи, така че можем да затворим XPresso Editor. За да не търсим постоянно нулевия обект и неговата потребителска информация за управлението на автомобила, просто интегрираме контрола на плъзгачите в Head-Up Display (HUD) на прозореца на редактора.
За целта с десен бутон на мишката щракваме върху параметърния влизане Steering в Attribute Manager и от контекстното меню избираме опцията Добави в HUD.
За да преместите елемента от HUD в редактора, просто щракнете с натиснат (Ctrl)- или (Ctrl)-клавиш върху елемента на HUD и го позиционирайте с мишката на подходящо място.
Освен това, за да бъде елемента на HUD видим не само когато автомобилът е селектиран, ние щракваме с десен бутон на мишката върху съответното контекстно меню и избираме опцията Винаги в меню Покажи.
Сега може да натиснете бутона за стартиране и да изпращате автомобила по терена с плъзгача по ваш избор. Внимавайте да нулирате управлението в началото на всяка поездка, за да не се прековари автомобилът.
Тези, които по-късно искат да превърнат пътешествието във вълнуваща анимация, могат просто да заснемат ключови моменти Keyframes за съответната стойност на управлението. Приятно пътуване през терена!