Небольшой девлог по Агентам
Одна из важных фич игры (особенно с точки зрения маркетинга) - перенос рэгдольных тел в духе Hitman и GTA.
Игрокам такое заходит, рэгдолл-физика всегда выглядит прикольно.
Поэтому фичу нужно было сделать по-честному: не левитирующее тело для галочки, а нормальный рэгдолл, который тащишь, который тянется и - что важно - которого может нести другой игрок одновременно с тобой. А если не синхронизировались и разошлись слишком далеко - тело растягивается и разрывается на части.
Звучит конечно здорово.
А по реализации - все не просто.
Вообще любое совместное взаимодействие с физическим объектом в ко-опе - уже сложная задача.
Даже нести ящик вдвоем непросто сделать так, чтобы движение одного игрока влияло на другого. А тут еще рэгдолл и мультяшное растягивание сверху.
В общем, challenging, назовем это так.
Изначально фичу делал разработчик, но осилил только половину и уперся в кучу технических проблем. Потом подключился я вместе с ИИ - и за пару дней все доделали.
Как это работает в итоге:
- Тело рэгдолла остается сугубо локальным визуалом
- У НПЦ есть рут - его центр
- Когда игрок берет конечность, создается нетворк-объект-магнит, который у всех игроков притягивает к себе эту конечность, а она, в свою очередь, - рут
- Получается несколько якорных точек, синхронизированных между игроками, которые держат рэгдолл, как нити кукловода
- В рамках этих нитей рэгдолл уже действует локально у каждого игрока
- Каждый игрок сам притягивается к руту НПЦ, пока держит его, - поэтому другой игрок может его сдвигать
- Когда игрок отходит, точка магнита едет вслед за ним, и расстояние между игроком и рутом меняется
- Чтобы это компенсировать, в late update кости конечности подтягиваются к магниту, создавая эффект растяжения, а на следующем тике возвращаются обратно, не мешая рэгдоллу - и это тоже происходит локально
Т.е. по сети синхронизируется только рут НПЦ, ключевые точки-магниты и сами игроки. Все остальное - локально.
Если два игрока оказываются дальше порогового расстояния от рута, а растяжение превышает лимит - НПЦ уничтожается, а вместо него спавнятся vfx остатков.
И под конец - точки, куда тела можно выкидывать, как в Hitman. Это объекты со своими мягкими магнитами, которые притягивают попавшие в их триггер-зону тела. Это не дает телу случайно выпасть, например, из шкафа, но оставляет пространство для рэгдолл-физики.
Фух. Ну, в общем, всего делов-то.😅
П.С. Ну и понятно что все тут - early WIP, все дела
Post #97
1.19K