__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Обновка для минимода. Маленький фикс на клиенте и стрельба на бегу для алиен_грантов. Смотрим, отчитываемся о багах. http://rghost.ru/7rPngXgHp
Чуть позже сделаю зомбей и буллсквидов. Солдатня и барник пока не в приоритете, т.к. не исправил ещё функцию ChangeYaw.
С этими дллками можно пройти оригинальную халфу, или моды, не имеющие собственного кода. Пока не стоит этим заниматься. Когда большинство монстров будут уметь что-то делать в движении, тогда и можно будет.
Ku2zoff
А ты как сохраняешь предыдущие кватернионы и позиции? Как обычный sequence? Просто если ты делаешь так, то порой будет фигня выходить. Например, вот монстр бежит такой и резко ̶п̶р̶и̶у̶н̶ы̶в̶а̶е̶т̶ прыгает, допустим. Тут анимации смешиваются, ты сохраняешь предыдущие кадры и анимацию. Потом он еще, не доканчивая прыжок, делает шпагат. И если у нас предыдущая интерполяция между ходьбой и прыжком не завершилась, выходит не плавный переход от прыжка+бега к шпагату. Вот я подумал сохранять все позиции в массив координат и кватернионов. Тогда не придется сохранять предыдущую анимацию и кадр.
ILZM естественно, я слизал механизм с обычных секвенций. Каждая следующая гейтсеквенция интерполируется с предыдущей. Вполне могут быть довольно резкие переходы, но в последовательности ходьба/бег/стояние этого не заметно. Всякие специальные анимации, используемые в скриптах, не имеют активностей, в гейтсеквенцию не засовываются, и интерполируются как обычно.
Superuser8 ещё сыро. Но монстров с ближним боем уже вполне можно кодить. У меня есть идея. Я допилю существующий код, чтобы он был постабильнее и покрасивее, и напишу вам тутор по зонбе. А вы экспериментируйте, может поправите те баги, с которыми я никак не могу справиться. Пока вы будете ковырять код тутора, я доделаю пятящегося барника и попытаюсь сделать как следует хьюман_ и алиен_грантов. Ну и буллсквида ещё.
Если ни у кого нет желания этим заниматься, то я не буду писать тутор, и надеюсь, что успею доделать всё сам к релизу XDM 3.0.3.8. Помощь определённо нужна, есть нехороший затык на сервере с условием переключения на новые sequence/gaitsequence.
PLut range у зомби по-умолчанию 64 юнита. Трейслайн делается на 70 юнитов. Я сделал проверку на >= 48 юнитов - зомби бьёт на ходу. То есть от 64 до 48. Тут дело наверное не в этом.
UPD: кажется исправил условие переключения на новые sequence/gaitsequence. Надо тестить. Щас дам обновку для минимода. Из действующих на ходу монстров - агрант, барник и зонбе. Агрант бежит к врагу и стреляет, зонбе идёт и машет руками, а барник пятится от врагов, если те подходят слишком близко. Если барника зажимают в угол, он пытается убежать от врагов, но это не всегда выходит. Тут дело не только в самом SCHED_TAKE_COVER_FROM_ENEMY, но ещё и в нодах.
Для Халфы - да. Для Волатилы - нет Сейчас бы 2001 год, так можно было бы запилить ИИ на уровне ботов. А кому в 2015 это надо? Когда игре 17 лет, а движку 20? Разве что юзерам ксашмода. Если помирюсь с Дядей Мишей, он может быть впилит новое поведение по дефолту в ксашмод. Если моддеры его упросят, и если я доведу все эти дела до ума.
Я сужу конкретно по видео с зомбиком. Вполне круто. Сам понимаешь, детали, включая все баги, я не вижу.
Но в любом случае это круто, что ты делаешь. Я давно решил, что в новой волатиле буду делать монстрам гейт-секвенции (а там всё ещё сложнее - например, монстры умеют сидеть на стульях, и было бы неплохо научить их вести прицельный огонь по внезапно вылезшему игроку, не тратя время на вставание). И теперь есть человек, с кем, если что, можно будет посоветоваться.
Ну что, запилить вам тутор по зонбе? Или будете готовенькое ждать? А может кто-нибудь придумает как избавиться от "лунной походки" у барника? Я уже придумал. Но только на бумаге. Теперь надо код написать
ILZM писал: Меняешь framerate на -1, разве не так?
Не сработает. m_pCurrentEntity->curstate.framerate влияет на sequence. На gaitsequence влиять не будет, т.к. там кадры считаются независимо. Нужно находить разницу между m_pCurrentEntity->curstate.origin и m_pCurrentEntity->prevstate.origin, проверять, куда этот вектор направлен и сравнивать его направление с m_pCurrentEntity->curstate.angles. Ну как-то так. Если направления совпадают, то монстр движется вперёд. Если они противоположны, то монстр пятится. Опять же, не всегда может правильно работать, т.к. барник у меня почему-то не всегда смотрит на врага когда пятится. Может немного отворачиваться, если пятится вдоль стены наискосок.