Перейти к содержимому
Открыть приложение

Анимированные слои (GIF)

Любой атрибут может быть анимированным GIF. Положите его в папку слоя, как любую другую картинку атрибута. KURV проигрывает все анимированные слои одновременно и публикует каждый NFT как один анимированный GIF. Атрибуты PNG, WebP и JPG в той же коллекции на каждом кадре остаются неподвижными.

  • Один атрибут больше чем с одним кадром делает каждый NFT коллекции GIF-файлом. NFT без анимированных атрибутов становится GIF из одного кадра.
  • Предпросмотр в Студии, Показать 12 и NFT в полном размере показывают настоящий GIF, в том числе NFT без анимированных атрибутов. Плитки галереи и карточки для шеринга показывают первый кадр.
  • Порядок слоёв, редкость, правила, режимы наложения и прозрачность работают на анимированных слоях ровно так же, как на статичных.
  • Анимированный атрибут может быть в любом слое, над статичными или под ними, и один NFT может носить сразу несколько.
  • Один и тот же NFT всегда получается одним и тем же файлом. Публикация, которая остановилась и продолжилась, совпадает с уже опубликованным.
  • Каждый анимированный слой повторяется на протяжении всего NFT, а каждый NFT зациклен бесконечно. GIF, настроенный на однократное проигрывание, внутри NFT всё равно повторяется.
  • Цикл NFT длится столько, сколько нужно, чтобы его анимированные атрибуты совпали, но не больше 20 секунд. Моргание длиной 1 с рядом с покачиванием длиной 1,5 с даёт цикл каждые 3 с, и оба начинаются заново вместе.
  • Если два атрибута совпадают только больше чем через 20 секунд, цикл NFT длится по более длинному из них, а более короткий в этот момент прыгает к своему началу. Вкладка Проверка в Студии называет каждую такую пару.
  • Три атрибута и больше могут совпадать попарно, но не все вместе. Циклы 4 с, 5 с и 3 с попарно совпадают в пределах 20 секунд, а все три только через 60, поэтому NFT, который носит все три, прыгает. Вкладка Проверка называет и такие сочетания. Циклы, кратные друг другу, например 0,5 с, 1 с и 2 с, совпадают всегда.
  • Атрибут, который играет дольше 20 секунд, на отметке 20 секунд начинается заново.
  • Задержка 0 или 10 мс проигрывается как 100 мс, так же, как в браузере. Когда два слоя меняют кадры в пределах 20 мс друг от друга, вторая смена начинается на 10 мс раньше, вместе с первой.
  • В NFT не больше 240 кадров, и в одном файле атрибута тоже не больше 240, так что атрибут сам по себе проигрывает каждый свой кадр в пределах 20 секунд цикла NFT. Когда атрибуты, которые носит NFT, вместе меняются больше 240 раз за его цикл, NFT проигрывается в равномерном ритме. Цикл остаётся плавным, но кадры, которые попадают между двумя тактами, не показываются. Вкладка Проверка называет каждое такое сочетание и ритм, в котором оно проигрывается.

Вкладка Проверка в Студии перечисляет каждое из этих ограничений, как только хотя бы один атрибут движется, ещё до генерации.

  • В одном файле атрибута не больше 240 кадров и не больше 4096 пикселей по стороне, а все его кадры вместе дают не больше 268 миллионов пикселей (268 435 456): это 240 кадров размером 1057 × 1057. Кадр, обрезанный до движущейся части, считается только по своему размеру. Импорт отклоняет файл, который превышает любое из этих значений, и называет его.
  • Импорт также отклоняет GIF с повреждённым кадром, у которого данные картинки заканчиваются раньше самого кадра, и называет его. GIF из одного кадра подчиняется тому же правилу. Браузеры показывают такой кадр по-разному, поэтому единственно верного способа его нарисовать нет.
  • PNG-атрибут в анимированной коллекции может быть не больше 8192 пикселей по стороне. Импорт отклоняет файл больше и называет его. PNG, у которого данные картинки заканчиваются раньше времени, браузеры показывают недорисованным, каждый по-своему, поэтому предпросмотр в Студии и публикация отклоняют любой NFT с таким атрибутом и называют атрибут.
  • Цикл NFT длится не больше 20 секунд и содержит не больше 240 кадров. Что происходит сверх этого, описано выше в разделе Синхронизация.
  • На один NFT можно отрисовать не больше 1000 миллионов пикселей. Сюда входят чтение файла каждого анимированного атрибута, изменённая область каждого кадра в двух проходах, которыми рисуется NFT, и запись каждого кадра. Моргание и блёстки поверх полного фона в 1000 × 1000 дают около 160 миллионов. Короткий цикл, который перерисовывает весь холст на каждом кадре, рядом с медленным атрибутом, растягивающим NFT до 16 секунд, даёт больше 1000 миллионов. NFT, за которым нет ничего сплошного, обходится дороже, потому что кадр, делающий пиксель прозрачным, записывается целиком. Слой, которого нет у части NFT, через вес None, количество NFT без него или NFT в uniques/, который его пропускает, не считается сплошным фоном для них. Вкладка Проверка называет каждое сочетание сверх лимита, а публикация останавливается на первом NFT с таким сочетанием и называет его атрибуты.
  • Один NFT может весить не больше 20 МБ (20 971 520 байт). Публикация останавливается на первом NFT, который больше, и называет его.
  • Одна публикация может нести всего не больше 40 ГБ NFT (42 949 672 960 байт): это около 2000 NFT по 20 МБ или 13 000 по 3 МБ. Когда первая партия NFT отрисована, карточка Публикация показывает, сколько при таком размере займёт вся коллекция, если это больше 40 ГБ, и публикация продолжается. NFT без анимированного атрибута гораздо меньше, чем с ним, поэтому первые NFT могут создать впечатление, что коллекция, которая помещается, слишком большая. Публикация останавливается, только когда отрисованные NFT действительно превышают 40 ГБ, до отправки этого NFT.
  • Каждый кадр NFT рисуется из одной палитры не больше чем в 255 цветов, и ещё один индекс отводится под прозрачные пиксели. NFT, в котором 255 цветов или меньше, сохраняет каждый из них точно. NFT, где цветов больше, получает 255, которые лучше всего подходят его арту, без дизеринга, поэтому на плавных градиентах могут проявиться полосы.
  • Пиксель GIF либо прозрачный, либо сплошной: пиксель с непрозрачностью меньше половины записывается прозрачным. Там, где под ним нет ничего сплошного, мягкие края становятся резкими. Предпросмотр в Студии предупреждает, если у NFT есть такие края.
  • Движутся только GIF-файлы. От анимированного PNG или WebP используется первый кадр.
  • Скачать копию записывает каждый NFT в файл по мере отрисовки. Когда NFT в сумме больше 1 ГБ, копия сохраняется несколькими файлами не больше 1 ГБ каждый, пронумерованными с 1. В каждом свои NFT и их файлы с описаниями, а в последнем ещё и manifest.json и stats.json. Первый файл начинает сохраняться, когда вы нажимаете Скачать копию. Каждый следующий файл получает свою кнопку под ней, как только записан, и сохраняется, когда вы её нажимаете.
  • Отрисовка анимированной коллекции занимает больше времени, чем статичной, потому что каждый кадр каждого NFT рисуется в вашем браузере перед публикацией. Оценка времени на карточке Публикация учитывает эту отрисовку, NFT за NFT.
  1. Экспортируйте каждый GIF в размере холста, например 1000 × 1000, с его частью, нарисованной на своём месте, и прозрачным остальным. Так же, как PNG-атрибут.
  2. Оставляйте .gif в конце имени каждого GIF-файла. Импорт считает папку анимированной, когда в ней есть файл с именем на .gif, и затем находит в ней каждый GIF по содержимому. В папке, где нет ни одного файла с именем на .gif, каждый атрибут читается как статичная картинка.
  3. Держите циклы в простых соотношениях: 0,5 с, 1 с, 2 с. Атрибуты с циклами 1,3 с и 1,7 с совпадают только через 22 секунды, и один из них будет прыгать.
  4. Задавайте задержки кадров шагами по 10 мс. В этих единицах считает GIF.
  5. Сделайте нижний слой, который заполняет весь кадр: так края останутся мягкими, а NFT будут рисоваться быстрее.
  6. Делайте движущуюся часть маленькой, а кадров поменьше. NFT получатся легче, а коллекция опубликуется быстрее.
  7. После импорта откройте вкладку Проверка и прочитайте карточку анимированных слоёв.

Дальше: Студия, правила и генерация.

Ничто здесь не является финансовым советом. Прочитайте раздел «Риски и отказ от ответственности», прежде чем минтить, покупать или продавать обратно в Vault. Вернуться на kurv.fun. Политика конфиденциальности. Условия использования. .