среда, 3 декабря 2014 г.

Проблемы с составным полом

Итак, мы составили  уровень из нескольких кусков и машинки начали запинаться на стыках. Фактически высоты полов одинаковые, так что проблема не в них.

Начинаю копать, появляются варианты/мнения:
  1. Коллизия машинки идёт по кастомному мешу, он сложнее сферы и может подглючивать из-за этого.
  2. Физические движки будут глючить всегда, так что нужно делать пол одним мешем.

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

Второй вариант решается двумя путями:
А) Делать отдельно префаб в 3дМаксе и закидывать в игру.
Б) Объединять в момент зарузки уровня все меши пола в одну модель и использовать её же в качестве меша.

Вариант "А" сразу же исключает возможность делать редактор уровней для пользователей и этим он мне не нравится. Так же он ограничиает нас в том, что бы сделать 100500 уровней.

Вариант "Б" интересен тем, что объединять плитки пола в одну не сложно и нужно ещё для оптимизации drawcalls, что пришлось бы рано или поздно делать. Попробовав его реализовать оказалось, что если ставить галочку в поле convex, то у нас не получится делать пол для уровней с колодцами или не выпуклой формы, а если соответствующую галочку не ставить, то он делает коллижены такие же, как и у отдельных мешей со стыками. По идее в этот момент должна вступить такая чтука как Concave. Тем более что она в Unity есть ( при импорте моделей ставишь галочку “генерить коллижены”) и она сделала нормальный коллижен для нашей экспериментальной локации “Скейт-парк”. Но тут начинается странносфера Unity. Concave, кроме как при импорте, нельзя нигде выставить. Только покупным плагином за 45 долларов (в принципе ладно), который ставится только на PRO версию ( Damn!). И это при том, что concave  - встроенная функция физических движков, как мне сказал False3d.

На этом аналитический аппарат заело и понадобилось записывать весь ход исправления спотыканий, дабы окинуть взглядом со стороны.

Взгляд со стороны говорит про то, что прямо сейчас нужно ограничить количество уровней в игре 20-40. Тогда реально сделать для них коллижн-пол в ручную. А если мы когда нибудь сподобимся делать редактор уровней, или доводить их количество до нескольких сотен, то нам понадобится автоматизировать генерацию concave collider’a тем или иным способом.
Пока  всё. Если есть какие то вопросы, то задавайте в комментариях.

Комментариев нет:

Отправить комментарий