Среда, 28 Февраля 2024, 12:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » падение персонажа
падение персонажа
dimanmonsterДата: Пятница, 04 Июля 2014, 18:51 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Занимаюсь своим проектом и начал с контроллера персонажа. Есть модель с анимации и вот в чем вопрос - когда падает персонаж с какой либо высоты у него должна воспроизводится анимация (если координата уменьшается то и анима воспроизводится(правильно ли я понимаю как реализовать)) и при приземлении анима должна воспроизводится(тут я ваще не знаю как это сделать). Помогите!
lakorisДата: Пятница, 04 Июля 2014, 20:36 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Переведу на русский.

Есть персонаж. При падении с высоты должна воспроизводиться анимация падения (думаю за основу взять изменение координат); при столкновении с землей - анимация приземления.
romgermanДата: Пятница, 04 Июля 2014, 21:01 | Сообщение # 3
старожил
Сейчас нет на сайте
dimanmonster,
if(высота < ???) {
animation.Play("Fall");
}
*Осторожно! Псевдо-код*
allodsДата: Пятница, 04 Июля 2014, 22:05 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Если нажата кнопка прыжок , проигрываем прыжок
если нету соприкосновения с землей то проигрываем падение, если дистанция до земли 1 метр проигрываем приземлении
seamanДата: Пятница, 04 Июля 2014, 22:08 | Сообщение # 5
старожил
Сейчас нет на сайте
Цитата
dimanmonster,
if(высота < ???) {
animation.Play("Fall");
}
*Осторожно! Псевдо-код*

Неверно!
Цитата
если нету соприкосновения с землей то проигрываем падение

Верно!
Цитата
если дистанция до земли 1 метр

Можно и так, но проще и никто не заметит разницы "если приземлился"...
allodsДата: Пятница, 04 Июля 2014, 22:21 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Цитата seaman ()
Можно и так, но проще и никто не заметит разницы "если приземлился"...

Да можно, но у меня было заметно ^^
DantorSДата: Пятница, 04 Июля 2014, 22:24 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Цитата seaman ()
Цитата
dimanmonster,
if(высота < ???) {
animation.Play("Fall");
}
*Осторожно! Псевдо-код*

Неверно!

Почему?
lentinantДата: Пятница, 04 Июля 2014, 22:33 | Сообщение # 8
ленивый программист
Сейчас нет на сайте
Кстати, а почему для прыжков никто никогда не использует вертикальную скорость персонажа? Очевидно же - если она отрицательная, значит, персонаж падает. Если положительная - персонаж прыгнул и еще не достиг пика прыжка. Можно выставлять соответственную анимацию.

Добавлено (04.07.2014, 22:33)
---------------------------------------------
Цитата DantorS ()
Почему?

Не универсально. Я так понял, высота - координата Y? А что если персонаж запрыгнул с одной полки на вторую, которая выше/ниже? Если же рейкастить вниз, и мерять расстояние от персонажа до объекта под ним, то это будет куда затратней проверки соприкосновения с землей (ну, или моего метода).


Когда-то тут будут ссылки на крутые проекты. Или нет.

Сообщение отредактировал lentinant - Пятница, 04 Июля 2014, 22:34
allodsДата: Пятница, 04 Июля 2014, 22:42 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
Цитата lentinant ()
Очевидно же - если она отрицательная, значит, персонаж падает.

А если по лестнице спускается или по горке сбегает ?


Сообщение отредактировал allods - Пятница, 04 Июля 2014, 22:42
lentinantДата: Пятница, 04 Июля 2014, 22:53 | Сообщение # 10
ленивый программист
Сейчас нет на сайте
Цитата allods ()
А если по лестнице спускается или по горке сбегает ?

Ну так, там тоже можно выставить эдакий threshold.

Добавлено (04.07.2014, 22:53)
---------------------------------------------
Ускорение тоже можно проверять (разницу между скоростью в этом и следующем фрейме). Во время падения ускорение одно - классическое -9,81, ну или что там в настройках физики записано. Если же персонаж касается земли, ускорение будет меньше.


Когда-то тут будут ссылки на крутые проекты. Или нет.

Сообщение отредактировал lentinant - Пятница, 04 Июля 2014, 22:55
romgermanДата: Пятница, 04 Июля 2014, 23:42 | Сообщение # 11
старожил
Сейчас нет на сайте
Цитата seaman ()
если нету соприкосновения с землей то проигрываем падение

Тут всё сложнее, чем кажется. Смотря что делает тс.
Цитата seaman ()
Неверно!

Да. Не так понял вопрос)
DantorSДата: Суббота, 05 Июля 2014, 01:19 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Цитата lentinant ()
Не универсально. Я так понял, высота - координата Y? А что если персонаж запрыгнул с одной полки на вторую, которая выше/ниже? Если же рейкастить вниз, и мерять расстояние от персонажа до объекта под ним, то это будет куда затратней проверки соприкосновения с землей (ну, или моего метода).

Просто так может получится - что гг выполнил прыжок, и - проигрывается анимация падения
dimanmonsterДата: Суббота, 05 Июля 2014, 12:29 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Цитата romgerman ()
romgerman

Что за ???
lakorisДата: Суббота, 05 Июля 2014, 15:47 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
dimanmonster, лол что?
romgermanДата: Суббота, 05 Июля 2014, 18:26 | Сообщение # 15
старожил
Сейчас нет на сайте


Сообщение отредактировал romgerman - Суббота, 05 Июля 2014, 18:26
berilДата: Вторник, 08 Июля 2014, 17:38 | Сообщение # 16
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Смотри Эти уроки, там есть падение персонажа, прыжок и т.д



Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » падение персонажа
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг