Щоб ми могли сконцентруватись на роботі з новими функціями, я підготував проектний файл у комплекті з додатковими матеріалами: PSD_R21_VektorVolumen_start.c4d. Він містить параметричний сферичний-об'єкт та два еміттери частинок, які спрямовані зверху або знизу на сферу. Мета цього підручника полягає у тому, щоб випускаючіся частинки влучали у сферу та розподілялися там у всі напрямки.
Давайте швидко розглянемо складові сцени. Обидва еміттери частинок мають однакові налаштування: вони випускають 500 частинок до кадру 300, причому тривалість життя частинок становить 1000 кадрів, що вистачає до кінця тривалості анімації.
Натискання на кнопку відтворення показує, що частинки від обох еміттерів на даний момент просто проходять через сферу без будь-якого впливу. Ми хочемо змінити це.
Побудова першого векторного поля
Ми починаємо, генеруючи перше векторне поле з геометрії, яку задає сфера. Це поле має направляти влучаючі частинки випадковим чином навколо сфери.
Для цього спочатку ми беремо стовпчастий генератор з меню Об'єм.
Потім ми поміщаємо сферичний-об'єкт, перетягуючи його з Об'єктового-менеджера як підоб'єкт до стовпчастого генератора. Зараз у настройках стовпчастого генератора вказано тип поле відстані, тому генератор на даний момент репрезентує нашу сферу у вигляді вокселів.
Щоб замість сфери отримати векторне поле, ми просто змінюємо тип поле відповідно до векторного типу через відповідне меню.
Чітка сегментація векторного поля змінюється тепер через розмір вокселя. Значення 5 см повністю відповідає нашим потребам.
Тепер з нашого попереднього сферичного-об'єкта завдяки вимірювачеві об'єму стало радіальне поле незліченних векторів.
Якщо ми приблизимося до векторного поля, ми побачимо окремі вектори, всі вони перпендикулярні до позиції на поверхні сфери. Отже, отримані сили спрямовані від нашої сфери. Це не зовсім те, що нам потрібно для перенаправлення частинок навколо сфери.
Тож нам потрібно подбати про дві речі: Вектори повинні лежати паралельно до поверхні сфери, а також мати випадковий вигляд, щоб частинки на поверхні були опрямлені в різні напрямки.
За випадковий вигляд відповідає поле випадкових значень, яке ми витягуємо з меню Створити>Поле в нашу сцену.
Ми поміщаємо поле випадкових значень під перетягуванням через Об'єктовий-менеджер як підоб'єкт до стовпчастого генератора. У діалозі налаштувань стовпчастого генератора це поле випадкових значень наведено як шар вище нашої сфери.
Перегляд в 3D-режимі показує, що обидва векторні поля ще не працюють так, як нам потрібно. Поле випадкових значень повинно вплинути на сфери, що перебувають в списку нижче.
Щоб досягнути цього, ми вибираємо запис поля випадкових значень на списку об'єктів у стовпчастому генераторі та встановлюємо в налаштуваннях для поля випадкових значень пункт простір випадкових значень в об'єкти перед ними.
Тепер поле випадкових значень діє, як було задумано, на всі вектори, що надає сфера. Залишилось лише змусити випадково повертані вектори показувати вздовж поверхні сфери.
Здається, що режим обробки поля випадкових значень та сфери ще не зовсім відповідає одне одному. Через меню режиму об'єктного списку ми обираємо для поля випадкових значень спосіб обчислення Переплетення. Цей режим саме створено для визначення перпендикуляра до двох обчислених між собою векторів через їх векторний добуток.
Як показує наш вигляд у 3D, вектори в цьому кроці рухаються так, як потрібно, тангенціально навколо нашої кулі.
Використання поля сил
Тепер ми підготували перешик векторів для руху частинок навколо кулі, але наразі частинки ще не приділяють уваги нашим векторам.
Щоб вектори нашого створеного поля могли діяти як сили, нам потрібен так званий об'єкт поля сил. Ми знаходимо його в меню Симулювати>Сили.
Щоб наше векторне обсяг діяло як поле сил, ми відкриваємо діалогове вікно налаштувань поля сил і перетягуємо Генератор обсягу методом перетягування на поле об'єкта поля сил в менеджері об'єктів.
Відразу після відпускання ми отримуємо запит про вибір того, як Генератор обсягу має бути розглянутий як об'єкт точкового або обсягового. Звісно, ми обираємо опцію обсягового об'єкта.
Тепер наш векторний обсяг, визначений Генератором обсягу, має бути в списку полів сил. Як ми бачимо, поле сил також працює через рівні та режими підрахунків, що надає нові можливості з об'єктом поля сил.
Коли ми запускаємо анімацію за допомогою кнопки відтворення, бачимо, що частинки тепер впливають на наше векторне поле.
Це все ще не той результат, який ми хочемо. Наразі в полі сил активовано швидкісний тип Додати до швидкості, тому частинки просто відхиляються з більшим імпульсом. Але ми хочемо, щоб частинки змінювали свій напрямок відповідно до векторів, і ми оберемо це в меню вибору типу швидкості.
Після цієї зміни анімація виглядає краще. Багато частинок вже намагаються прокласти свій шлях по поверхні кулі, але деякі інші відхиляються від кулі. Крім того, помічається, що ці відхилені частинки рухаються по дуже дивним траєкторіям.
Це можна виправити дуже легко, вибравши в діалозі налаштувань поля сил Генератор обсягу в списку об'єктів та встановивши на сторінці рівнів режим вибірки з Найближчого на Лінійний. Це означає, що відділення відбувається не простим округленням до найближчих вокселів, а застосовується лінійний середній значення.
Після цієї зміни відхилені частинки від кулі вже рухаються значно вільніше. Ми також забезпечуємо, що ці частинки також залишаються на поверхні кулі.
Щоб траєкторії частинок, які рухаються по поверхні кулі, не були занадто дрібними, ми збільшуємо в діалозі налаштувань поля випадкових змін розмір в основі вибірки Шуму. Звичайно, кожен може трохи експериментувати з налаштуваннями випадкового поля.
Якщо ми вибрали об'єкт випадкового поля, ми можемо змінити параметр розміру інтерактивно у 3D-вигляді за допомогою окремого елемента.
Я обрав розмір 300 %, щоб шум векторів був значний.
Створення другого векторного обсягу
Як вже вказує назва нашого об'єкта кулі "Куля всередині", поряд з щойно завершеним векторним полем для внутрішньої кулі має бути ще одне векторне поле для зовнішньої кулі. Ця друга, трохи більша куля має забезпечити повернення евентуально відбитих частинок назад на поверхню внутрішньої кулі.
Для цього ми дублюємо об'єкт кулі, перетягуючи його з натиснутою клавішею Ctrl у менеджері об'єктів, залишаємо його як підоб'єкт Генератора обсягу і позначаємо його як "зовнішній", щоб розрізняти обидві кулі. Цій зовнішній кулі також надаємо радіус, більший на 2 см, для частинок.
Створювач об'єму створив відповідне векторне поле з другої зовнішньої кулі та додав його до вже існуючих об'єктів.
У списку об'єктів у діалозі налаштувань Створювача об'єму зовнішня куля тепер знаходиться на першому місці та буде оброблена останньою. Проте ми хочемо, щоб зовнішня куля спочатку проникла через частинки, а потім більше їх не випускала.
Тож додамо трохи порядку до списку об'єктів. Спочатку перемістимо "Зовнішню кулю" на нижнє місце у черзі. Оскільки Випадкове поле впливає на розташовану під ним "Внутрішню кулю", проте повинно оброблятися безпосередньо після "Зовнішньої кулі", ми просто створюємо папку, у яку можна перемістити Випадкове поле і внутрішню кулю. Для цього клацніть на кнопку папка під списком об'єктів.
Тепер перемістимо Випадкове поле та внутрішню кулю зі списку об'єктів Створювача об'єму в цю нову папку методом перетягування.
Оскільки зовнішня куля, вектори якої перпендикулярні до поверхні кулі, діє першою, частинки, які на неї падають, наразі повністю відбиваються. Щоб перевернути поле векторів зовнішньої кулі, ми використовуємо вольтовий фільтр, з яких також маємо кілька для роботи з векторами. Меню Вольтового фільтра ми знаходимо під списком об'єктів і обираємо Фільтр обертання вектора.
Оскільки ми хочемо, щоб вольтовий фільтр діяв виключно на вектори зовнішньої кулі, ми перетягуємо його безпосередньо над "Зовнішньою кулею".
Тепер все має працювати так, як ми хочемо. Клацнувши кнопку відтворення, ми бачимо, що всі векторні поля налаштовані правильно. Частинки вдаряються в кулю і розподіляються випадковим чином по поверхні.
Ми можемо прийти до більшої живості в потоках частинок, анімуючи Шумовий-візерунок Випадкового поля.
Для цього відкликаємо діалогове вікно налаштувань Випадкового поля та встановлюємо початкову швидкість, у моєму випадку 50 %.
Тепер частинкові потоки будуть скорочуватися через анімований Шум-візерунок, вони будуть розриватися в більшій кількості місць.
Перетворення частинок у криві шляхи
Як частинок, ми зараз можемо відправити будь-який об'єкт - переважно невеликий - у подорож по поверхні кулі. Альтернативою є автоматичне наслідування шляхів частинок та їх перетворення в криві шляхи. Для цього нам потрібен об'єкт Трейсер з меню MoGraph.
Щоб перетворити потоки частинок обох Емітерів в криві шляхи, перетягнемо два об'єкти Емітер- методом перетягування через менеджер об'єктів у поле Посилання Трейсера у діалозі налаштувань об'єкта Трейсер.
Оскільки Емітери з часом випускають чимало частинок, ми обмежуємо довжину кривих шляхів, створених Трейсером. У діалозі налаштувань об'єкта Трейсер обираємо для Границі Кінець …
… та встановлюємо через параметр Кадри довжину кривих шляхів. Я обрав довжину у 100 кадрів. Нижчі значення відповідають відповідно коротшим кривим шляхам.
Після натискання на кнопку відтворення ми можемо спостерігати, як створені Трейсером криві шляхи анімовано перетинають поверхню кулі.
Для початкового зображення цього практичного посібника я створив копію об'єкта кулі та надав йому червоний матеріал. За винятком об'єкту Трейсер- ми можемо вимкнути видимість всіх інших об'єктів у менеджері об'єктів.
Щоб створити тривимірні об'єкти зі смугоподібних шляхів, що генеруються об'єктом Tracer-, ви можете підпорядкувати об'єкт Tracer- разом з об'єктом Коло- об'єкту під об'єктом Обертання-,. У цьому випадку обережно відносно кількості частинок та їхнього часу життя, оскільки в іншому випадку комп'ютер може дуже швидко затормозити…