А что тут можно придумать внятного? Вертексная анимация получается путём запекания скелетной, т.е. это конвертация с потерями.
А то что утеряно уже никаким алгоритмом обратно не восстановишь, разве что нейросетью, которая лепит отсебятину, похожую на правду.
Добавлено 08-10-2023 в 16:11:
Цитата:
APAMk2 писал: или и того хуже - запиливать код вертексной анимации?
Старый ксаш умеет в вертексную анимацию. Новый, впрочем, тоже.
Дядя Миша писал: Старый ксаш умеет в вертексную анимацию. Новый, впрочем, тоже.
Вот тут поподробнее, если можно, для этого нужны какие-то доп. телодвижения, ведь так? Просто сунуть модельку у меня не получилось, вылет с указанием на файл gl_context.c
APAMk2 писал: Вот тут поподробнее, если можно, для этого нужны какие-то доп. телодвижения, ведь так? Просто сунуть модельку у меня не получилось, вылет с указанием на файл gl_context.c
env_model может отображать статичный кадр alias-модели формата Quake mdl. env_sprite полноценно загружает её с анимацией. Модель будет видна на стандартном рендере gl_renderer 0. Удивительно но даже сам автор XashXT забыл о наличии такой фичи в своём продукте.
Не забыл, а не счёл нужным упомянуть. Какая же это фича, если для нее приходится выключать рендерер? Это анти-фича.
Crystallize писал: Env_sprite в ксашмоде загружает анимированные квейковские модели
Помнится когда делал карты для DMC, использовал Env_sprite чтобы загружать халфовские модели, т.к. все остальные способы там выпилили
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
В дикее был индикатор состояния перса (в т.ч. и на пк), типа прыгаешь, стоишь, сидишь, решил добавить его к себе, полез в исходники пк-порта и таки нашёл нужный файл ( https://github.com/hoaxer/Half-Life...l_dlls/mode.cpp ), перетащил весь связанный код к себе, запускаю и что вижу? Лишь фонарик, прикол в том что если убрать спрайты для него из hud.txt - появляется новый индикатор, фонарика естесна нет, что это такое и как быть не понимаю.
UPD. подкинул hud.txt из дикея - всё заработало, потом добавил строчки индикатора ровно туда где и в дикее - тоже заработало, максимально странная шняга.
Дело даже не в этом было, кое-кто кривыми ручёнками удалил один из UnpackRGB у фонарика и благополучно об этом забыл, восстановил - заработало всё, тут только одно фиксить - голову.
Но не будем о грустном, пытаюсь добавить акимбо-варианты для оружия, как определить что оружие есть у игрока на сервере и через какую функцию лучше всё провернуть? AddToPlayer похоже вызывается 1 раз при подборе и дальше вызывается AddDuplicate через который я не вкурил как получить указатель на игрока т.к. он принимает в аргументы лишь 1 CBasePlayerItem, а какой-нибудь удобный способ получить указатель на игрока я не нашёл.
APAMk2 писал: как определить что оружие есть у игрока на сервере и через какую функцию лучше всё провернуть? AddToPlayer похоже вызывается 1 раз при подборе и дальше вызывается AddDuplicate через который я не вкурил как получить указатель на игрока т.к. он принимает в аргументы лишь 1 CBasePlayerItem, а какой-нибудь удобный способ получить указатель на игрока я не нашёл.
Как определить, что оружие есть у игрока:
C++ Source Code:
if (игрок->pev->weapons & (1<<WEAPON_ОРУЖИЕ);
Через какую функцию всё провернуть? Тут либо при каждой необходимости проверять, есть ли это оружие, либо писать переменную о том, что оно уже есть в энтварсы игрока. Что ты хочешь накодить? Чтобы при наличии одной пушки (именно одной, подобранной один раз, при подбирании второй точно такой же делалось "акимбо")?
APAMk2 писал: Возможно ошибаюсь, но ведь можно сделать переменную в классе стандартной, не "акимбо" пушки (mp5 к примеру) и оно будет работать, разве нет?
Верно. Заведи в классе пушки переменную, которая будет нулевой при первом поднятии игроком такой пушки. А вот если игрок поднимет вторую такую же пушку, в AddToPlayer присвой этой переменной единицу. В сейвдату пушки это надо сохранять, если мод сингловый. Ну а дальше, если переменная равна единичке, пушка становится акимбо. Класс у неё не меняется, у неё меняются свойства. Плясать нужно уже от этой переменной. Если она не нулевая, то вьюмодель оружия будет уже другая - с двумя пушками в двух руках. Ну и так далее.
Смог реализовать, но чуть иначе, переменная где-то вообще оказалась не нужна, в класс обычной пушки добавляю AddDuplicate в котором через pOriginal->m_pPlayer получаю игрока и уже проворачиваю всё что мне нужно, только вот теперь единственно нужно вот это:
Из флагов блокирующих гравитацию игрока, ONROPE и ONTRAIN бесполезны, а ONBARNACLE ломает код из SetAbsVelocity и SetAbsOrigin.
Гравитация почему-то пересиливается только юзанием обоих этих команд, иначе будет медленное сползание по нескольку юнитов за кадр. Раньше я думал что это гравитация просто применяется после SetAbsVelocity чтобы программисту не нужно было думать про неё лишний раз, но теперь я хз.