ПОЧЕМУ ВСЕ ТРЯСЕТСЯ в UNITY ?
ฝัง
- เผยแพร่เมื่อ 28 ก.ย. 2024
- Рассказываю про распространенные причины, почему объекты трясутся в Unity.
В основном это всегда связано с порядком вызова скриптов и интерполяцией.
Строим график для того чтобы лучше понять как меняется положение объекта.
Спасибо за видео. Эта тряска у меня всегда проскакивала и я не знал как это решить. Много искал в интернете, но так и не нашёл
Ура!)
Про много искал ты соврал. Я лет 6 назад нашел инфу про интерполяцию по первому же запросу
@@Ден-й1ю шел 2023 год,человек не верит человеку,у которого была реально такая ситуация🥱
Много полезных нюансов узнал за одно видео, даже подумать не мог, что это так работает
Ну ты прям нас балуешь) сразу 2 видео, с таким коротким промежутком)
Контент топ) лучшие обучающие ролики какие я только видел)
Ждем с нетерпением новых)
Просто божественная подача и контент 😍
Спасибо)
Этот канал должен быть популярен!
Отличный тутор, в свое время очень много времени потратил на эти проблемы, особенно актуальны с использованием передвижения от 1 лица + IK + Puppet master, еще есть возможность перед телом класса писать атрибут [DefaultExecutionOrder(1000)], 1000 это как раз очередь обновления и таким образом задать порядок обновлений скриптов.
Оптимизация в игре играет ООООЧЕНЬ важную роль. Обычно проблема оптимизации в проекте либо из - за скриптов (обычно в методе Update, т.к. вызов этого метода происходит каждый кадр), либо из - за большого количества батчеров, которые тоже нужно как можно сильнее сокращать. В общем, сам с этим постоянно сталкивался.
Если твоей игре нужна оптимизация кода, значит проектирование дно.
Оптимизация кода не понадобится при правильном подходе к архитектуре проектирования.
ты просто Гений! Илья сделай пожалуйста, продвинутый курс по C# хоть платный! не начальный, а именно углублённый-продвинутый, а то начальных курсов полно, с массивами и циклами, а серьёзного ничего нет, а если и есть то авторы так себе, объясняют на космическом языке как будто их уроки сеньоры смотрят, как скороговорку по бумажке прочтут и готово, в итоге ничего не понятно! Многие будут тебе очень благодарны, на ру просторе ты лучше всех делаешь уроки, очень доходчиво, я твои уроки лучше всего воспринимаю, думаю как и многие!
У меня кажется не работает Rigidbody interpolate. Он включен, я в FixedUpdate двигаю персонажа через velocity, но он всё равно двигается не плавно. А на графике у меня эти ровные ступеньки, в которых координата не меняется
*слезы радости* урааа, я нашел нужный гайд
А вы не знаете как исправить проблему в 2д, что персонаж трясется/подпрыгивает, когда платформа, которая двигается по координате "y" вверх вниз, движется вниз?
Привет, Илья, ты лучший, спасибо.
Очень хорошее видео, приятно было послушать
Полезно, интересно и без лишней воды
Наверное для лучшего наблюдения нужно было видно в 60 кадров снять
А так как всегда полезная информация
Как на счёт движущихся с вращением платформ? Чтоб персонаж будучи на платформе мог врезаться в стены, которые-бы его сбивали с платформы. Ещё чтоб платформа держала другие объекты.
Кстати, почему не поставить fixedupdate на 0.01? Будет 100 раз в секунду обрабатывать изменения. Если input считывать, или менять velocity всего 50 раз, а кадров будет больше, там 60, 120.... то мне кажется чувство контроля над персонажем будет страдать.
Такой контроллер разве не будет улетать в небо двигаясь по резко наклонным поверхностям? Из-за отсутствия трения тело может двигаться почти по отвестным поверхностям. По крайней мере я столкнулся с этой проблемой.
Годный контент подъехал!)
Супер видео!
Спасибо большое.
Ааа, как же жалко что это видео не выложили неделю назад 😓
у меня немного другая проблема. ФПС контроллер немного прыгает на terrain, что делать
Привет. подскажи пожалуйста, у меня дрожат предметы из блендера, что можно сделать?
22:00 я ожидал это ещё от добавления Rigidbody 😀
Блин, подача, код, всё шикарно
Спасибо огромное теперь я знаю как создавать подобные игры
Лучший! Спасибо за видео.
Месяц не мог исправить этот баг ,в моей мобильной гонке бот при передвижении дергался , днями искал решение в гугле на форумах,надо было на ютуб заглядывать)
почему юинити не добавляет срипт на обект?
Спасибо, Илья! 👍
Ждём продолжения👍
Выложил продолжение)
Оч просто и понятно, спс
никогда не задумывался Что когда я двигаюсь и шары двигаются=))
АХаха) и они еще потрясываются
Спасибо🥰
а есть маленький укрс что бы научится програмироавть у тебя ?
Вот для Яндекса я записывал такой
th-cam.com/video/HqBDO7qMDCw/w-d-xo.html
@@EccentricGames а именно полное создание игры по шогово к примеру, от а ддо я
@@Sibirskiy_Psix_Traider ну там пошаговое создание игры от а до я
@@EccentricGames ему надо чтобы ты пошагово за него сделал все. А он будет булку есть и чай пить и смотреть как ты работаешь.
спасибо!
трясется кукла, когда тяну его за руку, я количество физ кадров увеличивал чтобы исправить 😢
у меня все равно все трясётся:((((
Просто двиг хлам)) Сейчас все будут на анрил 5 переходить.
Потому-что надо переходить на godot
А не проще ли вращение задавать не в фиксед абдейте, лол
Вроде так интерполяция позиции перестанет работать. Потести
Причина, по которой всё трясётся: яжмамкинхакеры со своими говнокодами, которые якобы чему-то обучают.
🤦♂Млин. Как же тупо ты объяснил интерполяцию. Еще зачем-то привязал её к update))) Ну это ничего. Большое понимание придет, когда начнешь делать что-то многопользовательское. И не надо советовать вкл её у всех rb - это тяжелая операция. За curve лайк.
Дак лучше объясни и ссылку кинь. Какой толк от такого комментария
@@EccentricGames на что ссылку, на опыт?)) Толк в том, чтобы ты все же задался вопросом и поинтересовался поподробней. Я не хочу обидеть, ни в коем случае. Ты молодец и делаешь нужные вещи. Знать всё невозможно. Тем более, когда в контексте предмета нет понятия "всё".
@@Ден-й1ю ссылку на видео с не тупым объяснением интерполяции.
@@EccentricGames не видел еще такого.
@@Ден-й1ю тогда сам объясни в чем прикол интерполяции. А то получается наезд, но без конкретных объяснений)
Инпут лучше считывать в апдейте, а применять силы в фиксед апдейте - иначе в некоторых кадрах мы будем терять ввод.
Задавать скорость с помощью velocity можно, если на объект не будут больше воздействовать никакие силы. Если вы захотите сделать какой-нибудь взрыв, который отталкивает игрока, или отдачу от оружия, когда игрока прям относит назад - вы не сможете это сделать, потому что у вас задается скорость определенным значением и никакие силы больше не применятся.
Либо же придется городить какие-то странные конструкции, типо velocity = moveSpeed(обычная скорость передвижения) + explodeForce(отскок от взрыва) + recoilforce(отскок от отдачи ружия), где explodeForce и recoilForce большую часть времени будут нулевыми векторами, что выглядит странно.
К тому же более физично и реалистичнее, когда игрок разгоняется, а не сразу приобретает всю скорость, поэтому addforce это лучший вариант. Сделать вектор, на который персонаж ускоряется, вектор максимальной скорости по xy и вектор, который будет игрока стопорить. И тогда уже логика будет такая:
если ввод считан и скорость меньше максимальной, то addForce(вектор ускорения) иначе, если скорость больше 0, то addForce(-вектор стопора);
Так перс будет ускоряться, но не бесконечно и сможет тормозить, если игрок ничего не вводит. Причем его движение еще и можно будет настраивать - насколько быстро ускоряется персонаж, насколько быстро тормозит. Если вы вдруг примените какую-то доп. силу, вроде взрыва, отдачи или прыжка - она нормально применится, при этом перс сохранит то направление, в котором он двигался
спасибо, сейчас как раз в процессе решения проблемы управления персонажем.
Пон.
Шикарный комментарий. Спасибо.
Зачем городить addForce для этого, если просто можно настроить кривую для ускорения движения и замедления?
@@terachannel1154 звучит лучше, но куда ее применять? К velocity? Я нагородил addForce, чтобы на игрока могли внешние силы воздействовать без необходимости прописывать их в коде ходьбы.
Классная тема. Всегда в юнити все тряслось как у алкаша
На одном дыхании просмотрел. Наиполезнейшая информация с потрясающе подробными объяснениями без воды. Подписка, лайк и коммент с меня за такую качественную работу!!❤
Огромнейшее спасибо автору! Отличный подход и подача, отличного материала!
Yra!😄
Когда мой персонаж от первого лица сталкивается со стенами, начинается жесткая тряска. Как это исправить?
Очень кайфово что такой специалист продолжает творить и показывать идеи и нюансы! 🤝🔥
Спасибо дружище. В ру сегменте твои уроки - лучшие. У Макса тоже хорошие, но твоя душевная подача и ламповые ништяки вроде Монголонезависемого кода - луч света на нашем долгом и тернистом пути :) Просто хотел это сказать, спасибо еще раз =)
Спасибо!)
Да, на этом канале одни из лучших видео по Юнити. А что за Макс?
@@IgorKu-m4o Maxter
@@EccentricGames как ты приделал так камеру? У меня камера идёт в цилиндр и вид от первого лица.
@@blenderhoneycombs у макстера лучшие уроки?) я отбросил его канал посмотрев видео про первую игру для новичков)
Это лучшее объяснение данной темы, которое я когда-либо видел. Респект автору! Ты офигенно доходчиво объясняешь довольно сложные вещи!
Отличное видео! Очень классный подход с визуализацией позиции предмета в пространстве при помощи AnimationCurve. Оно есть в Unity, добавлять значения в него легко и просто и оно прекрасно показывает суть проблемы. В общем отличная тема. Беру на вооружение. Жду следующее видео ;)
Спасибо тебе большое, незнал про angularVelocity и это спасло моего персонажа)) Враги постоянно дергались ибо я тоже вращал трансформом
Видео классное, и наглядно все показываешь!!!
У меня с интерполяцией персонаж во время падения начинает вести себя странно
Падение осуществляется через стандарную физику(2d), только я выкрутил гравити до 100.
Здравствуйте, спасибо вам за урок. Но у меня почему-то остались очень небольшие подергивания. Как оказалось, проблема в камере и задержке её движения, если она как у вас 10f, то сама камера дергается при движении, и это заметно на графике для отрисовки движения камеры, если очень большое число (или просто без Lerp), то все гладенько. Печалька(
Очень круто!!! 😋
Надеюсь, я не единственный, кто попросит продолжить кривую Безье 😅
Хотелось бы увидеть как ты реализовал те наклоны при движении
Завтра запишу
@@EccentricGames Гугл перевод: Они напишут это завтра. XD. Если честно, то мне тоже хочется это увидеть.
Причина тряски?
TOP
Большое спасибо за видео. Иногда сталкиваюсь с такой проблемой, но из-за непонимания причин ее возникновения начинаю наугад менять логику перемещения, что редко когда помогает. Теперь же все встало на свои места
БЛЯТЯЬЯТТЯТЯТ Я НЕ МОГУ ОПИСАТЬ СВОИ ЭМОЦИИ Я ИСКАЛ ПРИЧИНУ ЛАГОВ В СВОЕЙ ИГРЕ ДВЕ НЕДЕЛИ ПОТРАТИЛ СТОЛЬКО ВРЕМЕНИ ТЕПЕРЬ ВСЁ ТАК ПЛАВНО АААААААААААААААААААААААААААААА ХРАНИ ТЕБЯ ГОСПОДЬ ЛУЧШИЙ ЧЕЛОВЕК МИРА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ ВСЕГО ЛУЧШЕГО АВТОРУ
Привет,у меня такая проблема,почему все 3D модели в низком разрешении,я не понимаю как в других мобильных играх,делаю гладкие 3D модели,если не секрет раскажи плиз
я реализовал вращение самого игрока через rigidbody, и теперь когда я подходу к порогам начинаю крутиться. Как это исправить?
У меня возникла необходимость (очень-очень нужно) менять вручную transform.position в каждом кадре (или в fixedUpdate) из-за чего конечно поломалась интерполяция для камеры. Есть ли какой-то способ всё-таки это сделать? Может быть как-то хитро через физику, например применить одноразово силу через AddForce, чтобы сместить положение, а потом сделать обратный AddForce, чтобы это не изменило скорость объекта. Спасибо.
Самая банальная проблема это несовпадение частоты кадров и частоты симуляции, поэтому должна применятся интерполяция, не знаю зачем здесь видео на 39 минут
Брат ну с лейтАбдейт тебе РЕАЛЬНО ОГРОМНЕЙШЕЕ СПАСИБО, ты не представляешь как меня бомбило после того как вчера я зашел и убедился что все нормально, а сегодня зашел и ВСЕ ТРЯСЁТСЯ БЛИН! Спсспспспспс
Хм, центр массы можно оказывается задавать ниже тела объекта. Что позволяет не замораживая вращение нормально двигать объектом, плюс он будет нормально реагировать на изменение точки притяжения. Переворачиваем локацию, притягиваем контроллер к стене или потолку, и он без дополнительных приколов начинает нормально ходить по потолку, или стенам. Действительно простейший способ)
Этим скриптом камера входит в игрока.
А понял. Создал пустышку и к ней камеру. На пустышке скрипт и она прилипает к игроку, а камера сверху.
Сделал передвижение так риджитом и все равно повороты дерганные. Если фпс 50 поставить, то норм будет.
Но если ставить -1 но дергается.
А если Rotate использовать не в FixedUpdate, а в Update разве будет эта тряска при вращении?
Вроде да, проверь пожалуйста с графиком и напиши
На сколько я помню будет тряска позиции
@@EccentricGames не напишу, пока некогда :/
Приятно и полезно смотреть. Совсем не на пофиг рассказываешь)
Спасибо, узнал немного нового.
Супер-понятно объясняешь. Спасибо!
Шикарно объясняете. Я не новичок и то интересно было посмотреть.
Неистово много воды, ролик смело можно обрезать до 8-ми или 10-ти минут
Я хоть и не занимаюсь программированием, но я смотрю этот видос
Отличное пояснение, спасибо за видео!
хочет трястись и трясётся - чо пристал
спасибо большое, выручил
А я все в одном скрипте описал и все
/// SUPER /// PREMIUM /// EXCELLENT /// ULTRAHIGH !!!!! Столько полезной и важной инфы для новичков в одном видео !!! Сохранил себе в золотую коллекцию уроков по Unity !!! Спасибо !!! :))) 👍👍👍👍👍
это просто вау
гуд) буду детей учить по этому видосу)) отличная методичка
👍🙂
Уфффф
Пушка видос, спасибо
Спасибо!
уже второй раз вижу такой (браузер?) у програмистов. Что это за прога в виде буквы "С"?
В панели задач зеленая и оранжевая иконка с буквой C ?) Это прога для записи экрана camtasia studio.
Прекрасно!
Го-го-го
🎉
Я очень надеюсь что теперь ролики будут выходить так часто)
А почему бы вращение камеры на задавать просто через отдельный Update?
Т-е трансформ Эйлера но не в рамках FixedUpdate. По моему от такого лесенки должны исчезнуть.
Тогда интерполяция позиции перестанет работать. Но лучше проверь. Но вроде так
@@EccentricGames Не должна, если вращение капсулы происходит строго по вертикальной оси. Как это и происходит в случае в видео.
Всм это вращение не меняет формы объекта, а значит лесенок от вращения не будет, независимо от наличия или отсутствия интерполяции.
@@TheMrKMen вот я проверил и никак не получается вращать в Update со включенной интерполяцией. Ступеньки есть и в позиции и в угле поворота transform-а
👍👍👍🎯
Спасибо!👻
Огонь!
У меня возникла интересная проблема с поворотом через AngularVelocyty. Когда персонаж залазить в горку, то его нельзя повернуть пока он не поднимется или же когда он ровно бежит в стенку, его нельзя повернуть
через transform.Rotate было хорошо, но из за него трясется...
персонаж стоит Interpolate
Возможно это из-за того что управление движения не через физику
спасибо, именно это и остановило мой проект!
Круто)
О, большое спасибо!
Хотелось бы узнать почему, когда компилирую игру для телефона, запускаю, а у меня низкий FPS. Телефон мощный, на ПК при тестовом запуске всё плавно. И хотелось бы по-подробнее изучить настройки Unity, пройтись по ним. Буду очень рад, если будет урок по настройке Unity Проекта и оптимизации.
Короче, если ты делаешь на версии Unity выше 2021 и в URP. То надо обязательно отключить SSAO. Погугли. Там галочку одну убрать надо. Не найдешь, пиши
Сама по себе юнити ставит таргет фпс 30 для мобильных телефонов
Поэтому ты можешь создать скрипт с таргетом фпс при старте в 60 и повесить на любой обьект)
@@EccentricGames проект небольшой. Я сделал его заново на обычном 3D. Но результат не поменялся. У меня там есть монетка и её нужно крутить пальцем, на ПК всё хорошо, на телефоне низкий FPS и если быстро пальцем свайпнуть, то монета крутится в обратную сторону, не в ту, в которую сделал свайп. Если медленно, то в правильном направлении.
Мне кажется что это стоит делать не на обновлении кадров,а на обновлении тиков в игре.
Сделал игру, выложил в гугл плей, но уже несколько дней не мог понять причину дерганья персонажа, спасибо за урок
Спасибо) очень крутой ролик, а есть возможность проект получить?) Я не очень понял как ты так камеру закрепил, по логике вещей она должна в координаты плеера уплывать. Ну и просто покопаться, и сосисочка классная)
офигенский урок)