Показать сообщение отдельно
Старый 26.12.2005, 09:50   #651
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Декомпилятор скриптов Готики

2Ukur:
Но в некоторых случаях, когда *.MDM (*.ASC) модель не была изначально зарегестрирована в *.MDS файле, но использовала его:
Например: GOBBO_SKELETON_BODY.MDM использует Gobbo.MDS
//
func void Set_GobboSkeleton_Visuals()
{
* * Mdl_SetVisual(self,"Gobbo.mds");
* * Mdl_SetVisualBody(self,"Gobbo_Skeleton_Body",DEFAU LT,DEFAULT,"&am
p;qu
ot;,DEFAULT,DEFAULT,-1);
};
//
Конвертер НЕ ЗАМЕЧАЛ данную модель и не конвертировал, даже после того, как она была занесена в *.MDS файл.
Да, такая проблема имеет место, в Г2 есть несколько незарегистрированных мешей, регистрация их в MDS бесполезна, конвертер для Г2 использует только MSB файл, а в двоичный файл ничего не вставишь, пока не знаю что и придумать, хотя способ с переименованием - тоже выход.

НО, в игре не прижилась ЕДИНСТВЕННАЯ конвертированная модель Болотного голема GOL_SUMPF_BODY.MDM.
Были "красные внимания" Шпиона:
[w] 00:00 Warn: 0 *D: * *MSB: Frame-Number is out of bounds, ani: S_FISTRUNL .... <zModelProto.cpp,#3902>
[w] 00:00 Warn: 0 *D: * *MSB: Frame-Number is out of bounds, ani: S_FISTWALKL .... <zModelProto.cpp,#3902>
[w] 00:00 Warn: 0 *D: * *MSB: Frame-Number is out of bounds, ani: T_FALL_2_FALLEN .... <zModelProto.cpp,#3902>
По идее эта модель тоже должна работать и в Г1, есть такое предположение: возможно, в Г2 MSB и MDS файлы разные, конвертируется в Г1 файл MSB, а конкретно переноситься файл MDS. Необходимо проверить таким образом: в Г2 удалить файл MSB, запустить игру -> будет создан файл MSB идентичный MDS, затем конвертировать.
Теперь о вниманиях, они на общую работоспособность модели не влияют, "Frame-Number is out of bounds" говорит о том, что некоторые эффекты (PFX и звуковые) анимации модели находятся за пределами этой фазы анимации, хотя и принадлежат ей.
Пример:
ani ("s_FistWalkL" 1 "s_FistWalkL" 0.0 0.1 M. "Tro_WalkLoop_M01.asc" F 13 62)
{
* **eventSFX (10 "TRO_STEPLIGHT" EMPTY_SLOT)
* **eventPFX (20 "GolemDust" "BIP01 R Foot" ATTACH)
* **eventSFX (44 "TRO_STEPLIGHT" EMPTY_SLOT)
* **eventPFX (64 "GolemDust" "BIP01 L Foot" ATTACH)
}
последние два параметра строки ani(xxx) задают номера начального и конечного фреймов фазы анимации, в остальных строках первый параметр является номером фрейма на котором включается соответствующий эффект.
В данном примере в строках 2 и 3 ошибок нет (фазы 20 и 44), а в строках 1 и 4 есть ошибки (фазы 10 и 64 выходят за пределы данной фазы анимации, фреймы 13 - 62).
Ответить с цитированием