forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Что-то непонятное с анимацией (http://forum.boolean.name/showthread.php?t=5911)

KRIK 14.04.2008 22:04

Что-то непонятное с анимацией
 
Вложений: 1
Всем привет! Начну сразу с проблемы. Тут пример в котором бегает чел. Если нажать на W, то он идёт, если на SHIFT+W якобы бежит. Попробуйте сначала нажать на W и посмотреть какая анимация, потом нажмите на SHIFT+W, немного пробегите и снова нажмите на W. Очень странно, но анимация немного изменилась, причём изменилась так, как она и должна была быть в начале, но в начале анимация почему-то какая-то глючная. Вопрос очевиден - что с анимацией и как это исправить? Если есть дополнительные вопросы - пишите. В архиве модели с анимацией и код.

FrankH 15.04.2008 00:00

Ответ: Что-то непонятное с анимацией
 
Я бы начал копать с анимации, правильного указания кадров и лишних ключей, например что-то в анимации ходьбы(плечи или центр тяжести возможно) имеет лишний ключ поворота(или же не хватает ключа), однако почему это не повторяется не могу точно сказать, не юзал отдельных анимаций и таких проблем небыло.

ABTOMAT 15.04.2008 00:37

Ответ: Что-то непонятное с анимацией
 
Скачал. Посмотрел.
Особых различий в анимации не заметил.
Однако у меня был подобный глюк (по описанию) в моей игре
Вот короче как я с ним справился: (не полностью, конечно, но это лучше чем совсем никак):
В общем, у меня чел тоже был с двумя анимациями - бежит и идёт. Когда он бежал, то он наклонялся немного вперёд (анимация такая) а когда после этого шёл или стоял - то так и оставался в согнутом состоянии :-D смешно было наблюдать.
Вот то, что я смог выясниь:
В анимации бега в максе была задействована кость спины (ну, которая ответственна как раз за нагибание)
А в анимации ходьбы - нет (т.е. в максе она тоже есть, но не делает никких действий - не крутится, не двигается и т.п.).
Похоже, Блитз не обрабатывает те кости, которые в анимации не задействованы.
В принципе, это правильно, однако при переключении с одной анимации на другую возникают баги - бежл чел пригнувшись, а затем вдруг стал идти, но кость спины в этой анимации не задействована - вот Блитз её и не обработал и она осталась как была согнутой.
Как я с таким боролся:
в анимации ходьбы задействовал совсем учть-чуть кость спины - сделал ей анимацию с поворотом на пол-градуса буквально - даже и не заметно когда наблюдаешь за анимацией.
А вот Блитз отлично всё это схавал - глюк прошёл.
Однако чтобы полностью исключить глюки нужно чтобы в каждой анимации каждая кость была задействована.
У меня в анимации было до хрена костей, мне лень было каждой делать отдельно анимацию - я сделал только основное.
Если у тебя есть такая возможность - лучше прямо при создании анимации юзай все кости буквально на полградуса даже если их тебе не надо юзать - подобные глюки не должны мучить такие модели.

З.Ы. Анимацию ходьбы сам делал? Хорошая такая... :)

KRIK 15.04.2008 11:45

Ответ: Что-то непонятное с анимацией
 
Анимацию делал не я) Но совет, как я понял, не только мне пригодится. Спасибо!

moka 15.04.2008 11:45

Ответ: Что-то непонятное с анимацией
 
Если это так как описал АВТОМАТ, тогда это наоборот порой отлично, я как-то раньше не замечал подобного, можно же делать морфы (устанваливая кадр вручную), к примеру установить кадр анимации где только ноги один, и для только рук другой (следующий), и что из этого выйдет, по идее должно сработать :)

ABTOMAT 15.04.2008 16:25

Ответ: Что-то непонятное с анимацией
 
MoKa, не очень удобно это :(
Я сам думал об этом.
Чтобы сделать отдельно анимацию ног и анимацию рук.
Но ведь в Блитзе анимация может у одного энтити быть только одна, поэтому проигрывать обе разом не получится :( Либо я не очень хорошо понимаю, что ты хотел, объясни поподробнее, это вроде как интересно :)

moka 15.04.2008 17:57

Ответ: Что-то непонятное с анимацией
 
ABTOMAT, есть функция для установления текущего кадра :) Юзай её, но я хз точно, т.к. ведь применение может влиять лишь на переменные, а обновление происходит при вызове UpdateWorld, но тут смотри, я думаю прокатит, т.к. данные заполняются для костей надеюсь при вызове назначения анимации.
AnimSetTime вроди так называется, глянь в справке :)

HolyDel 15.04.2008 18:14

Ответ: Что-то непонятное с анимацией
 
UpdateWorld(0) - чтобы не обновлялась анимация.

moka 15.04.2008 18:25

Ответ: Что-то непонятное с анимацией
 
HolyDel, но при вызове SetAnimTime будет изменяться? Если да тогда применение анимация производится непосредственно при вызове функции, хм я бы делал не так :) но эт неважно, чтож тогда это будет хорошо. :)

H@NON 16.04.2008 14:51

Ответ: Что-то непонятное с анимацией
 
хм, есть версия что в UpdayeWorld() всеже будет просчитыватся анимация, а вот уже ее прокрутка нет :). Потому как в скобках же задается параметр для дельта-тайминга, а в самой функции скорость прокрутки просто умножается на этот коэффициент. Хотя это всего лишь теория :)


Часовой пояс GMT +4, время: 11:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot