То як би я пішов про створення такого ефекту? Ми говоримо про піксельні шейдери, суміші / фільтри, ефекти растрових зображень, системи частинок чи що? Не дуже конкретна платформа. Я просто шукаю теорію, але конкретні приклади чи посилання були б чудовими. І чим детальніше, тим краще.
Все вищеперераховане.
Якщо ви не заглянете через їх вихідний код, ви можете точно не знати, як вони це зробили.
Однак, погляди двох ігор, обидві вони мають те, що, здається, є геометрією, яка пов'язана і стежить за судном. Не обов'язково може бути базовою системою частинок-спрайтів, але і це не все так складно.
Деякі ігри використовуватимуть алгоритм вигнутої лінії та генеруватимуть список вершин від цього та робитимуть трохи текстури з різними текстурами, застосованими у двох кінцевих точках сліду, так що в один момент вихлоп виглядає гарячим, а в іншому - прохолоднішим і стежки в космос.
Корабель гравця є цікавим випадком, оскільки рухи непередбачувані, і вам може знадобитися оновити контрольні точки алгоритму кривої, або в кінцевому підсумку відібрати останнє положення судна та генерувати вершинні позиції, виходячи з цього.
Подивіться на цю відповідь з попереднього запитання, якщо ви хочете мати щось, що працює поза контрольними точками. Для ваших потреб, однак вибірка позиції гравців, ймовірно, буде працювати набагато краще і легше буде зрозуміти.
Ось що вас змусить задуматися:
Почніть вибірку позиції гравця. Ці точки формуватимуть сегменти тіла вашої стежки, з якої можна побудувати геометрію. Хороша ідея зберігати окремий сегмент хвоста, який має окрему текстуру. Ви можете виявити, коли гравець повертається і збільшує частоту цих сегментів, інакше у вас виявляться криві криві. Якщо тільки це не ефект, на який ви йдете :)
У певних подіях сегменти потрібно припинити генерувати, а існуючі повинні почати повільно масштабуватись, починаючи від сегмента тіла, найближчого до хвоста (але не самого хвоста). Це у випадку уповільнення гравця. Але, якщо швидкість, з якою зменшуються сегменти, відповідає швидкості судна гравця, то новий сегмент буде сформований як раз в той час, як один виведений. Тож це також добре працює для судна, який знаходиться в повному русі. Довжина сліду завжди буде однаковою - це дає текучий, послідовний потік.
Сегмент головки повинен бути завжди в поточній позиції гравця. Якщо виявлені будь-які повороти, існуючий сегмент голови додається до сегмента тіла, і починається новий головний сегмент. Повторіть. Залежно від текстур, кожен сегмент також може мати максимальну довжину.
Це дає нам простий спосіб моделювати цей ефект: відпрацьовуючи ідею про те, що ефект завжди буде зменшуватися / зменшуватися сам по собі, якщо не буде надано більше сегментів, і грати зі швидкістю, щоб не зменшити його.