Автомат падающего песка — это клеточный автомат, симулирующий перемещение песчинок и создание куч песка под действием гравитации.
Правила просты:
Если вы хотите узнать об автоматах падающего песка подробнее, то изучите эту статью.
С помощью этих простых правил можно получить вот такие анимации:
Теперь давайте посмотрим, как можно использовать автоматы падающего песка для создания анимаций смерти монстров.
Принцип заключается в том, чтобы считать непрозрачные пиксели изображения песчинками и заставить их падать, создавая кучу «песка» из трупа монстра. Единственное отличие от представленных выше правил заключается в том, что каждая песчинка теперь имеет цвет. Вот что мы получим:
Мне кажется, что такой результат не особо красив по двум причинам: куча слишком высока и всё падает с одинаковой скоростью.
Чтобы решить проблему высоты, я использовал трёхмерный клеточный автомат. Я применил несколько слоёв простого двухмерного клеточного автомата. В исходном состоянии изображение находится в среднем слое, после которого песчинки могут двигаться не только в нижнюю левую или нижнюю правую ячейки, но и в нижние ячейки предыдущего и следующего слоя:
Чтобы получить изображение из 3D-состояния клеточного автомата, я проецирую состояние в 2D, беря для каждой пары координат (i, j) первую непрозрачную ячейку, где переменная k выполняет итеративный обход слоёв. Вот результат для трёх слоёв:
Чтобы улучшить ситуацию со скоростью, я рандомизирую количество строк, на которое падает песчинка за один шаг в интервале от 1 до
При этом во время расщепления монстра при падении создаются дырки.
Далее я пропускаю некоторые кадры, чтобы анимации состояли ровно из 6 кадров. Вот готовый результат:
В среднем песчинки падают с постоянной скоростью, однако гравитация должна их ускорять. При желании для симуляции ускорения можно пропускать больше кадров в конце анимации.
Полный скрипт выложен на GitHub.
Удобно то, что если вам не понравился результат, то можно запустить скрипт заново с другим seed, и получить новую анимацию. Вот несколько примеров анимации для летучей мыши:
Объем рынка нативной рекламы по итогам первого квартала 2024 года достиг 2 млрд руб. Такую оценку сделали платформа управления интернет-рекламой…
Стартовал прием заявок на Всероссийский конкурс сайтов и приложений «Рейтинг Рунета-2024». Участвовать могут и создатели, и владельцы проектов. Для приложений…
VK объявляет о приобретении 40% компании Intickets.ru (Интикетс). Это облачный сервис для контроля и управления продажей билетов на мероприятия. Сумма…
OpenAI готовится запустить собственную поисковую систему на базе ChatGPT. Информацию об этом публикуют западные издания. Ожидается, что новый поисковик может…
Центр управления связью общего пользования (ЦМУ ССОП) Роскомнадзора рекомендовал компаниям из реестра провайдеров ограничить доступ поисковых ботов к информации на российских сайтах.…
Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…