HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Кажется, я починил DispatchAnimEvents
Досконально не тестировал
Страницы (9): « 1 2 3 [4] 5 6 7 8 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 587
Возраст: 28

Рейтинг



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

__________________
Мой мод на Xash

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

Старое сообщение 05-12-2020 05:55
- За что?
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1659

Рейтинг



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


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

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

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

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

Старое сообщение 05-12-2020 08:49
- За что?
Ku2zoff
Юзер (типа моддер)

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

Рейтинг



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

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

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

Отредактировано Ku2zoff 05-12-2020 в 09:03

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

Старое сообщение 05-12-2020 09:00
- За что?
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1659

Рейтинг



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


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

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

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

Старое сообщение 05-12-2020 09:27
- За что?
Ku2zoff
Юзер (типа моддер)

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

Рейтинг



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

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

Отредактировано Ku2zoff 05-12-2020 в 09:36

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

Старое сообщение 05-12-2020 09:33
- За что?
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 908

Рейтинг



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


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

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

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

__________________
I'm on github
I'm on Open Build Service
I'm on opendesktop.org

Отредактировано FreeSlave 05-12-2020 в 10:26

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

Старое сообщение 05-12-2020 10:23
- За что?
Ku2zoff
Юзер (типа моддер)

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

Рейтинг



Цитата:
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, и он отреагирует.

Отредактировано Ku2zoff 05-12-2020 в 10:34

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

Старое сообщение 05-12-2020 10:31
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 28285
Нанёс повреждений: 386 ед.

Рейтинг



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

__________________
My Projects: download page

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

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

Старое сообщение 05-12-2020 10:33
-
Ku2zoff
Юзер (типа моддер)

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

Рейтинг



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

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

Старое сообщение 05-12-2020 10:35
- За что?
FreeSlave
Житель форума

Дата регистрации: Nov 2007
Проживает: Тула
Сообщений: 908

Рейтинг



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


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

__________________
I'm on github
I'm on Open Build Service
I'm on opendesktop.org

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

Старое сообщение 05-12-2020 10:58
- За что?
Ku2zoff
Юзер (типа моддер)

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

Рейтинг



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

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

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

Старое сообщение 05-12-2020 11:12
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 587
Возраст: 28

Рейтинг



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

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

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

__________________
Мой мод на Xash

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

Старое сообщение 05-12-2020 12:03
- За что?
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1659

Рейтинг



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


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

Отредактировано Chyvachok 05-12-2020 в 13:08

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

Старое сообщение 05-12-2020 13:05
- За что?
Ku2zoff
Юзер (типа моддер)

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

Рейтинг



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

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

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

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

[ Вложение ]
2020-12-05_23-54-09.mkv_20201205_235900.gif

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

Старое сообщение 05-12-2020 17:11
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1463
Возраст: 30

Рейтинг



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

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

Старое сообщение 05-12-2020 17:26
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 07:35. Новая тема    Ответить
Страницы (9): « 1 2 3 [4] 5 6 7 8 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Кажется, я починил DispatchAnimEvents
Досконально не тестировал
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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