Н-да... Судя по коду скрипта, заменил стрейф на простой. Не ясно, как вообще ещё не высветило fatal:goodbye! Прежде, чем что-либо менять, надо разобраться как это работает.
И вообще по теме не ясно, какая задача стоит. Прикрутить ГГ полёт? Если так, то вряд ли выйдет.
Думаю, что структура hum_body_naked0.asc не совместима с телом мага-скелета ввиду отсутствия нижних конечностей у последнего. Если нужно заставить ГГ парить- делай всё с нуля через оверлей. И за базу надо брать biped hum_body_naked0.asc.
P.S. Опишу всё ж общий подход. Думаю, полезно будет.
Создаём скрипт HUMANS_FLY.MDS со следующей структурой:
Model ("HUS")
{
meshAndTree ("HUM_Body_Naked0.ASC"DONT_USE_MESH)
aniEnum
{
//RUN-Mode
ani ("s_Run" 1"s_Run"0.1 0.1 MI "HUM_FLYAmbient.asc" F 0 N)
//Run-Loop
ani ("t_Run_2_RunL" 1"s_RunL"0.0 0.0 M. "HUM_FLY.ASC" F 0 N)
ani ("s_RunL"1"s_RunL"0.0 0.0 M. "HUM_FLY.ASC" F N+1 NN)
ani ("t_RunL_2_Run" 1"s_Run"0.0 0.0 M. "HUM_FLY.ASC" F NN+1 NNN)
aniBlend ("t_RunR_2_Run" "s_Run"0.2 0.2)
}
}
HUM_FLYAmbient.asc- анимация простоя (ГГ парит над одной точкой) длиной от 0 до N кадров
HUM_FLY.ASC- анимация полёта длиной от 0 до NNN кадров. В свою очередь, чодержит 3 фазы:
t_Run_2_RunL- переход от простоя к циклу полёта s_RunL- длина от 0 до N
s_RunL- цикл полёта. Анимация должна быть циклической, чтоб не было рывков. Длина от N+1 до NN кадров
t_RunL_2_Run- фаза торможения, т.е. переход от цикла полёта до остановки. Длина от NN+1 до NNN кадров, т.е. до конца.
Все анимации делаются самостоятельно из файла HUM_Bodu_Naked0.max, находящимся в GMDK.
Далее создаём в игре кольцо и в нём прописываем on_equip=fly_start и on_unequip=fly_stop функции.
Первая ниже инстанции кольца будет такой:
func void fly_start()
{
ApplyOverlayMDS(self,HUMANS_FLY.MDS);
};
Вторая далее:
func void fly_stop()
{
RemoveOverlayMDS(self,HUMANS_FLY.MDS);
};
Теперь надев кольцо левитации, ГГ будет носиться по земле, как полуденица в Ведьмаке.
Удачи в эеспериментах!