Меш персонажа улетает в небеса

Ошибки и баги Unity3D

Меш персонажа улетает в небеса

Сообщение Llevellyn 24 дек 2019, 01:40

Сегодня столкнулся с очень странным багом: я создаю клон персонажа, перевожу камеру и управление на клона, отворачиваюсь от оригинала, отбегаю метров на 50, поворачиваю камеру обратно, а оригинала нет! Точнее есть, но его коллайдер почему то находится на земле, а меш вместе с костями улетел метров на 100 вверх!

Изображение

Если нажать на паузу в редакторе, а потом снова плей, то меш может вернуться в коллайдер, а может и нет. Я также могу переключить камеру на оригинал персонажа и управлять им (то есть пустым коллайдером). Если создать несколько клонов и отбежать от них - то пока они находятся в зоне видимости камеры, с ними ничего не происходит, но как только отвернуться, то из части клонов точно также вылетает меш и висит над их коллайдером на рандомном расстоянии (может и в 2м над ним висеть). После нажатия-отжатия паузы меш части клонов может вернуться в коллайдер, а у части остаться висеть. Никакой закономерности я не нашел, юнити перезагружал, но баг никуда не делся. Когда он вообще появился - непонятно, за прошедший месяц делалось много всего и что именно повлияло - непонятно. В персонаже у меня есть несколько слоев и в отдельном слое рэгдолл, у которого все ригидбоди поставлены в isKinematic (до момента смерти персонажа). Может быть, кто-то сталкивался с таким багом? Поиском ничего подобного не нашел, да и что именно искать - непонятно.
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение 1max1 24 дек 2019, 02:25

С анимацией посмотри что да как, попробуй отключить ее и посмотреть как будет себя вести игрок.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 24 дек 2019, 03:07

1max1 писал(а):С анимацией посмотри что да как, попробуй отключить ее и посмотреть как будет себя вести игрок.

В ходе опытов выяснилось следующее:
1. если на ходу отключить аниматор у моего персонажа, то меш начинает постепенно(с подергиваниями) вылетать вверх из коллайдера, причем независимо от того, какой аниматор в него поставить.
2. если поставить мой аниматор в стандартного юнитевского персонажа, то при его отключении меш никуда не девается, и вообще ничего необычного не происходит.
3. Если у всех персонажей при старте сцены у аниматора сделать culling mode - always animate, то меш перестает из них вылетать (вылетает только если отключить аниматор на ходу). Но я так понимаю, что это требовательно к ресурсам.
Вопрос - где искать косяк, и в чем он может быть?
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение 1max1 24 дек 2019, 04:25

На меш только аниматор влияет? Нет больше никаких скриптов с изменениями позиции объекта?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 24 дек 2019, 04:56

1max1 писал(а):На меш только аниматор влияет? Нет больше никаких скриптов с изменениями позиции объекта?

на меш влияет только аниматор. Есть еще характер контроллер, но он влияет только на ригидбоди в корне персонажа, которое привязано к капсуле.
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 24 дек 2019, 09:33

Похоже, к улетанию каким-то образом причастен навмеш агент. Если его включить, а потом отключить аниматор, то персонаж начинает улетать в небеса. Если поставить в навмеш агенте base offset отрицательный (хоть -0.01) то персонаж начинает проваливаться под землю. Что может быть не так с персонажем, если навмеш агент на него так действует?
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение 1max1 24 дек 2019, 14:40

Что-то я не пойму, у тебя навмеш на объекте с мешем что-ли висит?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 24 дек 2019, 15:37

1max1 писал(а):Что-то я не пойму, у тебя навмеш на объекте с мешем что-ли висит?

когда я управляю персонажем, то на нем активируется характер контроллер, а навмеш агент и АИ контроллер отключаются. Когда переключаюсь на другого персонажа, то соответственно характер контроллер на первом отключается, а навмеш агент и АИ контроллер активируются, чтобы он действовал под управлением АИ.
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение 1max1 24 дек 2019, 16:21

Покажи скриншот компонентов в инспекторе с навмешем и иерархию.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 24 дек 2019, 22:27

1max1 писал(а):Покажи скриншот компонентов в инспекторе с навмешем и иерархию.

https://sun9-55.userapi.com/c200320/v20 ... A3EWkQ.jpg
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение 1max1 24 дек 2019, 22:46

Сложно сказать что именно не так, может быть в коде есть часть, которая напрямую управляет именно объектом с мешем, у тебя там много скриптов.
Если ты говоришь что улетает только меш, а родительский объект с коллайдером остается, то скорей всего навмеш тут не при чем.
Поищи по коду, может где-то участвует переменная baseOffset, раз уж она связана с этим.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 08 янв 2020, 21:01

Сегодня вновь попытался найти корень зла, но пока не нашел. Из новых наблюдений:
1. Чем дольше включена игра в редакторе, тем больше вероятность что меш персонажа улетит
2. Если отключить навмеш агент на персонаже, из которого улетел меш, то он может телепортироваться на десятки километров вниз или вверх
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 08 янв 2020, 21:45

Через какое-то время в игре обнаружил, что у меня провалился под землю персонаж, на котором вообще ничего не было кроме аниматора и рэгдолла! При этом юнити считает, что персонаж все еще находится на земле (Y=0 в трансформе). Может это версия юнити глючная?
https://sun9-1.userapi.com/c200424/v200 ... rN4lQg.jpg
https://sun9-53.userapi.com/c200424/v20 ... cJ0oqE.jpg
в скрипте die написано вот что:

public class die : MonoBehaviour {
public RuntimeAnimatorController an;
void Update () {
if (Input.GetKeyDown(KeyCode.Y)){
gameObject.GetComponent<Animator> ().runtimeAnimatorController = null;
}
if (Input.GetKeyDown(KeyCode.U)){
gameObject.GetComponent<Animator> ().runtimeAnimatorController = an;
}
}
}

при этом никаких кнопок я не нажимал. Если нажать кнопку Y, то персонаж может с разной вероятностью остаться на месте, провалиться под землю, улететь в небеса или с ним случится что-то подобное:
Изображение
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15

Re: Меш персонажа улетает в небеса

Сообщение Llevellyn 17 янв 2020, 03:02

В общем последний глюк связан с тем, что при создании рэгдолла на его ригидбоди не поставились галочки isKinematic
Llevellyn
UNец
 
Сообщения: 9
Зарегистрирован: 24 дек 2019, 01:15


Вернуться в Глюки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3