Eugene Melnikov (e.ov) animation blog
رفتن به کانال در Telegram
3D animator's blog
نمایش بیشترکشور مشخص نشده استدسته بندی مشخص نشده است
330
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+17 روز
+1030 روز
آرشیو پست ها
Завёл страничку для своего бесплатного софта
eu-melnikov.github.io
Там уже лежат утилиты для Maya и не только: scene review, swap animation, quick save, camera history и другие. Всё бесплатно, без регистрации.
Буду добавлять новые тулзы по мере написания.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Shake Table (Script for Maya) work in progress
Добавил пару фич со слайдерами, например scale теперь из центра. Показалось что так будет нагляднее в какую сторону задавать начальный scale. Вчера его пробовал в работе (на работе) и оказалось есть чего доделать. Также поменял немного математику расчетов. В общем интересная штука. А, еще я подумал зачем вычислять фазы отскоков, когда можно скормить нейронке образец относительно которого она будет делать вычисления. То есть я буквально закинул в нее .ma файл на основании которого она реализовала расчет математики. А еще, добавил разные множители для вращения/перемещения и для масштабирования. Это давно надо было сделать. Ну и будет два режима отскок и пружинка. И, после настройки одного отскока или пружинки, можно будет размножить этот эффект на другие ключевые кадры - там есть поле +frames. Задаем кадры где нужен отскок и скрипт туда это все тоже добавляет. Настройками вроде шума и экспоненты сейчас никого не удивишь, но работает это не для всех слайдеров а для вращения. Пока что. Может быть потом добавлю это и для scale. Посмотрим.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
swap animation (Maya 2019+)
Меняет местами анимацию между двумя объектами на выбранном участке таймлайна. Всё что за пределами участка — остаётся нетронутым.
Зачем это нужно
Исправление мокапа — когда треки перепутались между костями
Эксперименты с таймингом — быстро попробовать как будет выглядеть если персонаж A сделает то что делал B
Работа с циклами — переставить фазы анимации между объектами
Как использовать
1. Выдели 2 объекта
2. Выдели диапазон на таймлайне (Shift+drag) или ключи в Graph Editor
3. Запусти
swap_animation
Особенности
- Работает с translate, rotate, scale
- Автоматически ставит граничные ключи чтобы анимация не "уехала"
- Поддерживает Undo (Ctrl+Z)
- Maya 2019+ / Python 2.7
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scriptsShake Table (Script for Maya)
История о том, как немного скучно просто анимировать шейки, тряски и прочий подобный "проходняк". Идея родилась давно, но времени на реализацию как-то не находилось. Возможно, у кого-то это уже есть в каком-то виде, где-то реализовано, я правда не искал. Если есть идея, я сразу открываю студию, "ИИ" и погнал писать. Я человек творческий, и мне интересно делать скрипты под конкретные задачи — это всегда челлендж.
В общем, получился интересный прототип. Посмотрю, насколько удобно это будет в работе, и если пройдет испытания — возможно, тоже пойдет в релиз. Начало, во всяком случае, мне нравится.
Когда с утра до вечера анимируешь пушки, и качество анимации требуется высокое — волей-неволей задумаешься, как бы так шейкать, чтобы и пузо тряслось, и локти, и плечи, и всё с затуханием и по нужным тебе осям. Да, внимательный зритель увидел там шкалы «вторичные» и «третичные» контролы.
В общем, прикольная тулза получилась.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Решена проблема, которая многих волнует: а не просчиталась бухгалтерия при расчетах... =))
Это петпроект, чисто ради фана. Короче вбиваете аванс и получку что упала на карту, зп в бачах, процент налога - клацаете расчитать / сохранить. - Вы великолепны.
Расчет так же падает в папку results которая автоматически создается при первом расчете.
Зп в баксах, налог, и курс бакса - переживают перезагрузку и хранятся здесь же в папке data.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Выпустил обновление для "scene_review_tool". Скрипт стал более компактным и почти не занимает места на экране. Отличный инструмент для потокового отсмотра входящей работы аутсорса и не только.
Воркфлоу: выбрать папку, выбрать нужно ли учитывать подпапки, выбрать формат который будем смотреть. Нажать Start. Далее, next-next-next-next. Если надоело можно нажать stop. Суть - каждый файл открывается только один раз. Не запутаетесь - что смотрели а что нет.
UPD - добавлен .ma формат
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
https://render.ru/ru/emelnikov/post/27826
Моя новая статья на Render.ru о работе над скриптом QuickAnimaPicker
Вайбокдинг - это просто, говорили они...
👍 Всем добра. =)
#vibe_coding #год_2026
Бывает ситуация, когда работаешь с анимационными слоями или в Trax Editor, и в какой-то момент нужно запечь анимацию в клип или на слой. Если просто выделить все кости и добавить в клип или слой, то запечётся вообще всё, включая кости которые сидят на констрейнтах - какие-нибудь запястья, авто-плечи, обвес и подобные. А это плохо. потому что констрейнты перестанут работать.
Вот для этого и нужен скрипт. Выделяешь корень скелета (любой родительский объект), запускаешь - и он выбирает только те кости, которые ничем не управляются. Их можно смело печь, а кости с констрейнтами останутся как были. Скрипт бывает выручает нужно схлопнуть слои в один, или вытащить анимацию из клипа в обычные ключи, или что-то подобное. Скрипт выделяет только joints и ничего кроме joints.
Применение: кинуть скрипт на полку (питон), выделить родительский объект, ткнуть кнопку скрипта = вы великолепны! Maya 2019-2026
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Новая цель. Прототип "на коленках" уже собран, погнали разбираться дальше.
Честно говоря, меня уже не столько сам инструмент интересует, сколько процесс работы с ИИ. Где граница моих возможностей объяснить задачу? Что нейронка не сможет понять, как бы я ни формулировал? Где тот предел нашего общения?
Это как челлендж - найти границы коллаборации человек-ИИ на реальной технической задаче.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
FreeMotionTrail_v1.22.3 (For Maya)
Пилю свой бесплатный motion trail плагин для Maya и хочу немного рассказать про процесс.
Идея простая: стандартный motion trail в Maya это здорово, но AnimBot-овский лучше, но это платно. Я хотел для себя trail, который можно закинуть в сцену одной кнопкой, и чтобы он просто работал. Красиво, быстро, без танцев с бубном. И бесплатно.
Начал с базы — VP2-нода на Python, кеширование позиций, subframe sampling для гладких кривых. Потом обвесил фичами: spacing dots, orientation frets по осям, transparency falloff. Сделал Qt-менюшку в стиле Maya — тёмная, компактная, с сабменю.
А дальше понеслось. Добавил три стиля отображения — Dashed, Dots, Thick — и каждый со своей логикой рисования. Dashed рисует прямые палочки кадр-к-кадру с чередованием цветов. Dots — тонкие линии + жирные точки на каждом кадре. Thick — классический гладкий сплайн. Плюс Custom mode поверх любого стиля, где можно крутить толщину, размер точек, цвета.
Последнее крутое — Temperature coloring. Четыре режима подсветки trail'а:
— Spacing — где быстро, где медленно
— Gimbal Lock — подсвечивает зоны близкие к гимбал-локу
— Noise — показывает jitter и дрожание в анимации
— Depth — раскраска по удалённости от камеры
Ещё есть Object Space — trail рисуется относительно другого объекта (например root-контроллера), и Vertex Offset — можно повесить trail не на пивот, а на конкретную вершину меша.
Весь плагин — два файла: нода + UI. Кидаешь в папку, загружаешь, работает. Никаких зависимостей. Пока только для Maya2024, но как закончу его видимо перенесу в другие версии. Было интересно попробовать реализовать это все самому с помощью нейронки. Потратил пару вечеров. И результатом доволен. Самым сложным была отрисовка X-Ray траектории поверх объекта. С этим дольше всего провозился.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
eu_anim_curve_tools
Продолжаю ковыряться с инструментами animbot, которые меня зацепили. Прикольные математические задачки на работу с кривыми, и при этом реально полезные для повседневной анимации.
Построил ядро, к нему понемногу прикручиваю скрипты, которые делают похожие вещи. Пока идёт очень легко и быстро. За выходные запилил свой UI, накидал уже 16 инструментов.
Нет, всё подряд конечно делать не планирую — только то что мне реально нужно или просто интересно с точки зрения инженерии и математики.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Здесь free for use два интересных инструмента, которые часто использую в работе.
easy_in_out_slider.py
pull_push_slider.py
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Я немного покопался в устройстве инструментов работы с анимационными кривыми на примере pull/push и easy in/out - из любопытства, как это устроено “под капотом”. Было интересно посмотреть на логику ядра, на то, как инструменты опираются не только на выделенные ключи, но и на соседние - как на опорные точки сегмента. Оказалось, что ощущение «магии» таких тулов во многом строится на довольно элегантной математике: нормализация времени внутри сегмента, интерполяционная база и ремап весов.
Попробовал воспроизвести поведение в небольших прототипах - со слайдером, живым обновлением кривой и корректным undo-чанком. Особенно любопытно было поймать artist-feel: где нужно усилить push, где ease должен быть агрессивнее, чем простая степенная функция. В процессе стало лучше понятно, почему “простые” на вид инструменты так сильно ускоряют полировку анимации - там очень точно подобрана математика отклика.
В итоге это превратилось в маленькое исследование curve-алгоритмов и хорошее упражнение на инженерию поведения инструментов.
Ниже free for use два интересных инструмента, которые часто использую в работе.
easy_in_out_slider.py
pull_push_slider.py
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Как я сделал себе загрузчик анимаций за выходные (UPD)
История одного pet project'а
Знаете это чувство, когда каждый день думаешь: "Эх, было бы здорово если бы тут была вот эта кнопочка..." У меня была такая ситуация с загрузчиком анимаций на проекте. Рабочий инструмент с прошлого проекта, но под мой конкретный workflow не совсем заточен.
Программисты заняты более важными вещами - багфиксы, новые фичи, оптимизация. Переделывать легаси под каждого аниматора - не в приоритетах. И правильно.
А мне стало интересно: что если попробовать сделать свое? Не для замены, а как эксперимент. С AI-помощниками даже аниматор без программерского бэкграунда может что-то накодить. Ну и руки чесались.
Что добавилось
Работа с удалёнными аниматорами
У нас периодически фрилансеры. Давать полный доступ к проекту - не вариант. Пересылать архивы - тоже.
Решение: копируем структуру папок с анимациями куда угодно - хоть на флешку, хоть в облако. Человек подключается и видит наше дерево анимаций. Работает, создает новые. Потом отдаёт файлы - мы подставляем в проект. Безопасно и удобно.
Пресеты для частых наборов
Каждый день одни и те же комбинации: "боевка с пистолетом", "перемещения", "прыжки"... Находишь, выделяешь, грузишь. По сто раз.
Теперь: выделил → ПКМ → "Сохранить пресет". Завтра одним кликом загружаю весь набор. Мелочь, а экономит кучу времени.
Быстрое создание новых анимаций
Хотелось просто: нашёл папку → ПКМ → "Создать анимацию" → имя и тайминг → готово. Так и сделал. Когда заводишь десятки анимаций, это заметно ускоряет процесс.
Автоматический рендер превьюшек
Закончил работу - нужны превизы с разных ракурсов. Раньше вручную. Теперь кнопка "Render previews" - скрипт сам всё отрендерит и сохранит с правильными именами. Пошёл за кофе - всё готово.
Как делалось
Честно - я не программист. Совсем. Весь код с помощью AI: я объяснял что хочу, он предлагал решения, я тестировал, мы итерировали. Вайб-кодинг 😄
Уложился в 6 часов за выходные. Код там наверняка кривой, но работает для моих задач.
Итог
Получился инструмент под мой workflow. Использую каждый день, экономит время. Это не замена основному скрипту - альтернатива для моих кейсов.
Баги есть (это альфа), но стабильно работает. Если коллегам зайдёт - поделюсь исходниками.
Несколько выводов:
AI помогает - не нужно быть Senior Developer'ом для автоматизации.
Свой костыль лучше идеального ожидания - программисты заняты важным, можно попробовать самому.
Pet project'ы - весело - интересный опыт плюс польза.
Не обязательно идеально - для personal use достаточно "работает"
P.S. История про аниматора с нулевым опытом в программировании, который попробовал сделать удобную штуку. Не претендую на звание программиста. Просто делюсь опытом - может вдохновит попробовать что-то своё 😊
Зачем нужны выходные, если не доделать то, что давно хотел? 🚀
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Как я написал batch видео-загрузчик.
Решил сделать программу для скачивания видосов с YouTube и т.д. Просто в образовательных целях, было интересно. Задачка на вечер, казалось бы. Ничто не предвещало...
Написал интерфейс, прикрутил yt-dlp, запустил. Скачал одно видео - работает. Скачал пять видео, ну красота! Но вы же понимаете, скачивать видео по одной штуке – это слишком скучно, обычно, ctrl+C - Ctrl+V. Добавил возможность скачать плейлист. Затем, подумал, плейлист хорошо, а по списку ссылок из txt файла – еще лучше. Прикрутил и эту фичу. Затем, подумал, у меня же есть браузер, у которого есть избранное со ссылками на какие-то там видосы. Хм, интересно, а можно ли подрубиться к избранному в браузере, выбрать папку, и загрузить все оттуда? Оказалось можно и не сложно, тк избранное браузера это такая уязвимая дыра на json-ах, в общем не сложно и увлекательно. А можно ли прикрутить многопоточность, чтобы качать быстрее - выше - сильнее и не словить бан? Можно, если осторожно =) И вот тут началось. Попробовал скачать 300+ видео из списка. Программа молча закрылась где-то на десятом. Просто - пуф, и нет окна.
Добавил детальное логирование. Запустил снова. Лог оборвался на середине строки. Оказалось, что на некоторых ссылках программа падает не из-за моего кода, а где-то в недрах библиотек. Пришлось оборачивать каждое видео в защиту — теперь если одно не качается, программа просто пропускает его и идёт дальше.
Далее пока копался, нашёл интересное. В одной функции после return висело 190 строк кода. Я когда-то переписал логику, а старую забыл удалить. Python это проглотил без единого предупреждения.
Ещё веселее был try-except, который открылся и не закрылся. Дальше начинался второй try, и все ошибки между ними улетали куда-то. То работает, то не работает… Божественный рандом какой-то.
А самой жесткой проблемой оказался прогресс-бар. Я его обновлял прямо из потока загрузки. Иногда работало, иногда нет, иногда программа просто падала. Оказывается, в Qt библиотеке для интерфейсов категорически нельзя трогать окна и кнопки из фонового потока. Пришлось переделать через систему сигналов, фоновый поток отправляет сообщение, а главный поток обновляет интерфейс. После этого краши прекратились.
Для таймаутов я использовал механизм, который работает только на Linux. На Windows программа просто зависала на битых ссылках. Переписал на другой подход — теперь работает везде одинаково. И потом была еще небольшая проблема с Firefox и его закладками. Браузер блокирует свою базу данных, пока работает. Пришлось копировать базу во временный файл, читать оттуда и аккуратно удалять за собой.
Ну и финальная сборка в exe. Упаковка программы в один файл тоже был квест. Забыл указать одну библиотеку и программа падает при запуске. Забыл другую - падает при первом скачивании. Пути к файлам работают по-разному в разработке и в готовой программе. Иконка должна существовать, иначе сборка валится.
В итоге, из затеи на один вчера программа получилась на три вечера, на 2200 строк, которая качает видео с 1800+ сайтов, показывает прогресс, работает с плейлистами, текстовыми файлами со ссылками, импортирует закладки из Firefox и не падает на битых ссылках. Для теста качнул лист с примерно 1500 файлами - полет нормальный, ничего не упало. В общем, эксперимент удался.
Главное, что я понял - логирование всему голова. Без детальных логов ты просто гадаешь. Многопоточность еще одно минное поле, один неправильный вызов и всё летит. То, что работает на Linux, может не работать на Windows. И мёртвый код — это не просто мусор, он прячет реальные баги. Можно было просто пользоваться консольным yt-dlp. Но где в этом веселье?
На вопрос - зачем я это делаю? Ответ простой - это здорово развивает голову, формат мышления, логику, ну и азарт конечно.
З.Ы. Вот говорят что вайбкодинг – это просто. Что нейронка все сама за тебя пишет. Ха-Ха! Как говорится: «да», но «нет».
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Всем привет. Записал небольшой обзор на свой новый инструмент
Playback & AnimationSpeedControl
Это идея из копилки идей от подписчиков (ссылка на пост)
Если кому надо - цена вопроса 2к денег. Писать в личку
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Astra SmartVideoConverter
Записал небольшой видеообзор на свою новую программу.
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
+1
Закончил работу над Astra SmartVideoConverter - это профессиональный инструмент для пакетной конвертации видео MOV/MP4 в оптимизированный MP4 с поддержкой GPU-ускорения и распределённой обработки на нескольких компьютерах.
Ключевые возможности
✓ Пакетная конвертация неограниченного количества файлов
✓ GPU-ускорение: NVIDIA NVENC, Intel QSV, AMD AMF
✓ Smart Mix Mode — GPU + CPU одновременно (+45% скорости)
✓ Сетевой режим — распределённая конвертация (N компьютеров = N× быстрее)
✓ Queue Manager — сохранение и загрузка очередей конвертации
✓ Автоматическая конвертация Slow-Motion (240fps → 30fps)
✓ Сохранение метаданных и структуры каталогов
✓ Lazy loading — мгновенная работа с 10,000+ файлов
Подробнее можно прочитать тут:
https://telegra.ph/Astra-SmartVideoConverter-01-10
или тут:
https://render.ru/ru/emelnikov/post/27705
👍 Всем добра. =)
#vibe_coding #год_2026 #my_scripts
Нейронка сегодня выдала: "KISS принцип (Keep It Simple, Stupid). Зачем усложнять программу дополнительными зависимостями и кодом, если есть готовое специализированное решение?"
Это было в контексте... Сижу, никого не трогаю, пишу вычислительный комплекс для мультипотокового кодирования... И подумал, что надо бы прикрутить сюда параметрию напряжения, температуры CPU/GPU, может еще FUNs добавить для контроля. И тут она выдает KISS... Ну вы поняли. Отправила меня к OpenHardwareMonitor. Кстати, я не знал об этой штуке, всегда пользовался AID-ой, но она громоздкая под мои задачи. Напомню, я простой аниматор, а вайбкодинг это просто баловство и вайб. =)
#vibe_coding #год_2026
