Я нашел этот крутой сайт для разработки игр, и у него есть список функций замедления:
Хотя сайт содержит описание того, для чего они предназначены, это идет над моей головой. Что такое функции замедления и для чего они используются?
Обновить
Я нашел лучший пример самих функций из исходного кода Phaser.io . Эти функции намного проще, чем предлагают ответы здесь. Они принимают только один параметр k
. Как часть ответа, я хотел бы знать, как их использовать.
game-design
easing
Даниэль Каплан
источник
источник
Ответы:
Функции ослабления используются для интерполяции, обычно (но не обязательно) в анимации / кинематическом движении. Линейная интерполяция (lerp) - это то, о чем вы, возможно, слышали. Допустим, вы перелистываете смайлик из одного угла экрана в другой (так же, как на вашем изображении). Это означает, что смайлик будет перемещаться с постоянной скоростью из точки А в точку Б. Если вы примените это к движению конечности, это будет выглядеть очень роботизированным и неестественным - приводы / сервоприводы, которые используют роботы, выполняют эти действия. Очевидно, что человеческие конечности двигаются совсем по-другому. И большинство движений, которые вы увидите в природе, будут иметь интересные кривые движения, а не постоянную неизменную скорость, наблюдаемую в линейной интерполяции.
Введите ослабление. Облегчение движения означает, что скорость не постоянна. Это достигается тем, что выглядит более реалистично. Наблюдайте за людьми, наблюдайте за разными животными, наблюдайте за изгибающимися на ветру растениями или даже за тем, как падающий дождь меняет направление в пасмурный день. Следите за скоростью мяча, когда вы подбрасываете его в воздух и снова возвращаетесь. Наблюдайте за движением гитарной струны, когда вы ее срываете. Каждый из этих типов движения имеет свою кривую, описывающую скорость.
Я предлагаю вам поиграть с GSAP от GreenSock онлайн, чтобы почувствовать, что различные типы кривых замедления дают с точки зрения движения. Это одна из тех вещей, где требуется время и практика, чтобы сопоставить конкретную именованную кривую с тем типом движения, которое вы себе представляете. Но как только вы освоите основы, вы получите массу удовольствия.
PS Как я уже сказал, смягчение используется не только для анимации. Он может использоваться для панорамирования звука, для осуществления скелетного движения на уровне логики / модели или для всего, что вы можете себе представить, что может потребовать определенного плавного изменения во времени.
источник
Функция замедления позволяет вам интерполировать значения из одного значения в другое в течение заданного интервала, используя то, что называется «функцией замедления». Это функции, которые предназначены для получения значения и в любой заданной точке интервала выводят значение в определенный момент времени.
Это лучше всего объяснить, взглянув на фрагмент кода:
Спасибо, http://upshots.org/actionscript/jsas-understanding-easing
Это определение линейной функции ослабления. Отобразив это с течением времени в терминах «t», мы получим простой линейный график.
Хорошо. Для чего мы можем их использовать?
Каждый раз, когда вы начинаете и заканчиваете и хотите анимировать их, вы можете использовать «анимацию» или «функцию замедления».
Например, вот GIF, который я только что взял Angry Birds:
Заметьте, что меню выдвигается к точке на экране, но оно медленно останавливается? Это связано с функцией ослабления, которая облегчается на место. Вы можете увидеть их по всему Интернету. Если бы это было линейное облегчение, это было бы одинаково во всем.
Музыка?
Конечно! Если мы возьмем значение нашего текущего значения звукового сопровождения и интерполируем его между этим значением и 0 в течение общей t, скажем, 1 секунды, то наша громкость будет постепенно уменьшаться в течение одной секунды.
Ограничивающие объекты
Есть также функции, которые позволяют отскакивать (см .: http://easings.net/#easeOutBounce ), которые могут производить подобные эффекты на спрайте без каких-либо физических систем:
Вы можете найти больше информации в Интернете, выполнив поиск анимации.
источник
k
в качестве параметра, я приму этот ответ. Спасибоk
меня. Где ты видишь иначе?Функции ослабления служат для изменения значения в течение периода времени от начального номера до конечного числа.
Это значение используется для анимации свойства объекта в вашей игре, например положения, поворота, масштаба, изменения цвета и других свойств, в которых используется значение.
Различные функции замедления определяют «ощущение» анимации или то, как значение изменяется со временем.
На веб-сайте, который вы разместили, график показывает значение, изменяющееся со временем от начала до конца, поэтому это не означает, что объект, который вы анимируете, будет следовать по пути шара на графике.
источник