Показать все 13 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Моделирование (https://hlfx.ru/forum/forumdisplay.php?forumid=25)
-- Ноженьки отказали... (https://hlfx.ru/forum/showthread.php?threadid=5174)
Ноженьки отказали...
Возникла проблема, которую в одиночку я решить затрудняюсь, несмотря на все старания. Не знаю даже, в каком направлении рыть...
Есть 2 модели игроков.
Пусть это будут
1. Barney
2. Helmet
Что имеем:
- Все анимации ОДИНАКОВЫЕ для обоих мешей. Они даже в одной папке лежат и собираются из одних исходников, кроме мешей.
-QC файлы тоже идентичны , кроме названий меша и готовой модели.
- ModelViewer показывает анимацию БЕГА в обоих случаях, и всё работает (в том смысле, что визуально проблем нет)
А вот в самой игре у модели игрока Barney при беге НОЖЕНЬКИ не работают, а вот у Helmet - всё нормально.
В чём тут может быть проблема????
Исходники моделей тут:
https://yadi.sk/d/EobthUGCNDLCIQ
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Проверь названия костей в скелете, а конкретно "Bip01 Spine", это та кость, от которой применяется гейтсеквенция.
__________________
Поглядел. В мешах разный порядок костей по списку:
Видимо, это играет какую-то роль. Причём, только в игре.
Обычно, если хрень с костями, модель во вьювере уже перекрученная.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB]
Да, это играет важную роль.
Смотри:
1 | for (i = 0; i < m_pStudioHeader->numbones; i++) |
2 | { |
3 | if (strcmp( pbones[i].name, "Bip01 Spine") == 0) |
4 | break; |
5 | memcpy( pos[i], pos2[i], sizeof( pos[i] )); |
6 | memcpy( q[i], q2[i], sizeof( q[i] )); |
7 | } |
__________________
Дядя Миша писал тутор, как этот пазор для моделей с нестандартной иерархией костей исправить. Прям тут на форуме должен быть.
Да под ксашем они и должны работать без всяких туторов...
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да как исправить??
Я по-своему решил сделать, и всё вышло:
взял рабочую модель helmet, все нерабочие модели прописал в QC бодигруппами.
вот так:
$bodygroup "body"
{
studio "_player_helmet"
studio "_player_gordon"
studio "_player_barney"
studio "_player_bdroid"
studio "_player_zombie"
}
Получается, что всем присвоился при компиляции скелет из первого меша.
Ну а потом я всё это декомпилил, растащил меши обратно, и наделал отдельных моделей.
Это был смелый шаг, рискованный, но оно как-то сработало....
Естественно, это проще, чем риэсайнить вертексы с неправильного скелета на правильный...
code:
0 "Bip01" -1 1 "Bip01 Pelvis" 0 2 "Bip01 L Leg" 1 3 "Bip01 L Leg1" 2 4 "Bip01 L Foot" 3 5 "Bip01 R Leg" 1 6 "Bip01 R Leg1" 5 7 "Bip01 R Foot" 6 8 "Bip01 Spine" 1 9 "Bip01 Spine1" 8 10 "Bip01 Spine2" 9 11 "Bip01 Spine3" 10 12 "Bip01 Neck" 11 13 "Bip01 Head" 12 14 "Bip01 L Arm" 12 15 "Bip01 L Arm1" 14 16 "Bip01 L Arm2" 15 17 "Bip01 L Hand" 16 18 "Bip01 R Arm" 12 19 "Bip01 R Arm1" 18 20 "Bip01 R Arm2" 19 21 "Bip01 R Hand" 20 end
code:
0 "Bip01" -1 1 "Bip01 Pelvis" 0 2 "Bip01 Spine" 1 3 "Bip01 Spine1" 2 4 "Bip01 Spine2" 3 5 "Bip01 Spine3" 4 6 "Bip01 Neck" 5 7 "Bip01 Head" 6 8 "Bip01 L Arm" 6 9 "Bip01 L Arm1" 8 10 "Bip01 L Arm2" 9 11 "Bip01 L Hand" 10 12 "Bip01 R Arm" 6 13 "Bip01 R Arm1" 12 14 "Bip01 R Arm2" 13 15 "Bip01 R Hand" 14 16 "Bip01 L Leg" 1 17 "Bip01 L Leg1" 16 18 "Bip01 L Foot" 17 19 "Bip01 R Leg" 1 20 "Bip01 R Leg1" 19 21 "Bip01 R Foot" 20
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
if( strcmp( pbones[i].name, "Bip01 Spine" ) == 0 ) |
break; |
1 | for( int j = 0; j <NUM_LEGS_BONES; j++ ) |
2 | { |
3 | if( !strcmp( pbones[i].name, legs_bones[j] )) |
4 | break; |
5 | } |
6 |
7 | if( j == NUM_LEGS_BONES ) |
8 | continue; |
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
__________________
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 02:20. | Показать все 13 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024