Предисловие.
В этом уроке, вы научитесь добавлять персонажей на движке NSSSWP. Урок будет длинным, так что запаситесь терпением.
Создаем новый скин.
Склонируйте скин соника, нажав Clone Object


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

После того как закончите делать анимацию, сохраните её в png. Программа предложит разбить её на отдельные кадры — соглашаемся.

Далее, импортируем 1-ый кадр анимации.


Импортируем его, как анимацию.

В итоге, фреймы соника заменились, на нужные.

Добавляем скин в движок.
Далее идет процесс жуткого копипаста, так что готовьтесь.
Перемещаем скин на начальные координаты.
Установите позицию вашего скина по X, на значение переменной FloatX, как на картинке внизу.

С Y сделайте тоже самое.
В группе Player Initialization, которую можно найти по данному пути.
Sonic Simple Worlds PLUS [1.0] -> Objects management -> Player -> Player Initialization
Добавьте новое условие.

И передвиньте скин.

На тот же слой, где находится объект Player_StartingPoint (стартовая позиция игрока).


Устанавливаем атрибуты игрока.
Спуститесь в Player -> Character Attributes [Simple]. Здесь, для удобства, изменим комментарий, добавив своего персонажа, в общий список.

Данный список, это удобное напоминание, показывающее какое число, за какой скин отвечает.
Спуститесь чуть ниже. Сейчас сделаем дубликат группы, скопируйте группу Sonic.

Наведите на любую другую группу, и нажмите вставить.

И назовите её, названием вашего персонажа.

В условии Character замените, на =8. Т.е. если переменная Character в объекте M, равна 8-ми, то делаем что-то. Выше, в комментарии, мы условились, что число 8 отвечает за созданного нами персонажа.

Здесь, также, можно прописать скорость игрока, высоту прыжка и т.д. Сделав тем самым уникального персонажа.
Далее, поднимитесь чуть выше.
Сделайте дубликат условия после комментария Super Form.

И установите Character = 8.

Перемещение скина на координаты игрока.
Теперь, перейдите в группу Reposition Skin, который можно найти по следующему пути.
Player -> Player Animation -> Reposition Skin
И приравняйте координаты скина оси X, к координатам объекта M.


С осью Y, по аналогии.

Меняем направление скина.
Спускаемся в Change Direction, по данному пути.
Player -> Player Animation -> Change Direction
Здесь мы устанавливаем направление скина.


Для обратного направления, делаем то же самое.

Меняем анимацию.
Далее идет блок анимаций, который соотносит анимации скина с движком. Ниже, я показал как менять анимацию у персонажа.


Чуть ниже, идет условие проигрывания анимации бега. Сдублируйте группу Sonic Run.

Разумеется, в условии Change Animation, мы обращаемся к нашему скину. Перекинув иконку с другой комманды, можно переназначить объект действия.

Переименуйте её. Измените проверку условия на Character = 8.

А дальше идет жесткий копипаст, о котором предупреждал ранее.
Вставляйте Change Animation sequence, для всех блоков Animation of.

Меняем скорость анимации.
Далее, спуститесь в группу Change Animation Speed. Эта группа отвечает за скорость анимации.

Добавляем комманду по инструкции ниже.



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

Поворачиваем скин.
Спуститесь в группу Change Angle. И приравняйте угол скина, к углу посчитанному движком.



Далее идет группа Flash while invincible (Мигать пока бесмертен). Создайте дубликат группы Sonic, и назовите её, названием своего персонажа. В дубликате, Character замените на нужный.

Поздравляю, персонаж создан. Однако, его нельзя выбрать в главном меню, т.к. он туда не добавлен. Исправим это.
Добавляем персонажа в Character Select.
Откройте уровень Character Select и дважды кликните по объекту CharSelec.

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


После этого, зайдите в группу Object Interation -> Object [00]. И создайте там новое условие, если GameCharacter = 8, то проигрываем анимацию вашего персонажа.


Также, зациклим GameCharacter.

Готово, теперь персонаж в игре.

Итоговый результат.
