HLFX.Ru Forum Страницы (10): « 1 2 3 [4] 5 6 7 8 » ... Последняя »
Показать все 138 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Кажется, я починил DispatchAnimEvents (https://hlfx.ru/forum/showthread.php?threadid=5590)


Отправлено Aynekko 05-12-2020 в 05:55:

Короче с контроллером там все очень плохо. У него прописаны в коде таски, что-то связано с эвентами анимаций и временными зависимостями. Полагаю, в этом проблема, что они не стреляют. Я не смог побороть.
В общем пока вернусь на старый код.

__________________
Мой мод на Xash


Отправлено Chyvachok 05-12-2020 в 08:49:

Цитата:
Ku2zoff писал:
фрагмоушене


Фрагмоушен полезная програмка, я ее использую в основном чтобы руки на моделях поменять: https://imgur.com/a/N6EXchX и https://imgur.com/a/a8wQEo6

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

Потом после того как модели обе в одинаковой позе, можно удалить модель с нужным скелетом, оставив ту что подгоняли, экспортировать ее через Export Pose, именно Pose нужен, заново открыть обе модели, с нужным скелетом и ту экспортированую в нужной позе, и там можно перецепить кости, там сверху нарисована кость с желтой стрелкой, выбрать модель, нажать на нее, появится окошко, где переназначить кость, сохранив ту же привязку, надо в самой сцене выбрать кость куда надо привязать, в менюшке откуда надо привязать, и нажать на Set, причем так можно перецеплять и даже мягкую привязку, но ее в 1 Халве все равно нет. Ну и после этого можно удалить уже не нужные кости от привязываемой модели, загрузить анимацию, и там же посмотреть насколько нормальная вышла привязка и сразу подправить.


Отправлено Ku2zoff 05-12-2020 в 09:00:

Chyvachok да, я делал так перепривязку рук, Export Pose очень классная штука. Не разобрался правда, что за инструмент Inverse Kinematics, как им пользоваться и что он делает. На сайте фрагмоушена нет толком никакой статьи, обучающей, как работать.

Цитата:
Aynekko писал:
В общем пока вернусь на старый код

Ты смотрел последнее видео с барником? Там старый код. Иногда подтупливает, но не сильно. Самые большие задержки из-за пауз в щедъюлях и прерывания тасков по bits_COND_BLABLABLA. Это надо просто знать, что и где убрать или сократить, или навтыкать алертов и читать консоль. Стоило мне убрать условие прерывания bits_COND_NEW_ENEMY и slBarneyTakeCoverFromEnemy, и он стал без проблем сваливать от противников. И вот таких вот мелких косячков в коде AI дофига. Ну вот согласись, если он сваливает от врага, зачем ему останавливаться, если он увидел ещё одного?


Отправлено Chyvachok 05-12-2020 в 09:27:

Цитата:
Ku2zoff писал:
Inverse Kinematics, как им пользоваться и что он делает.


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

Еще из полезных вещей есть Animation Link, он находится в вкладке Schemes, там окошко сбоку где есть вкладки анимаций, текстур и прочего, эта последняя, там изначально Root выбран, ей можно скажем так заставить одну кость следовать за другой, к примеру чтобы при сдвигании руки за ней шел магазин, там надо только поменять режим на Grab, выбрать нужные кости, и когда включаешь ее на определенном кадре анимации, оно запоминает позицию этих двух костей именно такую как в этом кадре, и при попытке сдвинуть "главную" кость оно будет само сдвигать дочернюю, плюс нажав второй кнопкой мыши на ней можно выбрать галку Apply to all frames, полезно к примеру чтобы прицеплять анимации idle и анимации стрельбы от одной модели к другой, например у некоторых моделей в анимации idle нету движения, можно ее прицепить от другой модели прицепив всю модель к кости оружия модели у которой есть idle анимация с движением.


Отправлено Ku2zoff 05-12-2020 в 09:33:

Цитата:
Chyvachok писал:
ей можно скажем так заставить одну кость следовать за другой

Вот это я вчера весь вечер искал, чтобы руку барника зафиксировать на цевье дробовика. Видел же гифку? Там левая рука елозит. Покадрово её поправлять - страшный гемор. Спасибо за подсказку. Попробую во фрагмоушене всё-таки делать. Он легковесный и без проблем имортит/экспортит smd. А то я уже блендер скачал. Как прочитал, какая там навигация в 3D виде, у меня возник вопрос "Чо? шифт + скм?" Но это фигня. А вот корявый импортёр smd, который периодически выдаёт ошибки - зло.


Отправлено FreeSlave 05-12-2020 в 10:23:

Цитата:
Ku2zoff писал:
Ну вот согласись, если он сваливает от врага, зачем ему останавливаться, если он увидел ещё одного?


Я думаю, в этом есть смысл, если он встретил другого противника в том месте, куда он хотел убежать. Убегает он, допустим от зомби, придёт в комнату, где стоят агрунты и будет вести себя так, будто их там и нет

Проблема в том, что AI не отслеживает сразу несколько противников (хотя может вести список прошлых, но на кондишенах это не отображается).

bits_COND_NEW_ENEMY это на самом деле должен называться bits_COND_NEW_BEST_ENEMY или bits_COND_BEST_ENEMY_UPDATED. В случае с убеганием от врага нужно другое условие, которое бы определяло, что новый противник - действительно новый, а не один из тех, кого монстр видел ранее, но кто не является "лучшим" врагом. Или даже условие, которое определяет, что новый враг находится достаточно далеко от прежнего. В общем, тут надо поразмыслить.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Ku2zoff 05-12-2020 в 10:31:

Цитата:
FreeSlave писал:
Проблема в том, что AI не отслеживает сразу несколько противников

В сорсе отслеживает. Там целый класс CAIEnemies. И итератор AIEnemiesIter_t для их перебора. Ну, скажем, в халфе можно сделать m_hEnemies[MAX_ACTUAL_ENEMIES]. И вместо PushEnemy и PopEnemy как-то по-другому их перебирать. Я думаю, что штук 8 было бы вполне достаточно мониторить. И было бы полезно. Я вот завёл bits_COND_ENEMY_TOOCLOSE, чтобы монстр валил от врага, если тот близко. Но он валит именно от m_hEnemy. Если второй подошёл сзади - трындец:



Добавлено 05-12-2020 в 17:31:

Цитата:
FreeSlave писал:
и будет вести себя так, будто их там и нет

Один из грантов станет для него m_hEnemy, и он отреагирует.


Отправлено Дядя Миша 05-12-2020 в 10:33:

Ну что вы там? Опять всё сломали?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 05-12-2020 в 10:35:

Дядя Миша я пока забил. Занялся самим AI. К эвентам потом наверное вернусь.


Отправлено FreeSlave 05-12-2020 в 10:58:

Цитата:
Ku2zoff писал:
Один из грантов станет для него m_hEnemy, и он отреагирует.


Это уже после того, как он дойдёт до укрытия. Если ты убрал из шедули прерывание по bits_COND_NEW_ENEMY, то барник и не будет получать врагов до тех пор, пока эта шедуля играется.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Ku2zoff 05-12-2020 в 11:12:

Цитата:
FreeSlave писал:
Если ты убрал из шедули прерывание по bits_COND_NEW_ENEMY, то барник и не будет получать врагов до тех пор, пока эта шедуля играется.

Будем посмотреть. Возможно, придётся действительно заводить список врагов.


Отправлено Aynekko 05-12-2020 в 12:03:

Цитата:
Ku2zoff писал:
slBarneyTakeCoverFromEnemy

У меня в ксаше у барника вообще такого нет почему-то. Но там барник спиритовский вроде, может уже отредактировали чего.

У барника еще есть в коде CheckRangeAttack вот такое: m_checkAttackTime = gpGlobals->time + 1; Может поменьше надо сделать, 0.25 там.

__________________
Мой мод на Xash


Отправлено Chyvachok 05-12-2020 в 13:05:

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


Это не совсем то, Animation Link цепляет отдельную кость, он не сгибает суставы как инверсная кинематика, а во Фраге нету какой-то объединенной версии, это в 3ДС Максе можно сделать, создать там инверсную кинематику, при ее создании на месте кости руки появится обьект Solver, который можно тягать и за ним рука будет сама двигаться сгибаясь, и его уже можно прицепить к оружию.


Отправлено Ku2zoff 05-12-2020 в 17:11:

Цитата:
Chyvachok писал:
во Фраге нету какой-то объединенной версии

Эти инструменты только по отдельности работают? Я пробовал ИК, сочетается с другими инструментами скелетной анимации. То есть, Rotate/Translate применяешь на дочернюю кость, и вся цепочка до родительской, указанной в ИК, поворачивается и сгибается как ты описал. Если совсем не работает, тогда сделаю в блендере, для него есть туторы по этой теме. Макс качать и ставить такое себе удовольствие: больно жирный он, да ещё и крякать надо.

Добавлено 06-12-2020 в 00:11:

Ну вот, в блендере совсем другое дело:


Отправлено ncuxonaT 05-12-2020 в 17:26:

Ku2zoff сделай рассинхрон в качении рук и тела


Временная зона GMT. Текущее время 13:51. Страницы (10): « 1 2 3 [4] 5 6 7 8 » ... Последняя »
Показать все 138 сообщений этой темы на одной странице

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