Делаю ремейк Harry Potter and the Philosopher’s Stone PC на Unreal Engine 5. //2
Итак ребят. Прошел почти месяц с последнего поста. Почти все это время я только и делал, что правил то - что есть. Но новые механики тоже успел реализовать.
Проработка Idle анимаций
Из-за того, что я начал не с пустого проекта, а с распиаренного Game Animation Sample (проект от эпиков с прикольным паркуром и плавным мувментом персонажа) я попал в ситуацию, что мне пришлось копаться в чужом коде и пытаться поправить его под себя. Благо, я смог сделать все что мне надо, но времени ушло столько, что я бы мог собрать за это время свой собственный анимационный скрипт.
Если коротко. У всех НПС и у Гарри один анимационный скрипт. Но было бы странно, если бы все персонажи в игре двигались одинаково. Поэтому я решил дать уникальную стойку каждому персонажу, чтобы хотя бы в статике персонажи выглядели уникально.
Идея такая. Чтобы не рушить стандартный мувмент я оставил эту позу как промежуточное состояние. Персонаж после движения с начала встает в "боевую стойку", а потом через определенное время в "расслабленную стойку". Но как это сделать плавно? В этом проекте уже есть все анимации нужные анимации, нужно только обрезать. Я взял анимацию старта ходьбы и обрезал ее до нужного мне фрагмента. Получилось, что персонаж плавно из боевой стоки встает в нужное мне положение.
Осталось после этого через интерполяцию включать нужную анимацию исходя из имени НПС.
Вот так это выглядит когда персонажи находятся состоянии покоя.
Это всё мелочи. Параллельно я занимался созданием миниигры с изучением спеллов.
Learning spell Minigame
Технически я не знаю как эта реализована внутри оригинальной игры. Я сделал это так : Разделим игру на этапы.
1.Спавн точек
2.Запуск таймера и запись движения мыши игрока
3.Проигрывание движений курсора игрока и проверка успешного прохождения
4.Проигрывание катсцены в зависимости от результат
Белые точки спавнятся процедурно относительно кривой. Таким образом можно сделать абсолютно любую фигуру. Лишь бы игроку хватило времени провести по ней.
Курсор спавнит россыпь красных точек. При подсчете очков игра проверяет сколько точек зацепило коллизии. Как только игра замечает, что красная точка зацепила коллизию, то спавнит эффект взрыва.
Зарубежные ребята в комментах на ютубе очень переживали, что эта игра будет безумно тормозить геймплей и окажется не проходимой. Но я не вижу проблем. Проходится легко. Если надо, можно увеличить коллизии и будет совсем миниигра для дошколят.
Это только часть вещей что я реализовал. Еще была куча маленьких нововведений, которые не стоит расписывать тут. Типо движущихся платформ, открыванию/закрыванию дверей.
Вот видео демонстрация части моих успехов за месяц для большей наглядности. Тут я почти собрал техническую часть уровня Flippendo Challenge. И показываю как я реализовал левитацию у Вингардио левиоса.