Всім привіт! Мене звуть Олег Іванов, я з Калінінграда. Це мій другий урок по системі Thinking Particles. Рекомендую вивчити спочатку перший урок:
Я поясню вам ще кілька важливих моментів в TP, які залишилися за кадром.
У цьому уроці ми будемо стріляти з ракетниці по різноколірних повітряних кульок :). При цьому ракети у нас будуть не прості, а самонавідні. Ну що ж приступимо. Перш за все, вам необхідно створити такі об'єкти:
Замоделеная ракета - 1шт,
Замоделение, різнокольорові кульки - 5шт.
Ну і звичайно система частинок ТР - 1шт.
Розмістіть їх як на малюнку нижче:
Відкриваємо наш улюблений TP. Створюємо нову групу частинок Air Balls (повітряні кульки). Виділіть Master Dynamic і поставте галочку навпроти Show Mesh, щоб бачити оболонку частинок. В Master Dynamic створюємо нову подію точніше групу подій, які стосуватимуться тільки повітряних куль. Назвемо його також Air Balls. Виділяємо новостворене подія і створюємо подсобитіе Birth Target (кульки будуть у нас мішенями). Створіть і з'єднайте Ноди як на малюнку нижче:
В якості мети для Node використовуйте створений плейн. Виділіть оператор Position Born і призначте для нього групу Air Balls. Налаштування підберіть самі, щоб наші частки мали відповідної швидкістю і довго жили.
Їдемо далі, додамо нашим часткам форму. Перейдіть Air Balls створіть нову подію Shape Target, помістіть на поле вузли і з'єднайте їх як на малюнку нижче:
У цій події ми використовуємо нові вузли це:
Geom Instance (Оператор геометрії за оригіналом) - використовується, якщо необхідно задати часткам певну форму, в нашому випадку це кульки.
Random (хелпер випадку) - використовується для генерації чисел в задається діапазоні, з різними способами генерації.
Давайте налаштуємо все це справа. Виділіть Geom Instance і прощелкала всі наші кульки кнопочкой Pick Object. Виділіть хелпер Random і введіть Value1: 0, Value2: 4; поставте режим Animation.
У цій події всім створеним часткам буде присвоєна певна форма кульки, за допомогою оператора Geom Instance. Зверніть увагу на те, що цей оператор нумерує заносяться в його список об'єкти, починаючи з нуля. Цим ми і скористалися, підключивши до Shape Number хелпера Random який і генерує числа від 0 до 4. Все дуже просто.
Тепер створимо ракети, які будуть стріляти по кулькам. Перш за все, створіть нову групу частинок Rackets. Виділіть Master Dynamic створіть подія Launch Rackets. У ньому створіть подія Birth Rackets. У новоствореному подію помістіть на поле і з'єднайте Ноди як на малюнку нижче:
В якості мети для Node використовуйте створений спостерігши трубу. Швидше за все, вам пройдеться перевертати Pivot труби, для правильного напрямку руху частинок. Налаштуйте оператора народження так, щоб частинки вилітали не дуже часто, але швидко летіли і довго жили. І надайте ці частинки до групи Rackets.
Давайте розберемося, навіщо це потрібно. Справа в тому, що частинки народжуються з Pivot об'єкта, і якщо ми повернемо нашу трубу, то частки на це ніяк не відреагують. Тому ми і зв'язали подібним чином Ноди.
Створіть нову подію Shape Racket в подія Launch Rackets. Створіть і з'єднайте Ноди як на малюнку нижче:
Як Geom Instance виберіть замоделеную ракету. Тут ми використовуємо новий оператор Alignment (Вирівнювання). У нього виберіть зі списку Direct to Travel. Якщо його не використовувати, то частинки ракет будуть спрямовані так само, як спрямований референс частинок.
Давайте додамо шлейфи диму до ракет. Перейдіть Launch Rackets і створіть подія Birth Racket trails. Так само створіть нову групу Trails. Створіть і з'єднайте Ноди як на малюнку нижче:
Налаштуйте Position Born так, щоб це було схоже на дим із частинок.
Ну що ж поки все не дуже складно і практично нічого принципово нового ви не впізнали. Наступне завдання буде складніше. Наші ракети летять прямо і ніяк не взаємодіють з кульками. Будемо це виправляти.
Виділіть Master Dynamic і створіть нову подію Find Target. У цьому подія ми змусимо ракети САМОСТІЙНО націлюватися на кульки і вибухати при зіткненні. Створіть і з'єднайте Ноди як на малюнку нижче:
Тут ми використовуємо новий оператор PPassAB, він дуже корисний, коли потрібно вивудити дані з двох груп частинок. У це - A Particles: Air balls і B Particles: Rackets. Так само цей оператор має всередині себе опцію активації Distance (зовсім як однойменне умова). Поставте Distance 50. Оператор BringTo дозволяє нам направити частки ракет до частинкам кульок. Поставте у нього In Frames: 100 (час, за яке ракети будуть долітати до кульок).
В результаті у нас вийшло, що ракети вилітаю з труби, летять, димлять і при досягненні певної дистанції починають прагнути до кульок. Але не відбувається вибуху. Ось тепер ми дісталися до самого цікавого. Ви, напевно, звернули увагу на фіолетові квадратики з закругленими краями в лівому і правому кутах у кожної події. Так ось, ці квадратики дозволяють обмінюватися даними між подіями. Ви можете вивести будь-який вхід або вихід з будь-якого нода на відповідно вхід і вихід даної події. Просто затисніть ЛФМ на I / O нода і відпустіть на фіолетовому квадратику збоку. Якщо заплуталися нічого страшного, зараз розберемося.
Давайте створимо всередині події Find Target подія Explode. Створіть і з'єднайте Ноди як на малюнку нижче:
Створіть також нову групу частинок Explode. Дайте народжуються частинки в подію Explode до невизначеної групи. Ноду Distance поставте Radius 2 приблизно як радіус кульки. Оператору народження частинок задайте Direction Variation: 180, і виберіть режим випускання Pistol Shot.
У події Explode ми народжуємо вибухову хвилю за допомогою Position Born, при цьому нам необхідно, щоб ракета і кулька були знищені, це ми робимо за допомогою Particle Die.
Тепер виділіть подія Find Target, і ви побачите, що на центральному полі показується виділене подія, а нижче його подсобитіе. Ось тепер головне не заплутатися в павутині зв'язків. Щоб вам краще було видно, я поки видалю оператор Bring To.
Зв'яжіть Ноди як на малюнку нижче:
Напевно, простіше для сприйняття представляти створене і пов'язане таким способом подію як новий нод, всередині якого знаходяться інші Ноди. У підсумку остаточно подія Find Target виглядає так:
Отже, давайте розберемося в усьому цьому неподобстві. Нам необхідно розрахувати дві дистанції між частинками (ракетою і кулькою): дистанція при якій ракета виявляє ціль і починає летіти до неї, друга дистанція яку, при якому відбувається вибух. У першому випадку, в подія Find Target ми використовували вбудований Distance у оператора PPassAB. У другому випадку, нам необхідно розрахувати мінімальну дистанцію між цими ж частками. З цього, можна використовувати той же оператора PPassAB і витягнути з нього потрібні дані. Так само ми використовували нод умови Distance для розрахунку другої дистанції.
Остаточна структура виглядає так:
Що ж основна тема уроку виконана. Але ще кілька моментів, про які не можна не сказати.
Як бачите, я створив свою папку User sets, куди і буду складати свої події, які можуть стати в нагоді в майбутньому. З'явиться табличка з вибором типу збереження. Виберіть Create New. І відразу ж у нас з'явиться в випадаючому свиті BlackBox наша папка і наша кнопка з подією Find Target. Тепер ви можете вже складене подія вставити в інший проект, і все що вам знадобиться це вказати в PPassAB потрібні групи частинок. Так само можна зберігати Ноди і навіть цілий Master Dynamic. Для цього виділіть потрібний і зберігайте.
Припустимо, що ваш проект занадто важкий для вашого комп'ютера і анімація сильно пригальмовує. Для цього можна скористатися записом анімації в спеціальний файл. Всі дані при цьому будуть братися з нього. Для того що б це зробити, виділіть Master Dynamic знайдіть список Recorder, натисніть Select record File, дайте ім'я файлу і натисніть на Record внизу списку. Піде запис анімації частинок. По завершенні все буде програватися гладко. Припустимо, якщо вам потрібно що-небудь змінити в симуляції, просто натисніть в тому ж списку на кнопку Simulate, вносите зміни, а потім перезаписувати симуляцію. Дана опція дозволить заощадити купу ресурсів і нервів.
У висновку хотів би сказати, як працює шейдинг частинок. Якщо у вас встановлений After Burne, FumeFX, Krakatoa або ж що ще, то при виборі частинок з'явиться табличка, по якій ви можете вибирати групи частинок який потрібно зашейдіть.
Так само якщо у вас виникнуть труднощі, можете звернутися до мене, допоможу, чим зможу.
Сподіваюся, вам було не нудно виконувати даний урок. Експериментуйте і пробуйте створювати свої цікаві ефекти з частками, благо для цього у вас є потужний інструмент з практично безмежними можливостями.
Всім дякую за увагу!
Завантажити журнал безкоштовно!
Бюджет не вказано Пропозиція по отрисовке рендерной моделі в 3D MAX
Пропозиція по отрисовке рендерной моделі в 3D MAX персонажа.