admin / 26.02.2018

Spine — первые шаги / Хабр

2D ragdoll [скелетная анимация в 2D]

Paltr Постоялец www 16 фев. 2010 20:01 #0

Доброго времени суток!
Года 4 назад делал скелетную анимацию в 3d, так что теорию представляю. А вот как это будет в 2d выглядеть (например: можно достойно выглядящий файтинг с помощью данной технологии сделать), как с этим работать (в смысле есть ли какая-нибудь утилита для создания таких анимаций) не представляю. Нашел множество флеш игр с человечками-палочками, но не одной достойной реализации с нормальными текстурированными модельками. Может поделитесь мнением на этот счет?
Заранее благодарен за достойные ответы.

Что мешает отрендерить 3D-анимация в 2D-спрайты? В 3dsMax или Maya — это легко делается.

JR-44
> Что мешает отрендерить 3D-анимация в 2D-спрайты? В 3dsMax или Maya — это легко
> делается.
Скелетка имеет свои плюсы.. можно делать микширование анимаций.. и как слдествие — всякие сафферы.

Как то давным давно видел классную демку. Там скелет висел на турнике. И когда крутишь мышкой вокруг него — он делал разные сальто и подьемы с переворотом. Очень впечатляюще выглядело. Но сейчас даже не знаю как это найти.

Paltr Постоялец www 17 фев. 2010 14:16 #6

Тут уже даже вопрос в том чтобы подходящий редактор с возможностью экспорта для этого найти. Пока не нашел — вот сейчас свой пишу =(((

ret Постоялец www 17 фев. 2010 18:00 #7

Paltr
если напишешь, поделись пожалуйста. что ты другие не искали и не писали 🙂

Paltr Постоялец www 17 фев. 2010 18:01 #8

ret
ok

mbait Постоялец www 18 фев. 2010 15:23 #9

Есть Gymnast — работает на физ. движке из состава XNA. Исходники автор мне не дал в своё время =(

сейчас интересует этотже вопрос.. хочу для игры сделать анимации смерти зомби рег дол стаел)
как та прога которая в последем посте ?

/ Форум / Программирование игр / 2D графика и изометрия

Тема в архиве.

Какие есть бесплатные программы для 2d скелетной анимации?

Информация о программе

Spine – удобное функциональное приложение, предназначенное для оптимизации рабочего процесса проектирования 2D игр. Воспользовавшись его функциями, пользователи могут создать двухмерную анимацию скелета, что позволяет получить более реалистичные и качественные движения моделей. Утилита включает в себя большой набор готовых графических элементов, с помощью которых можно собирать собственных персонажей или фигурки.

Встроенный проводник позволяет быстро оперировать файлами и находить требуемые компоненты. На интерфейсе программы отображается рабочая среда, составные компоненты, система управления и меню демонстрации. Созданные проекты можно сохранить в двух форматах: jar и exe. Для удобства, разработчики добавили поддержку горячих клавиш и специальную функцию автоматического обновления компонентов.

Скачать бесплатно полную русскую версию Spine с официального сайта без регистрации и смс.

Лицензия: Бесплатная
Разработчик: Esoteric Software
Язык: английский, русский, украинский

Системные требования

  • Поддерживаемые ОС: Windows 7, Vista, 8.1, 10, XP, 8
  • Разрядность: 32 bit, 64 bit, x86

Программа Spine предназначена для создании скелетной 2D анимации игровых персонажей и не только. Для этого, вместо цельного изображения персонажа, нам понадобятся его отдельные части, которые будут впоследствии анимированы путем привязки костей. Это дает нам следующие преимущества:

  • Плавная анимация. Промежуточные кадры просчитываются автоматически во время выполнения, благодаря этому анимация выглядит более живой
  • Возможность модифицировать анимацию во время выполнения. Например, поменять у определенной части тела размер, угол поворота или цвет
  • Экономия видеопамяти. В данном случае, для анимации загружаются только составные части персонажа, а не цельные кадры

Из недостатков можно отметить следующие:

  • Необходимость просчитывать кадры во время выполнения, что при большом количестве анимаций может отрицательно сказаться на производительности
  • Необходимость использования специальной runtime библиотеки для загрузки анимации

Последний недостаток был актуален до недавнего времени.

Собираем персонажа в Spine

В программе существуют два режима — Setup и Animate, между которыми можно переключиться в левом верхнем углу. Сборка персонажа и создание его скелета будет полностью проходить в режиме Setup. К режиму Animate мы перейдем чуть позже.

Для начала, нам понадобится изображение персонажа в качестве шаблона. Отталкиваясь от него, мы сможем собрать его скелет. Для этого нам потребуется указать путь к директории, где хранятся все изображения, которые мы планируем использовать в анимации (выбрать ветку Images и указать корректный путь в форме под структурой проекта). Выбрав картинку-шаблон, нужно перетащить ее на рабочую область. Изображение автоматически привяжется к опорной кости, которая расположена в начале координат (для того, чтобы облегчить расположение скелета в игре).

С помощью инструмента Create на панели Tools создаем кости тела, рук, ног и головы персонажа. Перед созданием новой кости, нужно выбрать кость, которая будет считаться родительской. Переименуйте созданные кости (двойной клик на кости в дереве проекта). Перейдя в слот изображения-шаблона, нужно установить его цвет и прозрачность. Слот обозначается круглой иконкой в дереве костей.

2D ragdoll [скелетная анимация в 2D]

Это необходимо для того, чтобы шаблон не сливался с изображениями, которые мы привяжем к костям.

Чтобы привязать конкретное изображение к кости, нужно в древовидной структуре выбрать изображение и выделить соответствующую кость нажав Set Parent. Также, изображение к кости можно привязать перетащив его к определенной кости в древовидной структуре. После привязки появится всплывающее окно, информирующее о привязки изображения к одноименному слоту.

Дело в том, что изображения не привязываются к кости напрямую. Вместо этого, они привязываются к слоту, который в свою очередь привязан к кости. Это позволяет привязывать к кости несколько изображений. Но только одно из них может отображаться в анимации. Расположить изображения в соответствии с шаблоном помогут инструменты Translate (V) и Rotate ©. Все операции трансформации лучше совершать движением мыши в свободной рабочей области, чтобы случайно не выбрать соседние элементы.

Установить порядок отображения изображений по оси Z можно в ветке Draw Order. Там же можно отключить видимость шаблонного изображения.

Чтобы отрегулировать положение костей, не затрагивая изображение или дочерние кости, нужно воспользоваться переключателями Image и Bone на панели Compensation.

Анимируем персонажа в Spine

Пришло время оживить наш персонаж, поэтому мы перейдем в режим Animate и добавим новую анимацию.

Чтобы анимировать персонажа, необходимо установить скелет в определенную позу и создать её ключевой кадр. Между ключевыми кадрами кости выставляются автоматически.

Чтобы создать ключевой кадр, нужно выделить все кости (кроме опорной) и нажать на иконку ключа рядом с инструментами трансформации. В этом случае, будут созданы ключевые кадры для всех костей, даже если они не меняли их расположение, масштаб или поворот. Цвет иконки с ключом может сигнализировать о следующих вещах:

  • зеленый — значения не были изменены, нет необходимости в создании ключевого кадра
  • желтый — значения были изменены, но ключевой кадр не установлен
  • красный — ключевой кадр установлен

Ключевые кадры можно создать и другим путем: выделив все кости и нажав клавишу K.

В этом случае, ключевые кадры будут созданы только для измененных костей. Горячая клавиша L позволит установить ключевой кадр только для активного инструмента трансформации.

Точка отсчета анимации находится в нулевом кадре. Перемещаясь по временной шкале, изменяйте положение персонажа и создавайте ключевые кадры. Чтобы усовершенствовать анимацию, можно воспользоваться кнопкой Stepped, которая отключит интерполяцию. Это позволит четче увидеть основные позы и отредактировать их.

Во вкладке Graph можно отредактировать кривую интерполяции между выделенным и следующем ключевым кадром. Нелинейная интерполяция, создаваемая с помощью кривой Безье, является ключевой моментом в создании реалистичной анимации.

P.S. Персонаж из примера создан по туториалу Криса Хильденбранда Character Animation with Inkscape.

P.P.S. Чтобы лучше понять, как построить скелет персонажа советую детально изучить стандартные примеры (Spine > Examples).

Начиная работать аниматором для игр, мне пришлось учиться на своих ошибках. Первые анимации для проекта PersianWars я старался делать наиболее приближенными к реальности, что, как не удивительно для меня, в игре выглядело очень плохо.

Введение.
Подготовка к анимации.
Анимация.
Начало и конец походки.

Введение.

Был даже момент, когда заказчику не понравились первые пробные анимации. Попробовал несколько утрировать движения и добавил анимацию одежды, это помогло очень хорошо, даже настолько, что заказчиком, был задан вопрос: это у вас новый аниматор?

В общем, с этого момента я начал осваивать и понимать, как нужно делать анимацию для игр. Теперь спешу поделиться накопленным опытом.

Основное правило: неважно как это сделано, главное как это смотрится!!!

Это правило относится не только к анимации, а ко всему, что можно увидеть в игре.

В игре типа стратегии, или РПГ, где персонажи основную часть времени находятся на очень отдаленном расстоянии, надо соблюдать следующие подправила:

Правило первое, движения должны быть размашистыми: например, представьте себе, как бьют молотком по гвоздю… Правильно,  молоток в замахе доходит до уровня уха, затем резкий удар, при этом, тело немного отклоняется назад, и скручивается. Для игр же, слово немного не подходит, если вы делаете стратегию, этого движения просто не будет видно, для более крупных планов, оно будет казаться куцым, недоделанным. Значит надо сильнее прогнуть тело, сильнее его скрутить, и замах сделать более длинным.

Правило второе, детальней надо, детальней:

Если вы делаете спрайтовую игру, то здесь все решается несколько проще. Достаточно сделать развевающуюся одежду, как анимация оживет, и заиграет новыми красками. Как сделать одежду развивающейся, решать вам, а мы в Персидских Войнах использовали, SimCloth. Вот несколько анимаций для затравки.     

С 3D игрой все несколько, сложнее, не каждый движок позволяет делать анимацию одежды, да и не каждую одежду получиться анимировать. Как правило, это связано с ограничением, по количеству костей. Вот один из примеров анимации одежды для 3D движка:

Здесь анимация «юбочных висюлек» сделана отдельными костями. Я, последовательно проверяя на пересечения висюлек с ногами и телом каждый кадр, поворачивал каждую косточку, затем перепроверял, поворачивал, где нужно. Можно было бы соврать, и сказать, что анимация всего остального делалась бипедом, но это не так, ее делал другой человек, и по одному ему ведомым причинам, обычными костями. Отмечу, что в Максе, кости для «висюлек» все же использовать не стоит, сделайте лучше боксы, управлять ими более просто, и они менее глючны, по сравнению с одиночными косточками. Мне пришлось переделывать кости для висюлек, т.к. они по загадочным причинам не двигались совсем, а потом сводить многокадровые анимации из нескольких файлов, чтобы в них не менялся скелет.

3D Анимация.

Если у вас ранее был опыт создания классической анимации или 2Д компьютерной анимации, то вы знаете, что анимация — это кадры, меняющиеся с некоей частотой. В классической анимации вы должны были прорисовать каждый кадр, в 2Д компьютерной тоже, если это не простые перемещения плоскостей, или заранее запрограммированные эффекты. В 3Д анимации, как для игр так и для видео роликов, можно проставить только ключевые кадры, между которыми программа сама просчитает (интерполирует) необходимое движение между ключевыми кадрами.

Траектория и скорость этого движения зависит от выбранного вами типа интерполяции, для видео клипов можно использовать любые типы интерполяции, например: интерполяция по Безье, линейная, квадратичная и т.д.  Однако для игр, как правило, используется линейная интерполяция. Из названия видно, что скорость изменения положения, вращения или масштабирования, при такой интерполяции меняться не будет. Вот и первый нюанс анимации для игр, если выгрузчик считывает не каждый кадр анимации, а только ключевые, то при необходимости изменения скорости движения, придется добавлять ключи. Даже в том случае, когда у вас нет необходимости менять скорость движения, но в программе у вас установлена не линейная интерполяция, результат при выгрузке может несколько отличатся от исходной анимации. По идее, это должно ложится на совесть программистов, но зачастую, переделывать приходится все равно вам. Благо в этом нет ничего сложного. Лечится расстановкой ключей в каждом кадре.

Существует также несколько типов анимации персонажей, это: морфинг (некоторые ее называют вертексная), анимация по частям тела (назовем это объектная), и костная (скелетная).

В чем их отличие?

Морфинг – для этой анимации создается несколько 3Д моделей, являющиеся ключевыми кадрами, после чего программа интерполирует положения вершин треугольников, составляющих модель в новую форму, затем в следующую и т.д.

Bone-Based Unity 2D Animation: Introduction

Объектная – основные куски персонажа (голень, бедро, ступня, тело и т.д.) представляют из себя отдельные объекты, связанные или не связанные иерархией. И имеют собственную анимацию.

Костная – создается скелет, который деформирует целую модель, или ее часть.

Анимация для игр.

Рассмотрим процесс создания анимации персонажа для 3D игры, особенности анимации для различных игровых жанров, и некоторые особенности анимации для спрайтовых игр.

Какой пакет выбрать для анимации?

Если вы раньше не работали в 3Д программах, то тем более нет никакой разницы, а если работали, то анимацию лучше делать в том пакете, с которым работали до этого.

Особой разницы в пакетах для создания 3Д анимации нет, принцип один и тот же везде: есть модель, скелет и ключевые кадры. И из основных пакетов для 3Д моделирования и анимации, можно при необходимости перенести в другой пакет.

А раз разницы никакой нет, то для примера возьмем 3D Studio MAX r6.

Какой тип анимации выбрать?

Это напрямую зависит от того, какую анимацию поддерживает ядро вашей игры (движок).

Если же вы еще не определились, какую же анимацию поддерживать, то я приведу некоторые плюсы и минусы для всех типов:

Морфинг. Плюсы: позволяет создавать, анимированные ткани, волосы, и деформировать сетку модели как вам это нужно. Минусы: после 700 треугольников занимает больше памяти нежели остальные типы (количество занимаемой памяти для костной, зависит от количества костей). Необходимо делать отдельные анимации, для каждой модели. Практически невозможно перевести в другой тип анимации.

Объектная. Плюсы: наиболее мало занимающая анимация, простота замены частей, например рука в перчатке или без нее. Поддерживается практически всеми движками, в той или иной степени. Минусы: при анимации персонажа, на крупном плане, скорее всего, будут видны стыки объектов. Очень сложно сделать анимацию одежды или косичек из-за стыков, или сильного увеличения памяти занимаемой анимацией. Переводится в другой тип, через костную анимацию.

Костная. Плюсы: простота создания непосредственно анимации, простой перевод в любой тип анимации. Простота использования «Моушен кэпчура». Минусы: не очень простая привязка к костям. Ограничение по количеству костей (не всегда, но очень часто). Медленнее обрабатывается движком, чем другие типы.

Поскольку наиболее легко усваиваемым способом подачи информации является информация в примерах, то рассмотрим костную анимацию, как наиболее просто переносимую в другие типы.

Итак, у нас есть модель девушки, для нее необходимо сделать анимацию.

Для начала выберем каким скелетом нам пользоваться. Делать ли его вручную или использовать бипед.

Я выбираю бипед. Потому как, на мой взгляд, это наиболее удобный в управлении скелет, мало того у него уже настроена инверсная кинематика.

Что значит наиболее удобный?

Это означает отсутствие лишних управляющих элементов, при такой же работоспособности, возможность использовать как обратную, так и прямую кинематику одновременно, и кучу дополнительных и очень полезных инструментов, таких как, например, копирование ключей и вставка их на противоположную конечность, копирование трека с другого бипеда в сцене, сохранение и загрузка анимации, даже с несовпадающего по пропорциям бипеда.

Бытующее мнение, о якобы маленькой гибкости бипеда, неверно в корне, да, конечно, сделать бипедом анимации змеи не просто хотя и можно на самом деле. Но ведь он придуман как раз для анимации персонажей имеющих несколько конечностей. Вот достаточно яркий пример универсальности бипеда — анимация дракона. В ней используется бипед, с добавленными 4мя костями, это нижняя челюсть, язык, и по одной дополнительной косточке на крылья, добавленных из-за ошибки моделлера.

Итак, я выбираю бипед. Если вы все же считаете, что делать этого не стоит, ну что ж настраивайте свой скелет, принципы анимации и привязки от этого не поменяются.

Скелет выбрали теперь надо его подогнать под модель.

Страницы: 1234Следующая »

28 сентября 2004

#3D Studio MAX, #анимация, #анимация персонажей, #морфинг, #персонажи

Обновление: 3 декабря 2017

Ниже описан метод распознавания "настоящего" и "псевдо" анаглифного стерео изображения (оно же — квазистереоизображение).

При этом надо понимать, что "настоящий" 3D-анаглиф сам по себе является псевдостереоизображением. Ниже речь пойдёт исключительно о качестве полученных анаглифов двумя разными путями. "Настоящим" методом и методом искусственного раздвоения изображения.Настоящее 3D (стерео) изображение фильма достигается путём перекрёстной съёмки с двух видеокамер соответствующих глазам наблюдателя (для трёхмерных мультипликационных фильмов — путём двойного рендеринга). Две видеокамеры, так же, как и глаза наблюдателя, формируют угол обзора.

При этом менее удаленные объекты находятся под большим углом обзора камер, чем более удаленные объекты.

Spine — программа для создания скелетной 2D анимации

Применительно к анаглифу расстояние между красным и синим (цвета могут быть разными) изображениями (при последующим их "совмещении") для разно-удаленных объектов будет разным. Для менее удалённых объектов — бОльшим. Для более удаленных — меньшим (либо почти отсутствовать). Таким образом и создаётся "настоящая трёхмерная глубина" изображения.



В случае, если движется фон, а центральный объект остаётся на месте или для выделения центрального объекта в "крупный план" проводят обратную операцию. Делают минимальными углы центрального объекта, а фоновые объекты "размывают" бОльшим расстоянием между цветами.


Однако, в обоих случаях — расстояние между цветами анаглифа у разно-удалённых объектов — разное. Это и является главным критерием отличия между настоящим стерео и квазистерео анаглифами, так как алгоритмы кодирования при искусственном получении из моноскопического изображения трёхмерного, естественно, не разбирают, какие объекты субъективно находятся ближе к наблюдателю, а какие дальше. В следствие этого, полученное квазистерео изображение имеет по всей площади и для всех объектов — одинаковое расстояние между двумя цветами.

 


Также, распознать квазистерео можно по косвенным признакам. При кодировке из моноскопического изображения все дефекты видео будут преобразованы в 3D. Так же, в 3D будут преобразованы все буквы, титры, логотипы, watermarks и надписи.


Теперь о том, чем квазистерео хуже "настоящего":

* В псевдостерео изображении в динамических сценах, особенно в случаях перемещения отдельных объектов вдоль экрана, "глубина трёхмерности" выглядит практически идентичной "настоящему" 3D.

 

* Также, псевдостерео изображении почти идентично "настоящему" 3D в сценах, где объекты находятся на одинаковом (почти одинаковом) отдалении от наблюдателя.

* Во всех остальных случаях квазистерео существенно уступает "настоящему". Никакой трёхмерности просто не видно.

 

* Таким образом, ценность раздач с видео, полученных путём искусственного преобразования моноскопического изображения в трёхмерное, равно нулю, так как любой желающий может скачать абсолютно любой фильм, самостоятельно прогнать его через специальную программу и получить готовый анаглифный видеофайл.

 

* Кроме того, в большинстве случаев изготовление самодельного псевдо-3D-анаглифа осуществляется по незнанию, не путём изготовления рипа, а путём пересжатия аналогичного материала (т.н. "пережатка"), что существенно ухудшает само качество видео.

 

* Кроме того, получить квази3D можно путём простого проигрывания обычного видеофайла с помощью плеера со специальным плагином, способным кодировать изображение в анаглиф в реальном времени. Например анаглиф фильтр для kmplayer. Также, данного эффекта можно добится при просмотре через NVIDIA 3D Vision Video Player

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*