unity персонаж медленно падает после прыжка

Основы создания 2D персонажа в Unity 3D 4.3. Часть 3: прыжки (и падения)

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

Наша цель звучит просто, но в ее реализации будут некоторые тонкости. Во-первых, нам надо как-то определить, что персонаж находится в состоянии прыжка. Это будет немного сложнее, чем определение состояния бега. Во-вторых, нужно прикрутить соответствующую анимацию. Здесь мы могли бы поступить аналогично анимациям покоя и бега — циклично воспроизводить соответствующие кадры анимации, пока персонаж находится в состоянии прыжка. Но мы реализуем более гибкий вариант. Состояние прыжка на самом деле состоит из двух состояний: взлет и свободное падение. Кроме того, бывают частные случаи — только взлет и только падение. Если мы прикрутим одну общую анимацию для этих двух состояний (например, поджатые ноги и развевающийся на ветру плащ) — это может выглядеть нормально, но не совсем реалистично. В реальности, когда человек прыгает, положение его тела, рук, ног отличается при взлете и при падении. Мы создадим такую анимацию, которая будет учитывать скорость взлета/падения и в зависимости от нее переключать соответствующий кадр анимации.

Загрузим наш проект и сцену. В папке AssetsSprites у нас остался последний неиспользованный спрайт Jump. Проделаем с ним уже знакомую операцию по нарезке спрайта на коллекцию изображений. Затем в окне Hierarchy выберем Character и перейдем в окно Animation. Для прыжка нам понадобиться несколько файлов анимаций, а точнее — семь. Это равно числу кадров в спрайте Jump. Давайте создадим эти анимации, называя их Jump1, Jump2 и т.д.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Теперь добавим в каждую анимацию по одному изображению из спрайта Jump, по порядку: спрайт Jump_0 в анимацию Jump1, спрайт Jump_1 в анимацию Jump2

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

В окне Animator (не Animation!) у нас автоматически создались элементы для новых анимаций, но они нам теперь не понадобятся. Выделим их и удалим клавишей Delete (анимации также удалятся из соответствующего списка в окне Animation, но чуть позже мы их вернем). Создадим в Animator‘е два новых параметра: Ground с типом Bool и vSpeed с типом Float. Первый будет обозначать, находится ли персонаж на земле или в прыжке, а второй будет хранить текущее значение скорости персонажа по оси Y, то есть скорость взлета/падения. В зависимости от нее мы будем применять соответствующую анимацию из наших семи анимаций прыжка.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Теперь кликнем правой кнопкой по любому свободному месту в окне Animator и выберем Create StateFrom New Blend Tree. В окне Inspector переименуем созданный элемент как Jump.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Теперь кликнем дважды по Jump. Откроется элемент Blend Tree. В него мы добавим наши семь анимаций прыжка, а переключение между ними будут происходить в зависимости от значения параметра vSpeed. По умолчанию в Blend Tree сейчас установлен параметр Speed — поменяем его на vSpeed в окне Inspector.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

В этом же окне нажмем на плюсик и выберем Add Motion Field. Это нужно проделать семь раз. Создадутся семь полей для наших семи анимаций. Снимем флаг Automate Thresholds, чтобы можно было вручную устанавливать значения параметра vSpeed, при достижении которых будет производиться смена анимации в Blend Tree. Перетащим в каждое поле по анимации и зададим значения vSpeed. Вот что должно получиться (кстати, после этих действий удаленные из списка в окне Animation анимации Jump1Jump6 вновь появятся):

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

С анимацией пока закончим. Теперь нам надо научится определять, когда персонаж находится на земле, а когда — в воздухе, то есть в прыжке. Перейдем в окно Scene. Создадим пустой игровой объект, назовем его GroundCheck. Выделяем его в окне Hierarchy и перетаскиваем мышью на Character (все в том же окне Hierarchy!). Теперь объект GroundCheck будет дочерним по отношению к Character и будет перемещаться вместе с ним, а объект Character приобретет соответствующую стрелку, скрывающую дочерние объекты. Кликнем по стрелке и вновь выберем объект GroundCheck. Назначим ему иконку, чтобы видеть объект на сцене. На скриншоте я указал, как это сделать:

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

В окне Scene переместим GroundCheck в ноги персонажа. Тем самым, мы сделали объект, который будет использован для определения нахождения персонажа на земле.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Теперь нам надо определить, а что же является землей? Очевидно, это наша платформа, но игра об этом пока не знает. Кстати, давайте создадим копию платформы для тестирования прыжка (лучшим способ будет создание префаба на основе платформы, но сейчас давайте просто выделим Platform и нажмем Ctrl+D). Разместим вторую платформу правее и выше первой.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Выделим любую из платформ и обратим внимание на верхнюю часть окна Inspector. Там есть поле Layer со значение Default. Оно обозначает принадлежность объекта к тому или иному слою. Кликнем на Default, выберем Add Layer, зададим в поле User Layer 8 имя Ground. Снова выделим платформу, и вместо слоя Default установим слой Ground. Для второй платформы тоже установим слой Ground.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Таким образом мы определили, что наши платформы будут землей. Объект GroundCheck будет проверяться на предмет пересечения с объектами слоя Ground, т.е. с нашими платформами. Если будет обнаружено пересечение — персонаж находится на земле. Делаться это будет в скрипте CharacterControlleScript, созданном в предыдущей части. Давайте откроем его на редактирование.

В начало скрипта добавим новые переменные в добавок к уже существующим:

А в начало метода FixedUpdate следующие строки:

Теперь добавим в скрипт метод Update, в котором будем обрабатывать нажатие клавиши прыжка. Мы будем делать это в методе Update для большей точности управления — этот метод вызывается каждый фрейм игры, в отличии от FixedUpdate, который вызывается через одинаковое определенное время и обычно, при хорошем FPS, вызовы происходят реже вызовов Update.

Итого, полностью скрипт будет выглядеть так:

Сохраняем скрипт, возвращаемся в Unity. В Hierarchy выделяем Character. Перетаскиваем объект GroundCheck в поле Ground Check скрипта CharacterControllerScript, а в поле What Is Ground устанавливаем Ground.

unity персонаж медленно падает после прыжка. image loader. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-image loader. картинка unity персонаж медленно падает после прыжка. картинка image loader. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Капитан Коготь умеет бегать и прыгать. При прыжке, в зависимости от состояния (взлет/падение) и от скорости применяется соответствующая анимация. На видео хорошо заметно, что при прыжке в окне Animator происходят переключения между анимациями в элементе Blend Tree. При этом, если персонаж просто падает с платформы (т.е. в прыжке нету фазы взлета, пробел не нажимался) — работают только те анимации, для переключения которых заданы отрицательные значения скорости, что делает поведение персонажа более реалистичным. Конечно, для лучшего эффекта необходимо больше анимаций и более тонкая настройка значений скорости.

Что ж, на этом все. Основа для 2D персонажа создана. Какие к ней прикрутить дополнительные возможности — зависит уже от конкретной игры. Спасибо за внимание!

Источник

Плавность падения и прыжка

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Повторный вызов метода прыжка при зажатой кнопке «прыжка»
Доброго времени суток! Есть 2д платформер, в котором персонаж умеет прыгать. Метод вызывается.

Траектория прыжка. Расстояние от места прыжка и до приземления
Честно говоря, просто в ступоре, не знаю возможно ли такое подсчитать вообще. Имеется объект и.

Плавность появлений
Всем привет! Каким образом в Qt реализуется, например, плавное появление QLayout, кнопок.

Решение

Спасибо за советы. Сейчас все что-нибудь попробую

Добавлено через 2 часа 21 минуту
проблему решил. Как и посоветовали нужно еще изменять fixedDeltaTime и движение становится плавно. То есть fixedDeltaTime = 0.2f * timeScale; Правда не знаю, насколько это правильное решение, возможно можно сделать как-то по-другому и лучше

unity персонаж медленно падает после прыжка. tick. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-tick. картинка unity персонаж медленно падает после прыжка. картинка tick. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.Плавность при анимации
Как добиться идеальной плавности при анимации?

Плавность перехода фона JS
Добрый день. Подскажите пожалуйста, как сделать переход от картинке к картинке плавным. Сейчас.

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

Упала плавность изображения
Доброго времени суток. В общем, ситуация такая. Очень сильно изменилась картинка в плане плавности.

Источник

Персонаж не падает из-за animator controller

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Персонаж падает на бок
Как сделать что бы персонаж на бок не падал. Добавлено через 44 минуты UPD. Все нашел.

Controller Serve Raid M5014 SAS/SATA Controller совместимость с HDD
Здравствуйте! Есть контроллер Controller Serve Raid M5014 SAS/SATA Controller и жесткие диски HDD.

Добавлено через 25 секунд
RostikTawer, надеюсь ты сможешь с Яндекса скачать.

Добавлено через 1 минуту
RostikTawer, стоп, падает он у меня посредством rigidbody и коллайдера.

Storm23, не помогло unity персонаж медленно падает после прыжка. smile3. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-smile3. картинка unity персонаж медленно падает после прыжка. картинка smile3. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

Добавлено через 2 минуты
Storm23, вывел в консоль в перса не упирается

Богдан всепытный, к сожалению у меня не открывает твой проект т.к. 5.2.4 стоит.

Но вопрос есть, если убрать аниматор то падает нормально, но если аниматор будет пустой то падает не нормально?

Да, с пустым аниматором он падает не нормально

Добавлено через 15 минут
RostikTawer, Storm23,нашёл на иностранном форуме ответ, оказалось надо в анимации просто по оси Y выставить галку bake into pose! Всё заработало. Проблема решена.

Controller Serve Raid M5014 SAS/SATA Controller
Здравствуйте! Нужна очень помощь знатоков по этому контроллеру! Вопрос есть ли инструкция как.

Смена Root View Controller в Navigation Controller
Доброго времени суток. В приложении есть Storyboard. В нем navigation controller выставлен как.

Animator Unity
Здравствуйт, подскажите пожалуйста знаю что запускаю анимацию не так но это работает я просто.

unity персонаж медленно падает после прыжка. tick. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-tick. картинка unity персонаж медленно падает после прыжка. картинка tick. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.Animator.SetFloat()
Для чего в этой перегрузке функции SetFloat(string name, float value, float dampTime, float.

Источник

Unity: игрок прыгает нормально, но падает крайне медленно

В настоящее время я создаю небольшой 2D-платформер с персонажем, который может прыгать. Вот как выглядит прыжок (FixedUpdate):

Выглядит идеально для каждого прыжка вверх, а затем падает вниз.

ОДНАКО: когда игрок ПРОСТО падает (как с обрыва или что-то) без прыжка, похоже, что у него масса листа. Плыть на землю экстремлей медленно. Не ускоряется вообще. Просто падаю как в замедленном темпе. Конечно, я могу увеличить гравитацию, но это также влияет на падение ПОСЛЕ моего прыжка и делает его похожим на камень. Как будто падение ускоряется или что-то. Но это не имеет смысла. Он падает после прыжка, а тот, кто падает с чего-то, должен выглядеть так же, верно? Но это не так.

Вот мои ценности для РБ:

unity персонаж медленно падает после прыжка. 083b89c5fbcf62ca2dfd8781c3ca86d591188131. unity персонаж медленно падает после прыжка фото. unity персонаж медленно падает после прыжка-083b89c5fbcf62ca2dfd8781c3ca86d591188131. картинка unity персонаж медленно падает после прыжка. картинка 083b89c5fbcf62ca2dfd8781c3ca86d591188131. Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.

4 ответа

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

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

Это была моя вина, не было никакой возможности угадать это с вашей точки зрения. Все, с чего игрок мог прыгнуть, было помечено как «can_jump».

Это включает в себя все края. Удаление этого означает, что я больше не могу прыгать, но это вызвало проблему. Я уверен, что найти другой путь:-) спасибо всем

Источник

Персонаж появляется в воздухе и не падает

Здравствуйте, у меня появилась проблема связанная с персонажем в Юнити.

В моем случае, имеется 3D раннер, дорога со значением по Y = 0, персонаж, расположенный чуть выше этой дороги со значением по Y = 0.05 и проблема, которую я не могу решить уже второй день.

Суть в том, что после запуска игры персонаж появляется на высоте 3+, когда его значение должно быть 0.05 и продолжает бежать по воздуху, не падая.

Персонаж имеет анимации бега, прыжка и подката, также у него присутствуют такие компоненты, как Character Controller и Capsule Collider + скрипт Player Controller, которым я могу поделиться при надобности.

Как решить данную проблему? Прошу вас помочь.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Персонаж импортировался в воздухе и оси в управлении инвертированы
Импортировал персонажа их блендера, он по воздуху ходит, управление полностью инвертировано, хотя.

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

Персонаж падает
Здравствуйте! такая проблема: персонаж бегает и стоит на плоскости. Когда доходит с низу до.

Персонаж падает на бок
Как сделать что бы персонаж на бок не падал. Добавлено через 44 минуты UPD. Все нашел.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *