HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Про создание рэгдоллов (https://hlfx.ru/forum/showthread.php?threadid=4014)
Отправлено marikcool 23-07-2013 в 04:42:
Цитата:
fire64 писал:
Соответственно, либо придется на клиенте еще раз создавать физический каркас мира, дублируя код с сервера, что скажем прямо не супер, либо передавать матрицу костей с сервера на клиент, а это 12 float на кость, т.е. 48 байт на кость каждый фрейм.
Для примера, у hgrunt.dll 71кость, т.е. 3408 байт за фрейм.
ниче передовать ненадо, рагдольный человечек чисто клиенсткая часть, для более менее синхронизации, нужно передать импульс на хитбоксы либо на конкретные кости.
для лимитов, я бы копал в сторону макса и извлечения информации из их бипеда скелета и дальше сопоставлял бы с оригинальным скелетом.__________________
vk.com/skullcapstudios
Отправлено fire64 23-07-2013 в 05:17:
Цитата:
marikcool писал:
ниче передовать ненадо, рагдольный человечек чисто клиенсткая часть, для более менее синхронизации, нужно передать импульс на хитбоксы либо на конкретные кости.
для лимитов, я бы копал в сторону макса и извлечения информации из их бипеда скелета и дальше сопоставлял бы с оригинальным скелетом.
В результате придется делать физику и на клиенте, а это гарантированное снижение fps.
А если игрок по нему выстрелит, либо же нужно будет, чтобы падающий регдол свои телом сместил объект?
В HL2 например реголами можно было сбивать пропы.__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено marikcool 23-07-2013 в 06:21:
Цитата:
fire64 писал:
В результате придется делать физику и на клиенте, а это гарантированное снижение fps.
А если игрок по нему выстрелит, либо же нужно будет, чтобы падающий регдол свои телом сместил объект?
В HL2 например реголами можно было сбивать пропы.
регдолл только клиентсайдовый.
падающий регдолл ничто не сместит, разве только что то декоративное не требующие синхронизации с сервером.
насчет того что регдолл что то сбивает, неуверен, а вот единственный примитив с физикой, который создается на сервере заместо рагдолла, это возможно.
для теста пульни в сорсе человечка из грави пушки, да так чтобы его рука или нога например сбила бочку.__________________
vk.com/skullcapstudios
Отправлено Chyvachok 23-07-2013 в 07:11:
В ХЛ2 раггдолы клиентовские насколько я помню, только когда у игрока появляется супер-гравицапа и в модах вроде Блек-Месы и Смода их сделали серверными чтобы с ними можно взаемодействовать, брать гравицапой и разрывать на части.
Отправлено XaeroX 23-07-2013 в 07:22:
А в волатиле регдолл серверный.
Лучше передавать кучу флоатов по сети (кстати, для этого есть оптимизации), чем ломать голову над проблемой "регдолл толкнул ящик на клиенте, как теперь переместить этот ящик на сервере??"
__________________
Отправлено PLut 23-07-2013 в 09:31:
Мне кажется рэгдолл на клиенте с бсп-коллизией - предельно достаточно, какие-то ящики двигающиеся - лишнее. А если будет на сервере, то сгодится только в сингле, мне страшно представить что будет с рэгдоллом, если по сети так адски тормозит лазер рпг, ракета, плевок буллсквида.
__________________
Base Defense on Steam, ModDB
Отправлено marikcool 23-07-2013 в 10:04:
Цитата:
PLut писал:
если по сети так адски тормозит лазер рпг
да нормально будет, лиж бы фреймы не дропало, интересно сколько родит трафика 32 падающих трупа, нужно и релиэйбл буффер для такого случая поднимать.__________________
vk.com/skullcapstudios
Отправлено XaeroX 23-07-2013 в 10:58:
Рагдолы в рилэйбл буфере? Мсье знает толк в извращениях.
Впрочем, в волатиле вообще нет рилэйбл буфера.
Это чтобы поставить извращенцев в тупик. 
Добавлено 23-07-2013 в 17:58:
Цитата:
PLut писал:
А если будет на сервере, то сгодится только в сингле
Его для сингла и делают. Кому какое дело до того, как умирают игроки в мультиплеере? А вот в сингле - это развлечение для эстетов, убивать мобов и смотреть, насколько кривой рагдолл получился. 
__________________
Отправлено FiEctro 23-07-2013 в 11:01:
Рагдоллы необязательно только для трупов делают.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено PLut 23-07-2013 в 11:44:
XaeroX В мультиплеере тоже мобы могут быть, если ты понимаешь о чем я 
__________________
Base Defense on Steam, ModDB
Отправлено XaeroX 23-07-2013 в 11:47:
PLut
Угу, а канал у некоторых до сих пор модемный... 
Организуй хороший выделенный сервер в интернете с гигабитным каналом, и проблем не будет.
__________________
Отправлено marikcool 23-07-2013 в 12:11:
Цитата:
XaeroX писал:
Рагдолы в рилэйбл буфере? Мсье знает толк в извращениях.
если будет дроп пакетов, суставы могут сквозь суставы пройти при интерполяции.
Цитата:
XaeroX писал:
Организуй хороший выделенный сервер в интернете с гигабитным каналом, и проблем не будет.
с гигабитом накладно сервы дежать, обычно это 100 мегабит, нужно стараться укладываться в них.__________________
vk.com/skullcapstudios
Отправлено XaeroX 23-07-2013 в 12:39:
Цитата:
marikcool писал:
суставы могут сквозь суставы пройти при интерполяции.
Следующий пакет всё исправит.__________________
Отправлено Дядя Миша 23-07-2013 в 14:50:
Цитата:
fire64 писал:
либо передавать матрицу костей с сервера на клиент, а это 12 float на кость, т.е. 48 байт на кость каждый фрейм.
Ну ктоже в здравом уме будет передавать матрицы по сети?
Таких даже на гей-деве высмеивают.
Сжимать надо. Сначала до локальных координат, чтобы в шорт умещалось. А угол - в три байта. И вот уже вместо 48 байт у нас девять байт. Потом персональную дельту на 8 позиций (больше ИМХО смысла нет). 71 кость * 9 байт = 639 байт на кадр. И слать не каждый кадр, а чтоб залерпилось, т.е. 10 раз в секунду. Нам же лучше - плавнее дыргаться будет, а не как хл2-шные рогноллы.
И слать не все кости, а только выбранные + 1 байт на номер кости, минус несколько десятков байт на исключенные кости.
И на клиенте принимать, налиту строить из принятого оффсеты и кватернионы и БЛЕНДИТЬ С ОСНОВНОЙ АНИМАЦИЕЙ.
Вот тогда будет толк. А так нет.
Но лично я скажу, что в ксаше такую стройную систему не сделаешь - совместимость слишком мешает. Но вообще - можно.
Добавлено 23-07-2013 в 18:50:
Цитата:
marikcool писал:
ниче передовать ненадо, рагдольный человечек чисто клиенсткая часть
Это устаревший подход. Да, это просто и общепринято, но кто сказал что мы ищем простые, лёгкие пути?
Мы же всё-таки не Юнити какой делаем.
Цитата:
fire64 писал:
В результате придется делать физику и на клиенте, а это гарантированное снижение fps.
Какая связь?
Цитата:
fire64 писал:
В HL2 например реголами можно было сбивать пропы.
Так там пропы тоже клиентские.
Цитата:
PLut писал:
мне страшно представить что будет с рэгдоллом, если по сети так адски тормозит лазер рпг, ракета, плевок буллсквида.
Серверный рагдолл нужен в первую очередь для сингла. Для мульта придется написать таки клиентский, там некритично.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 23-07-2013 в 15:37:
Цитата:
Дядя Миша писал:
БЛЕНДИТЬ С ОСНОВНОЙ АНИМАЦИЕЙ
Это ещё зачем?
Добавлено 23-07-2013 в 22:37:
Цитата:
Дядя Миша писал:
Для мульта придется написать таки клиентский, там некритично.
Я придумал хитрее. Сделать опцию для мульта, mp_ragdolls или типа того. Если у игроков слабый коннект, то сервер ставит эту опцию и вместо рог нолла обычные анимации смерти. Если игра по локалке или толстый инет-канал - то опцию не ставим и наслаждаемся ногами, заезжающими в жопу, и прочими рогнольными прелестями. 
__________________