Щоб ми могли повністю сконцентруватися на роботі з Dynamics та MoGraph, всі інші складові сцени ви знайдете в робочому файлі "PSD_C4D_R12_Dyn_RigidB_Konnektoren_Start.c4d".
Тут ми матимемо трисплочасте кільце та кульовий об'єкт; все решта робиться за допомогою MoGraph-клонів або емітера частинок.
Побудова сцени з MoGraph-клонами
Три найважливіші об'єкти у нашій сцені - це куля, кільце та нахилена площина, по якій кульки пізніше мають кататися вниз. За винятком крил кільця, всі об'єкти вже мають матеріал. Хто бажає, може пристосувати сцену до власних уявлень з іншими матеріалами.
Для куль використовуємо простий, параметричний кульовий об'єкт, який потім буде клонований. Радіус 7 см підходить для нашого кільця та площини, верхній край якої має якнайкраще ухопити кульки.
Кільце утворюється шляхом витягування сплайн-об'єкта-квітки за допомогою генератора витягування-NURBS. Для трьох крил кільця кількість листків відповідно зменшено. Внутрішній радіус досить великий, щоб затримати вставлений вісь (простий циліндричний об'єкт).
Хто бажає, може експериментувати з чотирма або навіть п'ятьма крилами.
Генератор витягування-NURBS формує тривимірну форму вказаного сплайн-об'єкта-квітки. Глибина кільця визначена параметром зміщення.
Над кільцем знаходиться вже згаданий циліндричний об'єкт. Він пізніше використовуватиметься для Dynamics як обертання коннектора.
Давайте перейдемо до площини, яка насправді є об'єктом витягування-NURBS, яке перетворює зазначений шлях сплайна (у цьому випадку L-сплайн) у тривимірний об'єкт через витягування.
Це все, що стосується побудови початкової сцени. Ми починаємо з кільців і використовуємо MoGraph, щоб отримати достатньо копій або клонів для нашої площини.
Тож ми додаємо об'єкт клонування з меню MoGraph.
У діалозі налаштувань об'єкта клонування спершу встановлюємо режим Мережа.
Відповідні параметри дозволяють нам встановити кількість клонів та розмір результатуючої мережі. Так як мережа повинна складатися з одного шару в прямому напрямку x, ми залишаємо це значення клонів 1, а для напрямку Y виготовляємо 6 або 5 клонів у показаних розмірах.
Щоб об'єкт клонування знав, які об'єкти потрібно дублювати, ми додаємо всю ієрархію кільця в об'єкт-менеджері як підоб'єкт у об'єкт клонування. За нашим бажанням об'єкт клонування виробляє нам кільця в мережевому розташуванні.
Тепер ми встановлюємо клоновані кільця на площину. Оскільки кут обертання площини становить 40°, ми беремо це значення також для об'єкта клонування, тут як кут банкінга - 40°.
Щоб точно розмістити мережу клонів з кільцями на площині, найкраще перейти до вигляду з боку, активувати глобальну орієнтацію вісей, та перемістити кільця вздовж своєї вісі близько до площини. Оскільки вісь кільця трохи виступає назад, її можна легко поглибити в площину.
Кільця тепер встановлені та можуть повернутися як підоб'єкти в групу "Лізниця". Що наразі досить заважає, це занадто досконале, абсолютно однакове розташування кілець. Щоб завершити цю нудьговість, ми додаємо ефектор випадковості.
Ми знаходимо його в меню MoGraph>Effektoren та додаємо його до нашої сцени. Якщо перед викликом зі>ффектори обрано клонооб'єкт у менеджері об'єктів, то цьому клонооб'єкту автоматично призначається ефектор.
В діалозі налаштувань зі>ффектора ми починаємо з випадкових поворотів керованих частин. Для цього ми відкриваємо розділ Трансформування у розділі Параметри та активуємо опцію Кут для трансформації. Щоб обертати керовані частини навколо їх конусних кутів, вказуємо тут значення. Кут у 60° надає достатньо плавної ротації керованим частинам.
Після цього, коли ми також хочемо використовувати віпадкового>еффектора для кольору керованих частин у їхньому матеріалі, ми додатково розгортаємо розділ Колір та активуємо режим кольору. Для випадкових параметрів зі>ффектора можна експериментувати з випадковими значеннями через початкове значення. Більше інформації з цього питання буде пізніше.
В режимі редактора зміни, які викликає еффектор, зазвичай можна спостерігати відразу. Передбачаючи, що клонооб'єкту було правильно призначено віп. ффектора при його створенні. Якщо цього не сталося, ми можемо швидко виправити це в діалозі налаштувань клонооб'єкту у розділі Еффектори. З менеджера об'єктів ми витягуємо сюди всі еффектори, які повинні впливати на клонооб'єкт або мають право впливувати на нього.
Щоб рознообразити сцену, ми дозволяємо керованим частинам бути різнокольоровими. Для цього випадковий ефектор зекономить нам чимало роботи. Спочатку але ми створюємо новий матеріал, вибираючи пункт в меню у менеджері матеріалів або подвійним кліком на вільне місце менеджера.
Для того, щоб випадковий ефектор міг впливати на колір у каналі кольору, ми розміщуємо там кольоровий шейдер з підменю MoGraph у розкривному меню кнопки текстури.
Після вибору кнопки кольорового шейдера ми опиняємось у досить простому діалозі налаштувань кольорового шейдера. Тут ми переконуємось, що для каналу вибрана опція Колір.
Тепер нам залишилося лише призначити матеріал для керованих частей Екстрадено-об'єкту крила. Для цього ми перетягуємо його з менеджера матеріалів на об'єкт крила керованої частини в менеджері об'єктів. Якщо комбінація кольорів для керованих частей вас ще не влаштовує, ви можете змінити початковий параметр в випадковому ефекторі, поки вам не сподобаються випадково обрані кольори.
Побудова динамічної системи з об'єктами колізії та твердих тіл
Тепер сцена готова до відтворення, ми можемо включити елементи, що беруть участь у симуляції, в динамічну систему. Почнемо з простих об'єктів колізії, таких як рівень та підлога, які не динамічні, але лише призначені для виявлення колізій у системі.
Через меню Симуляція>Динаміка обидва означені як об'єкт колізії з командою створення об'єкту колізії.
Завдяки цій команді вибрані об'єкти були надані тег динаміки, у чиїй настройці для нас вже автоматично вимкнута динамічна функціональність та включено виявлення колізій. У розділі Колізія ми встановлюємо еластичність та тривію на 30%, щоб кулі, які вдаряються, не стрибали вгору, а повільно відкочувалися.
Ситуація трохи відрізняється з другим об'єктом колізії, плоскою площею. Тут нам потрібна в області Колізія колізійна форма Статична мережа. Завдяки L-контуру плоскої площини гарантується, що форма об'єкта правильно використовується для розрахунку колізії. Параметр тривія для площини може бути трохи вищим, щоб кулі не рушились занадто швидко по доріжці керованої частини.
На відміну від простих об'єктів колізії, керовані частини активно беруть участь у динамічному процесі. Оскільки вони є одночасно твердими (rigid) тілами, ми визначаємо їх як тверді тіла. Для цього ми вибираємо об'єкт крила з ієрархії створеного клона та встановлюємо його як тверде тіло за допомогою команди створення твердого тіла у меню Симуляція>Динаміка.
Також поведінка обертових коліс при зіткненні відрізняється. Щоб у жалі некеровано не проникла у клітинний грат, перед самим фактичним зіткненням, ми встановлюємо в налаштувальному діалозі тегів Dynamics Body включення динамічних властивостей в положення При зіткненні.
На сторінці Колізії йдеться про детальне налаштування властивостей зіткнення. Тут параметр Автоматично як форма колізії гарантує використання найкращої оболонки для особливої форми обертових коліс, щоб уникнути того, що ударні кулі після зіткнення відлітають далеко. Ми зменшуємо еластику на 20%. Високий коефіцієнт трення 80% також забезпечує втрату енергії куль при кожному контакті з обертовими колесами.
Застосування власної маси завжди рекомендується, коли потрібно вирівняти кільцеві об'єкти різної маси. Оскільки кулі відрізняються від обертових коліс не за розміром, але за масою, ми вказуємо власну масу 8. Коефіцієнт ротаційної маси 80% дозволяє легше обертати обертові колеса.
Щоб мати більше впливу на енергію та забезпечити, що симуляція витратить достатньо часу на відновлення, доповнюємо пов'язані з обертовими колесами сили додатковим приглушенням.
На сторінці Сил налаштувального діалогу обертові колеса отримують лінійне приглушення 60% та приглушення ротації 80%. Незважаючи на сильні удари куль, обертові колеса досить швидко заспокоються.
Функціональне розширення обертових коліс з конекторами
Якщо почати симуляцію, натиснувши кнопку відтворення, обертові колеса під час першого зіткнення падали і ковзали по площині без сліду. Хоча вони оптично застрягли в площині своєю віссю, в нашій симуляції вони ще не грали жодної ролі. Щоб створити з’єднання між обертовими лопатями обертових коліс та віссю, ми використовуємо так звані конектори. Їх можна знайти в меню Симуляція>Динаміка.
Загалом розташування конектора в елементах або ієрархіях у Об’єкт-менеджері не має значення. Однак для збереження логічності в нашій сцені ми функціонально поєднуємо його з Об'єктом циліндра вісі. Для кращого розуміння при інтеграції конектора тимчасово вимикаємо виробництво клонів через Об’єкт-менеджер.
Якщо конектор має виконувати роль обертової вісі, спочатку потрібно вказати йому правильне положення та орієнтацію, в нашому випадку - координати та кути циліндричної вісі. Цей процес спрощує команда Прийняти з меню Функції, яку ми викликаємо, вибравши конектор.
У налаштувальному діалозі Застосувати-значок ми спочатку вказуємо об’єкт циліндра вісі як джерело даних для конектора. Для цього ми перетягуємо його з Об’єкт-менеджера в відповідне поле Прийняти від. На цьому етапі натисканням кнопки Призначити переносимо всі параметри, оскільки найліпше налаштування буде виконуватися безпосередньо в конекторі.
Ми вибираємо конектор через Об’єкт-менеджер і підлаштовуємо його орієнтацію за обертовим колесом. Як показано на малюнку нижче, кут зміщення відлягає на – 90°, а кут нахилу (відповідно до нахилу площини) - на 40°. На сторінці Відображення ми можемо зменшити розмір конектора, щоб він краще пасував до обертового колеса.
Реальна функціональність конектора визначається на сторінці Об'єкта налаштувального діалогу. Тип Шарнір утримує пов’язані об'єкти на вісі та дозволяє лише обертання навколо заданої референсної вісі. Оскільки у нашому випадку з лопатями та віссю ми маємо однакову вісь, можна було б зробити коротше, однак чітко працюючі допомагає зберігати орієнтацію, особливо в складних сценах, щоб відновити все пізніше.
Як Об'єкт A для з'єднання ми перетягуємо об'єкт вісі з Об’єкт-менеджера в відповідне поле. Оскільки рух відбуватиметься навколо осі X, ми обираємо цю вісь як референсну вісь. Як Об'єкт B використовується об'єкт лопатів з однаковою референсною віссю. Більше на цьому етапі для конектора не потрібно ураховувати.
Після того, як ми вирішили функціональність коннектора, ми розглядаємо його як підоб'єкт осі керованого колеса. Оскільки вісь функціонально з'єднується з криловим колесом через коннектор, коннектор добре розташований тут.
Створення динамічних куль з допомогою системи частинок
Готовий і функціональний іграшковий пристрій, тепер нам лишилось тільки додати кулі з динамічними властивостями, що ми можемо випустити. Одну кулю ми вже маємо в сцені. Однак, щоб іграшковий пристрій працював належним чином, ми випускаємо додаткові кулі з емітера частинок. Але спочатку ми надаємо кулі потрібні динамічні властивості, щоб вона взяла участь у симуляції.
Для цього куля потребує тег Dynamics Body Tag із активованими динамічними властивостями. Тож ми призначаємо цей відповідний тег додатку кулі за допомогою команди Створити тверде тіло з меню Симуляція>Динаміка.
У діалозі налаштувань тега Dynamics Body Tag ми знаходимо групу базових властивостей на сторінці Динаміка. Тут ми встановлюємо роздільну здатність на значення Негайно, щоб кулі одразу по появі в сцені почали діяти.
Під час встановлення параметрів на сторінці Колізії ми бачимо, що куля абсолютно непроблемна під час обчислення зіткнень; автоматичне визнання тут працює. Еластичність та тривкість кулі залишаються на середніх значеннях. Якщо кулі зійдуться у зіткненні пізніше, вони також не відвідуть подалі.
Налаштування на сторінці Маса цікавлять нас у контексті налаштувань керованих коліс. Ми вже мали свою масу рівною 8. Для того, щоб кулі не вдарилися занадто грубо та важко в колеса і не почали хаос у системі, ми встановлюємо масу кулі приблизно на 5.
Куля вже має динамічні властивості, проте вона все ще самотня. Щоб виробити більше куль з її сорту, ми використовуємо її як частинку в системі частинок. Для цього нам потрібен об'єкт емітера, який генерує та відсилає частинки-кулі. Ми знаходимо його в палітрі об'єктів системи частинок.
У діалозі налаштувань емітера частинок ми можемо точно визначити, скільки куль буде створено за який час з якої позиції. Щоб не перевантажити іграшковий пристрій, я вибрав темп народження двох частинок (на секунду). Відправлення куль починається негайно і закінчується через вісім секунд, тобто на знімку 200. Достатньо великий тривалість життя частинок важливий, щоб кулі не зникли з екрану заздалегідь.
На сторінці Емітера діалогу налаштувань ми встановлюємо форму та розмір емітера. Тому що викидані кулі майже використовують повну ширину іграшкового пристрою, ми використовуємо X-довжину 145 см. Ширину 10 см в напрямку Y гарантує, що кулі практично горизонтально викидаються і не падають занадто зверху.
Готовий емітер частинок розміщуємо тепер у верхній частині іграшкового пристрою через Візуальний редактор або Менеджер координат. При орієнтації завжди пам'ятайте, що частинки викидаються у напрямку ось Z.
Щоб призначити кулю як частинку емітеру частинок, просто розташовуємо її під ним у Об'єкт-менеджері. Сам об'єкт кулі тепер зник з візуального редактора і з'являється лише у вигляді викинутих частинок.
Глобальні налаштування динаміки
За замовчуванням в CINEMA 4D діє сила, подібна до земного притяжіння. Це і більше налаштувань можна знайти в Налаштуваннях документа на сторінці Динаміка.
На сторінці Експерт можна додатково змінити деякі стандартні значення, щоб спрямувати визначення зіткнень на елементи, що беруть участь у симуляції, у нашому випадку, можна понизити масштабування до 10 см і тримати толерантність зіткнень якомога низькою.
Усі підготовчі роботи та налаштування виконано, тому ми можемо запустити динамічне моделювання за допомогою одного кліку на кнопку відтворення.
Цим готовим прикладом можна дослідити наслідки динамічних властивостей дуже чудово. З іншими значеннями мас, тривалості або також коефіцієнтів тертя в тегах кожного динамічного тіла елементи дуже швидко отримують абсолютно інші властивості.
Гарного експериментування!