Тема: LBOTS
Показать сообщение отдельно
Старый 04.05.2022, 00:23   #14
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: LBOTS

Я вернулся с небольшим обновлением. Ох и крови моей попил юнити на этих выходных.
Сделано что обещано - визуализация отлетания поверженных карт на линиях с поля боя после удара по ним.

В чём была боль:

1. Сначала я просто задавал направление движения карте и задавал вращение, из за чего карта в процессе полёта расслаивалась, т.е. юнити некорректно отображает положение чайлдов движимого объекта. Прикол в том, что карты это такой пирог из десятков чайлдов, где тексты, рамки всякие, значки, это нужно для того, чтобы создавать карты из одного шаблона, и легко их редактировать, да плюс подключать к карте тексты на разных языках. В итоге летит эта карта таким разделённым на слои пирогом, всё чёрт пойми где, тексты сзади, фоны спереди, картинка сбоку, и т.д. Короче жопа полная, юнити очень плохо работает с координатами и кватернионами чайлдов прицепленных к беспорядочно летящему объекту. Естественно когда всё долетало до нужной точки и останавливалось, магическим образом все чайлды оказывались где надо.

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

3. Окей, думаю заюзаю физику взрывов. Вешаю на всех чайлдов ригидбоди, ставлю фиксид джоинты, жёстко креплю чайлдов к ригидбоди основного объекта карты, конечно же снимаю кинематику, добавляю гравитацию этому объекту, ставлю взрыв, и всех чайлдов колбасит ещё больше, это буквально мазня на весь экран. Фиксед Джоинты говно полное, нифига они жёстко не фиксируют ни при каких настройках.

4. Думаю, ну окей, оставлю физику взрывов, и избавлюсь от чайлдов. При загрузке боя, рендерю карту со в семи чайлдами в текстуру (выставляя текстуре настройки идентичные текстурам чайлдов), удаляю чайлды, текстуру натягиваю на меш карты. Получаю абсолютно идентичную текстуру пиксель в пиксель, но при удалении от камеры рябящую, чё с этим не делай рябит и всё. Плюс ко всему я получил отжор оперативки, и задержку в начале боя, что является неприятным моментом. Да теперь летящую карту от взрыва не расслаивает, но решение говно, хоть я и убил на это два дня (ну да, получил бесценный опыт).

5. Последний вариант. Имитирую физику отлёта. По кривым безье случайно (в нужном диапазоне) генерирую траекторию полёта карты, и отправляю по ним через трансформ позишн, а вращение карте задаю предварительно созданными анимациями вращения в аниматоре, соответствующими направлению кривой, и о чудо - всё работает. Получилась дешёвая имитация физики отлёта карты при ударе. Однако меш карты без физики при вращении теперь углами проходит сквозь стол, из-за этого мне пришлось создать вторую камеру, и рендерить в неё стол, а поверх неё уже мейн камерой рендерить всё остальное. Результат на видео:

__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube

Последний раз редактировалось Crystal, 04.05.2022 в 01:28.
(Offline)
 
Ответить с цитированием