Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72

Не могу сделать анимацию при движении в 3D от первого лица

23.12.2022, 17:38. Показов 4511. Ответов 66

Студворк — интернет-сервис помощи студентам
Я новичок в программировании и толком не знаю код. Я пытаюсь реализовать, чтобы проигралась анимация бега, когда персонаж двигается. Анимация бега у меня в виде двигающейся вверх вниз камеры. Я пытался сделать это через Animator, а затем написать скрипт, в котором в зависимости от скорости передвижения менялясь анимация на определенную. Сделал я это через Blend Tree в Animator. Я создал параметр Speed, но приостановился на моменте - а как же прописать скрипт, чтобы в зависимости от значения Speed менялась проигрываемая анимация? Пытался найти в интернете - нашел, но ничего из этого не сработало. Даже сносил все до нуля и пробовал сделать так, как на видео, но ничего не выходило (Скрипт я вешал на камеру, так как Аниматор и сама анимация происходит с ней и камера прикреплена к Capsule(обьект в роли персонажа)). Можете помочь со скриптом? Если нужно более детально описать ситуацию то спрашивайте!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2022, 17:38
Ответы с готовыми решениями:

Сделать передвижение персонажа с видом от первого лица в graph3d
Сделать передвижение персонажа с видом от первого лица в graph3d. Добавлено через 2 минуты Ну например : передвижение персонажа с...

Не могу сделать так чтоб в движении квадратик не оставлял след
Я в паскале нарисовал рисунок, типа пятнашек, и нарисовал прямоугольник по контуру одного из квадратиков, и сделал чтоб он двигался, но он...

Не могу сделать анимацию сферы
Здравствуйте! Помогите, пожалуйста с заданием. Не могу сделать анимацию сферы. В чем моя ошибка? 4) Изобразите сферу. Ее...

66
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 01:20  [ТС]
Студворк — интернет-сервис помощи студентам
В том то и дело, что я не знаю как. То-есть я конечно могу прервать цепочку если нажму Mute. Но это ведь должно производиться через скрипт верно?
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 01:25

краткое обьяснение о том что я сказал, только потом понял что неправильно нарисовал, короче то что с низу должно быть выше а то что выше должно быть с низу.
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 01:38
с верху при переходе greater>0.5 во втором переходе на бег greater>1
с низу при переходе less<0.5 во втором переходе на бег less<1
что я написал, если less не меньше < 0.5 то переход назад не будет совершен

суть в том что vertical и horizontal будет равно только от -1 до 1 поэтому надо будет самому додумывать по типу при нажатой кнопке lshift

Добавлено через 1 минуту
но это если я понял только что прочитанную тему.

Добавлено через 8 минут
ну а еще у меня больная фантазия я могу сделать действие в 20 этапов, но рабочее, хотя можно было сделать в одно, так что извиняюсь если запутал и отбил мотивацию обучению unity.
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 01:50  [ТС]
Не мотивацию ты мне не отбил! Я силен духом и часто с таким сталкивался но продолжал делать проект!

Добавлено через 5 минут
Теперь осталось записать это в виде скрипта, так ведь?
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 01:54
Получается так

Добавлено через 54 секунды
Для начала бы просто проверили работает ли ходьба и бег при изменении переменной. Speed в аниматоре
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 02:15  [ТС]
Верно, да, сейчас проверю и если не затруднит не могли бы вы прислать скрипт? Я примерно понимаю как его сделать, просто не понимаю как его записать кодом правильно.

Добавлено через 9 минут
Хм, мне кажется я уже выгляжу глупо, но, а как собственно прописать в Animator greater>0.5 и т.д?

Добавлено через 36 секунд
А я понял как

Добавлено через 7 минут
И так вот мои наблюдения. Я сделал так как вы сказали (вроде бы):

При значении Speed 0 ---- Все анимации проигрываются друг за другом (логично)

При значении Speed 0.5 ---- Работает только анимация Idle (логично тоже)

При значении Speed 1 ---- Работает только анимация Idle ( нелогично)

При значении Speed 1.5 ---- Работает только анимация Idle ( нелогично тоже)

При всех отрицательных значений Speed (тоесть -0.5, -1, -1.5) все анимации проигрываются друг за другом
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 02:15
Greater это не указывать значение, speed это значение для указания. A greater способ сравнения то есть перевод на русский больше
К сожалению не смогу прислать, я уже за телефоном, собираюсь спать.
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 02:15  [ТС]
Что-то явно здесь не так
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 02:17  [ТС]
Я уже увидел то, что отвечает за это
Я так понял это отвечает за Greater и Less?
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 02:18
На счёт того когда вы указываете скорость и увас работает все подряд, вы указали неправильные переходы, скиньте скрины перехода к анимации ходьбы и обратный переход к анимации ожидания

Добавлено через 1 минуту
Вот! Вы на скрине сделали все правильно только где less надо переход обратно a greater в переходе на анимацию
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 02:21  [ТС]
Я исправил! Теперь когда значение больше 0.4 (так удобнее) то включается анимация ходьбы, а если меньше то состояния покоя. Если значение больше 0.9, то включается анимация бега, а если меньше то включается анимация ходьбы. Верно?
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 02:31
Именно так, но проверки наше все
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 02:35  [ТС]
Верно, мне нужно будет написать скрипт. Вы бы не могли бы мне помочь с этим завтра? Я с вашей помощью уже начал представлять еще лучше программирование и уже чувствую, что скоро смогу писать подобный код самостоятельно!

Добавлено через 12 секунд
Приятной вам ночи!
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 02:38
Без проблем
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 12:37
Лучший ответ Сообщение было отмечено Aquander как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PlayerCh : MonoBehaviour
{
    public Animator _animator;
    void Update()
    {
        //если у нас нажата клавиша W или S, то делаем проверку нажат ли Lshift если да float speed = 1
        //если Lshift не нажат float speed = 0.5
        if (Input.GetAxis("Vertical") != 0)
        {
            if(Input.GetKey(KeyCode.LeftShift))
            {
                _animator.SetFloat("Speed", 1); //бег
            }
            else
            {
                _animator.SetFloat("Speed", 0.5f); //ходьба
            }
        }
        else //если мы не двигаемся в перед/назад то float speed = 0
        {
            _animator.SetFloat("Speed", 0f); //idle
        }
    }
}
0
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 14:14  [ТС]
Осталась проблема и я кажется понял в чем. Скрипт то должен работать, только вот я заметил, что камера не изменяет своих координат, так как она прикреплена к Capsule. Но аниматор то прикреплен у меня к камере, а не Capsule, поэтому я не могу прикрепить скрипт к Capsule и в итоге из-за того что координаты камеры не меняются - скрипт не работает.

Я так понял надо Аниматор прикрепить к Capsule (ведь камера прикреплена именно к ней) и тогда этот скрипт заработает верно? Только придется изменить анимации, тоесть сделать новые анимации не для Main Camera, а для Capsule. Верно?
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 15:20
если все анимации завязаны на движении камеры, вы можете просто сделать скрипт слежения камеры за игроком.
1
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 15:30  [ТС]
И так я сделал это с вашей помощью! Осталась лишь одна маленькая деталь. Анимация сменяется на другую, почему-то только когда анимация закончится. То-есть если у тебя анимация будет длиться 5 секунд, то ты на другую анимацию сможешь перейти только когда закончится первая. Можно как-то убрать это ограничение, чтобы анимация могла в любой момент сразу же перескочить на другую?

Добавлено через 10 минут
Ура я исправил и эту ошибку! Нужно было справа убрать галочку Has Exit Time (Чтобы ее найти зайдите в Animator и выберите любое Transition (Это стрелка между блоками) Там вы сможете найти эту галочку)
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
24.12.2022, 15:32
да все верно, эта галочка творит чудеса
Цитата Сообщение от Aquander Посмотреть сообщение
Нужно было справа убрать галочку Has Exit Time
я буду непротив если вы поставите реакцию на мое сообщение
1
0 / 0 / 0
Регистрация: 23.12.2022
Сообщений: 72
24.12.2022, 15:33  [ТС]
А как это сделать? Я новичок на этом форуме, раньше особо я не пользовался форумами и т.п, но в этот раз я уже почти что отчаялся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2022, 15:33

Создать анимацию девочки в движении
Требуется сделать анимацию-девочка в движении. Движение-с правого верхнего угла в левый нижний с текстом: Girl/Девочка

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

Как сделать наклон по оси z при движении?
есть два скрипта, один на джойстике : using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using...

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

Как сделать упор в границы при движении камеры?
Есть камера с коллайдером + триггер, есть 4 объекта (сверху, снизу, слева и справа), на них поцеплены коллайдеры и ригидбоди (кинематик),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru