Alexander_Kolmachikhin
@Alexander_Kolmachikhin
Android Programming

Как реализовать спрайтовую анимацию в андроид (для объектов в игре)?

Прежде чем задать вопрос, признаюсь, что нашел несколько способов:
  • Сделать около 50-ти кадров и прописать в xml в нужной последовательности. Мне этот способ сразу не понравился так как мне нужно анимировать героя, который может менять костюмы, а это значит на каждый образ по 50 кадров, а 10 костюмов это больше 500 картинок!
  • Использовать ObjectAnimator. Это довольно классный инструмент, но для анимации героя, его дахания движения рук и ног он явно не подходит.
  • Использовать 1 файл в котором находяться все кадры склеенные друг с другом, а далее программно нарезать этот файл и отображать по кадру.

Теперь к моей задаче. Мне нужно анимировать героя, причем анимация не сильно сложная, но и не такая легкая чтобы с ней справлялся ObjectAnimator. Я делаю не игру но в моем приложении задуманы персонажи и они должны быть "живыми" (они должны только стоять и дышать, а бегать и убивать монстров им не нужно), а так же менять свои образы/костюмы.
Я использую Spriter для создания анимации. Он позволяет сохранить анимацию как:
- гифка (gif)
- куча отдельных кадров (png)
- куча склеенных в один файл кадров (png)

Но как имея вот это все можно сделать грамотную анимацию героя на android с использованием java? Как это делают разработчики игр.. и не игр?
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
Обычно делают "кучу склеенных в один файл кадров" на полотне 1024х1024 или 2048х2048.
Ещё больше размер - плохо.

Соответственно, в самом спрайтере лучше экпортировать в виде "кучи отдельных кадров". Но! При этом нужно сделать свою небольшую софтину, которая будет конвертировать удобочитаемый XML (или JSON) от спрайтера и отдельные изображения в свой собственный формат анимаций, удобный вам.

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

Если вы используете конкретный движок, то возможно потребуется погуглить конвертер в поддерживаемый формат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы