Предисловие.
В этом уроке, вы научитесь добавлять персонажей на движке 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.
Готово, теперь персонаж в игре.