Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];

Вниз

Глюк в анимации смд   Найти похожие ветки 

 
Pa5ha ©   (2007-10-03 21:03) [0]

Вобщем пытаюсь сейчас присобачить анимацию. Вобщем то я бы сказал, что все работает но есть одно но.

Анимацию пока только одну пробовал, вот нашол в данных проблемный участок:death3.smd

46 "Bip01 R Thigh"   1
time 80
46 0.000005 -0.000003 -3.619081 1.190866 2.377027 0.668896
time 81
46 0.000005 -0.000003 -3.619081 1.329434 2.288924 0.698778
time 82
46 0.000005 -0.000003 -3.619081 1.534188 2.221815 0.756434
time 83
46 0.000005 -0.000003 -3.619081 -1.373787 0.934963 -2.326650
time 84
46 0.000005 -0.000003 -3.619081 -1.175133 0.896615 -2.318040
time 85
46 0.000005 -0.000003 -3.619081 -1.048860 0.811196 -2.381857

А теперь подробнее. Между 82 и 83 кадрами нога делает некрасивое вращательное движение (анимация из кс-а кстати). Я сначала подумал, что это из-за того что разница во вращениях между этими двумя кадрами больше 2*pi, пропарсил файл на предмет таких нестыковок, но оказалось, что это не так. Кто-нить может объяснить как убрать такие баги?

ЗЫ.: поясню формат куска файла анимации:
первые три float - координаты кости x,y,z;
вторая тройка float - вращения кости x,y,z в радианах, кака я понимаю. Все это 46 кость, т.е. бедро, которое крутится не так как надо.


 
Тындекс   (2007-10-04 01:57) [1]

Чем проигрываешь? Может проигрыватель глючит?


 
Pa5ha from university )   (2007-10-04 13:50) [2]

Проигрываю своей прогой и проблема явно в ней т.к. в милкшейпе все работает как надо. Не могу понять в чем проблема и как надо преобразовать исходные данные.


 
Тындекс   (2007-10-05 05:40) [3]


> Pa5ha from university )   (04.10.07 13:50) [2]
>
> Проигрываю своей прогой и проблема явно в ней


На GLScene?

Если нет, как ты делаешь преобразования фрейма к фрейму? Возможно в этом месте ошибка.


 
Pa5ha ©   (2007-10-05 20:51) [4]

Тындекс, нет, прога просто на опенГл и апи. Преобразования делаю просто: V_Lerp. Короче просто интерполяция линейная от одного вращения к другому, от одного Translation  к другому. И ииногда между некоторыми кадрами некоторые части тела бесяца вот так вот.


 
Тындекс   (2007-10-06 03:56) [5]


> Pa5ha ©   (05.10.07 20:51) [4]
>
> Тындекс, нет, прога просто на опенГл и апи. Преобразования
> делаю просто: V_Lerp. Короче просто интерполяция линейная
> от одного вращения к другому, от одного Translation  к другому.
>  И ииногда между некоторыми кадрами некоторые части тела
> бесяца вот так вот.


V_Lerp чего? Уголов в радианах из smd-файла? Так нельзя.

Нужно перевести ротации в кватернионы, и делать Lerp им. Функция Lerp для кватернионов, если надо, есть в GLScene в файле VectorGeometry.pas.


 
Pa5ha ©   (2007-10-06 15:42) [6]

Тындекс, обясни пожайлуйста почему? Я вот никак в кватернионы доганть не могу.


 
Тындекс   (2007-10-08 04:15) [7]


> Pa5ha ©   (06.10.07 15:42) [6]
>
> Тындекс, обясни пожайлуйста почему? Я вот никак в кватернионы
> доганть не могу.


Скажу честно, я не знаю почему. Просто знаю, что с углами Эйлера может глючить, а с кватернионами нормально работает.


> Я вот никак в кватернионы доганть не могу.


Что именно? Форумала Lerp ( QuaternionSlerp ) для кватернионов есть здесь:
http://glscene.cvs.sourceforge.net/glscene/Source/Base/VectorGeometry.pas?revision=1.54&view=markup



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1323290513
Кто б сомневался
2011-12-08 00:41
2012.04.15
Чем лучше черные клавиатуры?


15-1323694887
aka
2011-12-12 17:01
2012.04.15
Скорость выполнения алгоритма


4-1254300446
Игорь Андреевич
2009-09-30 12:47
2012.04.15
Запретить запись с экрана


15-1323592147
alexdn
2011-12-11 12:29
2012.04.15
Ява скрипт


1-1291134936
tadalex
2010-11-30 19:35
2012.04.15
Размер панели в StatusBar e





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский