Онлайн сервис, позволяющий конвертировать анимированные графические изображения в модели MDX 800, для дальнейшего использования в Warcraft 3 любой версии в качестве фреймов типа Sprite. Сервис является автоматизированным скриптом для ручного варианта создания фреймов из рамок стима, где было много рутинной работы. Теперь же достаточно перетащить нужный фал в UPLOAD поле и вы получите, готовую MDX модель и текстуру к ней.
Поддерживаемые форматы входных файлов:
GIF
APNG

Назначение

Для тех кто не понял, назначение, и зачем ему это:
Это фреймы, которые работают на любом патче, 1.26, 1.26 южапи, 1.29+, назначение фреймов - добавить или изменить визуальную составляющую карты.
Примерный код на Lua
function InitAllSprites()
    CreateSprite("kenosbynpesta", 0.3, 0.0, 0.5)
    CreateSprite("anime", 1, 0.2, 0.5)
    CreateSprite("anime-nigarundayo", 0.8, 0.5, 0.5)
    CreateSprite("cat-walking", 0.5, 0, 0.3)
    CreateSprite("excalibur-soul-eater", 0.5, 0.2, 0.3)
    CreateSprite("futurama-fry", 0.7, 0.5, 0.3)
    CreateSprite("hp-baxxter", 1, 0.8, 0.3)
    CreateSprite("cat-love", 0.3, 0.0, 0.15)
    CreateSprite("paimon", 0.4, 0.2, 0.15)
    CreateSprite("pico-boku-no-pico", 0.45, 0.45, 0.12)
end

function CreateSprite(path, scale, x, y)
    local sprite = BlzCreateFrameByType("SPRITE", "SpriteName", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
    BlzFrameSetAbsPoint(sprite, FRAMEPOINT_CENTER, x, y)
    BlzFrameSetSize(sprite, 0.0001, 0.0001)
    BlzFrameSetModel(sprite, path, 0)
    BlzFrameSetScale(sprite, scale)
end
Примерный код на Jass
function InitAllSprites takes nothing returns nothing
    call CreateSprite("kenosbynpesta", 0.3, 0.0, 0.5)
    call CreateSprite("anime", 1, 0.2, 0.5)
    call CreateSprite("anime-nigarundayo", 0.8, 0.5, 0.5)
    call CreateSprite("cat-walking", 0.5, 0, 0.3)
    call CreateSprite("excalibur-soul-eater", 0.5, 0.2, 0.3)
    call CreateSprite("futurama-fry", 0.7, 0.5, 0.3)
    call CreateSprite("hp-baxxter", 1, 0.8, 0.3)
    call CreateSprite("cat-love", 0.3, 0.0, 0.15)
    call CreateSprite("paimon", 0.4, 0.2, 0.15)
    call CreateSprite("pico-boku-no-pico", 0.45, 0.45, 0.12)
endfunction

function CreateSprite takes string path, real scale, real x, real y returns nothing
    local framehandle sprite = BlzCreateFrameByType("SPRITE", "SpriteName", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
    call BlzFrameSetAbsPoint(sprite, FRAMEPOINT_CENTER, x, y)
    call BlzFrameSetSize(sprite, 0.0001, 0.0001)
    call BlzFrameSetModel(sprite, path, 0)
    call BlzFrameSetScale(sprite, scale)
    set sprite = null
endfunction

Примеры

Лицевая анимация
Весь экран в гифках

Планы на будущее

  • оффлайн конвертер
  • поддержка mp4
  • поддержка webp
  • удаление дырок в APNG и возвращение этого формата
  • ✅исправление проблем при выравнивании пропорции геосета
  • ✅смена шаблона на более адекватный
  • ✅опциональное переключение режима фильтрации
  • конвертация текстур в DDS
  • конвертация текстур в BLP
  • ✅смена типа текстуры внутри модели

Смена скорости анимации

  1. Запускаем Reteras Model Studio
  2. Открываем модель
  3. Scripts=> Change Animation Lengths by Scaling
  1. Изменяем скорость анимации

Конвертация текстур

  • Для DDS используем Paint net со следующими настройками

Карты примеры

`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
30
Попутно было написано два маленьких сервиса:
  • split - разбивает изображение на кадры.
  • pack - собирает кадры в текстуру.
37
Там я махаю палкой
Этот комментарий удален
26
В ретере есть ещё одна полезная фича: можно в один клик отзеркаливать гифки
Загруженные файлы
26
Мб будет немного в тему, в TRMS есть генератор гифок. Можно в один клик получить из модели гифку с прозрачностью средней паршивости. Там ещё есть какие-то параметры для кадров, надо разобраться с ними подробнее.
Делаем из модели гифку, чтобы сделать из гифки модель.
Загруженные файлы
33
Делаем из модели гифку, чтобы сделать из гифки модель.
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.