HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Hull'ы
И с чем их едят
Страницы (8): [1] 2 3 4 5 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Hull'ы

В коде компиляторов и функциях GetHullBounds на сервере и клиенте задефайнены размеры хуллов игрока. Три штуки: в полный рост, в присяде и точечный нулевой. Чтобы изменить размер игрока, надо поменять значения во всех трёх местах. Сегодня убедился экспериментально, пересобрав ещё и компиляторы. Это не беда, сделать не сложно. Но можно ли добавить ещё один хулл для лежачего игрока? Подозреваю, что нет, и это ограничение формата карт и движка. А для чего юзается точечный хулл? С первыми двумя понятно - для размеров игрока сидя и стоя. Ну а третий для чего? Для дохлого игрока? Можно ли его заюзать для своих целей?

Сообщить модератору | | IP: Записан
Сообщение: 145889

Старое сообщение 21-04-2015 10:40
- За что?
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Ku2zoff для всего юзается. Просто прям для всего. Особенно для трейсов, вроде.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 145891

Старое сообщение 21-04-2015 11:04
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



~ X ~ понял. Трейс он ведь точечный. Значит и все точечные энтити, тоже его юзают. И монстры, им ведь можно без труда задавать произвольный размер, в отличие от игрока.

Добавлено 21-04-2015 в 17:15:

Можно модифицировать компиляторы и добавить ещё один хулл, только вот прожуёт ли это дело движок? Я тут в DoD поэкспериментировал. Хулл у лежачего игрока такой же как и у сидячего. Забавно наверное выглядит со стороны, когда один игрок запрыгивает на другого в таком случае.

Добавлено 21-04-2015 в 17:27:

Похоже, нельзя добавить. Всего движок юзает 4 хулла: 3 для коллизии, про которые и идёт речь и один визуальный.
Есть мысль сделать хулл в присяде изначально маленьким, для лежачего игрока и как-то искусственно блокировать движение, когда игрок в присяде, а пространство не позволяет пролезть.

Сообщить модератору | | IP: Записан
Сообщение: 145893

Старое сообщение 21-04-2015 11:27
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


На самом деле нулевого хулла не существует.

Цитата:
Ku2zoff писал:
Похоже, нельзя добавить.

Только если перекомпилировать движок. Там тоже есть дефайн на число хуллов.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 145894

Старое сообщение 21-04-2015 11:30
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
На самом деле нулевого хулла не существует.

Это не шутка?

Сообщить модератору | | IP: Записан
Сообщение: 145901

Старое сообщение 21-04-2015 14:10
- За что?
JPEG
Житель форума

Дата регистрации: Sep 2013
Проживает: рф
Сообщений: 660

Рейтинг



ДМ вот чё мне писал "в pm_shared функция pmove->usehull.
Там есть нулевой - это обычный хулл игрока, есть первый - это присевший игрок и есть второй - точечный. Засада в том, что третий хитрая халфа может вообще не добавить в эту структуру.
Так что попробуй pmove->usehull = 3, но предупреждаю - может и не сработать."

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))

перехожу на другой двиг

Сообщить модератору | | IP: Записан
Сообщение: 145906

Старое сообщение 21-04-2015 15:15
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Ku2zoff писал:
Это не шутка?

Ну посмотри сорцы кваки. Он строится при загрузке уровня.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 145907

Старое сообщение 21-04-2015 15:37
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Почитал на русском форуме, посвящённом AMX. У чувака получилось хакнуть GetHullBounds и применить к игроку второй (третий по счёту) Vector(0,0,0), нулевой хулл. На скрине видно, что залез в узенькую щель (юнита 3) между ящиками на дедасте. Значит для игрока сработает usehull = 2.
Я боюсь, что если изменю его размеры в компиляторах и в движке, то что-нибудь изломаю.

Цитата:
~ X ~ писал:
для всего юзается. Просто прям для всего. Особенно для трейсов, вроде.

Цитата:
XaeroX писал:
На самом деле нулевого хулла не существует.
Он строится при загрузке уровня.

Так он юзается для чего-то или нет?
Где-то краем глаза видел чью-то писанину про то, что если менять какой-то из существующих хуллов, чтобы сделать его для лежачего игрока, то изломается коллизия монстров...

Добавлено 21-04-2015 в 23:12:

C++ Source Code:
1
/*
2
================================
3
GetHullBounds
4
 
5
  Engine calls this to enumerate player collision hulls, for prediction.  Return 0 if the hullnumber doesn't exist.
6
================================
7
*/.

Ключевая фраза PLAYER collision hulls. Попробую поковырять код, может только на игрока и действует.

Сообщить модератору | | IP: Записан
Сообщение: 145918

Старое сообщение 21-04-2015 17:12
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Методом тыка выяснил, что в GetHullBounds можно подставлять любые значения (и в любой кейс), лишь бы они совпадали с хуллами, задефайнеными в компиляторах, и кейс соответствовал pmove->usehull.

C++ Source Code:
1
vec3_t          g_hull_size[NUM_HULLS][2] =
2
{
3
  {// 0x0x0
4
  {0, 0, 0},          {0, 0, 0}
5
}
6
,
7
{// 32x32x72
8
{-16, -16, -36},    {16, 16, 36}
9
}
10
,
11
{// 64x64x64
12
{-32, -32, -32},    {32, 32, 32}
13
}
14
,
15
{// 32x32x36
16
{-16, -16, -18},    {16, 16, 18}
17
}
18
};

Из компилятора. Первый хулл для точечных объектов. Второй для стоячего игрока, третий ХЗ для чего, вроде пишут что для монстров, четвёртый для сидячего игрока. Поясните пожалуйста, для коллизий чего конкретно нужен третий хулл, куб 64х64х64? Ну не для монстров ведь. Им же задаётся произвольный размер: хедкраб, гаргантюа или барник пролезают в разные дырки, и ни одна из них не соответствует кубу со стороной 64. Может это какой-то рудимент от кваки? Да и размеры монстрам задаются совсем не так:
C++ Source Code:
1
для игрока
2
mins = Vector(-16, -16, -36);
3
maxs = Vector(16, 16, 36);
4
потому что ориджин в пузе

C++ Source Code:
1
для монстра, ростом с игрока
2
mins = Vector(-16, -16, 0);
3
maxs = Vector(16, 16, 72);
4
потому что ориджин в ногах

Сообщить модератору | | IP: Записан
Сообщение: 145964

Старое сообщение 22-04-2015 09:09
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Ku2zoff писал:
для коллизий чего конкретно нужен третий хулл, куб 64х64х64?

Для пушаблей, гаргов и т.п.
Движок сам подбирает наиболее близкий хулл.
Но ты не путай коллизию игрока с монстром (она точная, по боксу или даже хитбоксам) и монстра с миром (она приближённая - но обычно достаточно. Хотя бывает, что нод вроде бы вот он, а монстр к нему не идёт).

__________________

Сообщить модератору | | IP: Записан
Сообщение: 145965

Старое сообщение 22-04-2015 09:51
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



>Хотя бывает, что нод вроде бы вот он, а монстр к нему не идёт).

оох, как же это выматывает.

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 145966

Старое сообщение 22-04-2015 10:13
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
Для пушаблей, гаргов и т.п.

Цитата:
XaeroX писал:
и монстра с миром

Ага, ясненько. Значит этот хулл трогать всё равно нельзя. А может есть способ обойтись без хулла? Сделать в pm_shared проверку и считать коллизии там? Или это придётся тащить из движка недостающую физику?

Сообщить модератору | | IP: Записан
Сообщение: 145968

Старое сообщение 22-04-2015 10:59
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 29

Рейтинг



Замечал, кстати, если менять UTIL_SetSize монстрикам на свои, более подходящие к модельке, то бывает монстры перестают ходить по лестнице, высота ступенек которой равны 16 юнитам. В итоге у меня все монстрики размером 32х32х72. Ходят по ступенькам хорошо, но вот когда прыгают в сторону стены, то наполовину в стену уходят. Есть какое-то решение?

__________________
Base Defense on Steam, ModDB

Сообщить модератору | | IP: Записан
Сообщение: 145969

Старое сообщение 22-04-2015 11:38
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Ku2zoff писал:
Значит этот хулл трогать всё равно нельзя.

Почему? Можно. Просто движок подберёт для пушабля и гарга другой хулл, наиболее близкий по размерам. А что будет в итоге в игре - надо проверять.
Цитата:
Ku2zoff писал:
А может есть способ обойтись без хулла?

Ну.. можно написать волатилу, которая использует точную колоизацию по боксам. Как вариант. Халфа на хуллах завязана очень прочно.
Цитата:
Ku2zoff писал:
Так он юзается для чего-то или нет?

Юзается, конечно - это и есть точечный хулл. Но клипнодов для него в бсп нет, потому и говорю, что он на самом деле не существует.
Цитата:
PLut писал:
Есть какое-то решение?

Отказаться от хуллов.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 145970

Старое сообщение 22-04-2015 11:50
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
XaeroX писал:
Отказаться от хуллов.

Мечта детства, блин.

Хуллы - зло. КвакаГовно. Интересно, как оно в У сделано.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | | IP: Записан
Сообщение: 146047

Старое сообщение 25-04-2015 11:57
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 13:36. Новая тема    Ответить
Страницы (8): [1] 2 3 4 5 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Hull'ы
И с чем их едят
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024