Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Скелетная анимация


Автор: atam91 8.8.2007, 23:46
я вот не очень понимаю пол дня парился что бы считать модель из 3д макса ладно нашел полностью расшифровку того куска файла который мне нужен  ладно осталось закодить, думаю все путем сейчас модель скачаем (тк я плохо модельки делаю ,а точнее просто не разбираюсь в максе )  так вот скачал я стрелу открыл и думаю вот ггг ведь она сплошная делать кривую текстуру под всю стрелу не интересно и я подумал что надо бы сделать свой формат куда импортировать из макса и добавлять своё 

а сейчас подумал :  кости в максе делать не умею   читать их не удобно работать все строится на моих вычисления и подумал я а чего бы мне не сделать свои кости так вот мне нужен тот кто хотя бы раз работал со скелетной анимацией в максе или ещё лучше написал свою игру что этот кто-то вставил мне мозги

опишите пожалуйста плюсы и минусы скелетной анимации

и пожалуйста напишите или дайте линки на то как сделать кости в максе   хотябы в цилиндр запихнуть
потом как их считать и заставить все это подвигаться

Автор: ShellRaiser 9.8.2007, 10:41
Создаеш цилиндр(Cylynder), через него протягиваеш две кости(Bone), далее выделяееш цилиндр, выбираеш модификатор Skin там будет чтото похожее на add, жмёш и выбираеш нужные кости, далее выделяеш одну из костей и попробуй её повернуть или переместить)))....ты должен будеш увидеть как при этом деформируется сам цилиндр...
Как анимацию делать объяснять?

З.Ы. 3ds Формат не поддерживает Skin анимацию...так на всякий случай чтоб патом не геморился;)

Автор: atam91 9.8.2007, 13:07
да пожалуйста объясните.
И если 3ds  не поддерживает  тогда что мне использовать?

Автор: ShellRaiser 9.8.2007, 15:26
Анимацию делаеш след образом: берёш допустим ползунок который в самом низу, и перетягиваеш его ну например на 50 кадр, далее нажимаеш кнопку Autokey(в этом случае она становится красная) и берёш поворачиваеш кость вправо, затем снова перематываеш ползунок кадр допустим на 100 , и поворачиваеш кость влево, затем снова нажимаеш на Autokey и нажимаеш кнопку Play(с треугольником такаяsmile) вот тебе и примитивная анимация))

насчёт загрузки файлов:
ну скажем так тебе для экспорта придётся писать свой плагин для макса(када с этим сам разберусь то подскажу как а пока держи тока ссылкуsmile) http://www.gamedev.ru/articles/?id=40114
далее загружаеш в свою программу...


Автор: atam91 9.8.2007, 16:34
вопрос такой меня в общем интересовала другая анимация    можно ли сделать так что я загружаю модель с костями а потом сам в программе пишу углы во всех плоскостях для костей и у меня все это дело двигается?
можно ли такое релизовать?

вот сайтик давно нашел но не понял  http://xproger.mirgames.ru/?id=1&page=2&doc=anim3d

Автор: CPlusPlusFAN 9.8.2007, 22:11
Цитата

но не понял


Что не понял?
Что конкретно интересует: морфинг, скелетка?

Цитата

опишите пожалуйста плюсы и минусы скелетной анимации


+: Достаточно хранить только матрицы трансформации костей, значит уменьшается расход памяти.
-: Невозможно анимировать одежду, мягкие ткани и т.д.

Автор: atam91 9.8.2007, 23:14
я просто пока подумал сделать так 
будут просто модели без анимации будет скелет(там типа деревья качаются)
как реализовать персонажей вот не знаю   но они будут выглядеть так что по-моему скелет для них пойдет на них жестко будет сидеть одежда

решил реализовывать сначала только первое   начал редактировать скрипт и он стал выдавать ошибки но я думаю с этим справлюсь

остается вопрос про кости я не хочу хранить миллионы анимаций    я хочу отдельно  модель    отдельно скелет     и отдельно к нему анимацию.Как это реализуют люди  ?

Автор: CPlusPlusFAN 10.8.2007, 00:15
Цитата

на них жестко будет сидеть одежда


В большинстве случаев так и делают. Исключение: фишка с развевающимся плащом и т.д.

Цитата

начал редактировать скрипт


Какой скрипт?

Цитата

я не хочу хранить миллионы анимаций


Т.е.?

Цитата

Как это реализуют люди  ?


Загружают меш, кости и анимацию. smile

Добавлено через 3 минуты и 26 секунд
Цитата

И если 3ds  не поддерживает  тогда что мне использовать?


.X

Автор: atam91 10.8.2007, 00:29
 я не хочу чтобы у меня была анимация из макса я хочу взять модель    и толи взять кости    толи самому их сделать
и управлять из программы так типа кость повернулась в этой плоскости на такой то угол    затем идут вычисления   и все рисуется

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

Автор: CPlusPlusFAN 10.8.2007, 09:01
Цитата

я не хочу чтобы у меня была анимация из макса


А почему? Она упрощает жизнь.

Цитата

плюс расскажите плиз что такое меш


Эта сетка из вершин, формирующая какую-либо поверхность.

Автор: atam91 10.8.2007, 12:24
даже если я буду использовать модель из макса как мне все это экспортировать по подробнее пожалуйста
и как потом это заставить двигаться?

Автор: CPlusPlusFAN 10.8.2007, 14:23
Обычно экспортируют в .X.
Затем, загружая кости, загружаешь и анимацию.

Автор: Evgen24 10.8.2007, 22:43
CPlusPlusFAN, 
Цитата
Обычно экспортируют в .X.

А ссылочку не можешь дать, где плагин для экспорта из max в X файл лежит?
И как этот файл в свою прогу засунуть?
  

Автор: CPlusPlusFAN 10.8.2007, 22:55
Выбирай: MilkShape, 3D Exploration. А в плагинах я не силён.

Автор: atam91 11.8.2007, 12:08
вопрос: зачем мне милкшэйп   если макс даё т мне больше возможностей
КТО-нибудь может объяснить как в максе наложить текстуру           как написать скрипт експортирующий треугольники  и текстурные координаты и как потом взять эту текстуру (допустим стрела     я там не одну текстуру накладывать буду (наконечник стрела и оперение)) как-то экспортировать в один файл.

Если кто-то тут мне сможет это объяснить то я буду очень благодарен...

Автор: atam91 11.8.2007, 13:38
вопрос: зачем мне милкшэйп   если макс даё т мне больше возможностей
КТО-нибудь может объяснить как в максе наложить текстуру           как написать скрипт експортирующий треугольники  и текстурные координаты и как потом взять эту текстуру (допустим стрела     я там не одну текстуру накладывать буду (наконечник стрела и оперение)) как-то экспортировать в один файл.

Если кто-то тут мне сможет это объяснить то я буду очень благодарен...

Автор: ShellRaiser 13.8.2007, 10:09
вообщем браток для наложения текстуры делай следующее:
1- Открой Material Editor(М) и загрузи текстуру(думаю с мэдитором умееш работать), и натягиваеш иё на объект
2- Выдели объект который хочеш текстурировать и выбери модификатор для иго: Unwrap UVW и жми Edit (чёт вроде этого)
3- В открывшемся диалоге выбираеш текстуру, и располагаеш полигоны объекта как тебе душа пожелает smile 

Автор: atam91 14.8.2007, 21:29
Спасибо за ответ. Но остались не отвеченые вопросы.

Цитата(atam91 @  11.8.2007,  13:38 Найти цитируемый пост)
как написать скрипт експортирующий треугольники  и текстурные координаты и как потом взять эту текстуру (допустим стрела     я там не одну текстуру накладывать буду (наконечник стрела и оперение)) как-то экспортировать в один файл.


и ещё как потом все это заставить рисоваться в программе?

Автор: XProger 26.8.2007, 16:58
Оптимальнее использовать одну текстуру на объект.

Автор: rukudias 19.9.2007, 00:35
Привет Всем!
Я сам новичек в этом деле и поэтому приходится ходить по граблям smile 
Вот че на копал
-нафиг конвертитор из 3д макса в х валяется в инете гугли сынок!
-зделав анимацию в 3д макасе мона эти конвертиторам сохранить в файл
-в файле кроме вершин ,последовательности прорисовки треугольников еще лежит и
матриса преобразований для каждого кадра(колво кадров ты поставиш в максе) такшо парси файл!
-но все это пурга!
-макешепе эта прога позволяет делать скилет анимировать его натяг текстуры и сохранять все это(может 3д макас тоже сие позволяет делать извени незнаю)в файл как с ней работать ХЗ у мя есть готовая модель валялось в инете.
-причем эта прога генерит несколько файлов там модель седит стоит бегит
-в файле лежат связи между узлами 
-анимация те как каждый узел в зависимости от кадра изменил свое положение и
информац о наложении текстур

продолжение следует

вот еслибы кой нибуть ГУРУ подхватил бы и продолжил а не посвободке сам ковырятыму!

Автор: Rickert 19.9.2007, 08:26
Народ, я понять не могу: в чём, блин, проблема? smile 

Автор: rukudias 25.9.2007, 23:57
Цитата

Народ, я понять не могу: в чём, блин, проблема?   



так вот слухай хлопче!
от парсил файл как я читал макешапе создает несколько файлов типа статика и анимаха
в файле статики лежит связи меж костями
потом следчий блок
time_0
 где лежит транслете и ротете каждой кости нах нужен?
потом триэнглс тут все в норме те лежат треугольники котрые отрисов вокруг сустава если быть точным и текстура соотвецтно

Автор: Rickert 26.9.2007, 05:10
Цитата(rukudias @  25.9.2007,  23:57 Найти цитируемый пост)
где лежит транслете и ротете каждой кости нах нужен?

Я непонял: ты спрашиваешь где лежит матрица преобразований (включающая в себя вращение и перемещение) или ты спрашиваешь нахрена она нужна?
Ты не русский чтоли? Чего так ломано изъясняешься?

Автор: rukudias 26.9.2007, 21:48
Цитата

или ты спрашиваешь нахрена она нужна?



вот именно.
как имея 3 координаты для транслейта и 3 координаты ротейта сделать матрицу?
я имел ввиду зачем она нужна когда это файл статики те внем лиш один кадр time_0?
там такая матрица лежит для каждого сустава.тепер 
я применил матрицу отрисовал все треуголники котрые привяз к суставу далеечто...?
вернуть текуш матрицу в исходное положение затем взять  матрицу след сустава и опять либо не возращ в исход состояние?

извени что закрутил smile 

Автор: Rickert 27.9.2007, 07:28
А не судьба просто поэксперементировать?
Вообще, по идее, тебе не надо возвращаться в исходное состояние.
Я вижу ты понятия не имеешь что это за матрицы такие.
Вкратце расскажу:
Там даётся матрица 4х4.
Вообще, я не понимаю, зачем люди делают эту матрицу, они считают что так проще. Я так не считаю и утверждаю, что обсчёт обратной матрицы для неё слишком много времени занимает для процессора - тратится время.
По сути:
Делится матрица на три части логических:
1 - матрица поворота - 3х3
2 - матрица переноса - 1х3
3 - матрица добавочная - 4х1
1.1 1.2 1.3 | 3.1
1.4 1.5 1.6 | 3.2
1.7 1.8 1.9 | 3.3
_________|
2.1 2.2 2.3 | 3.4
Каждый сустав в скелетной анимации - это всего лишь новая точка системы координат.
2 - ая матрица - это её положение в родительской системе координат
1 - ая матрица - направление её абсцисс в родительской системе координат.
3 - ая - для вычисление через матричные преобразования.
Короче говоря, ты можешь спокойно обходиться без матрица оперируя векторами. Я лично делаю так - мне проще.
Вопросы?

Автор: rukudias 27.9.2007, 21:47
По порядку есть файл статики.
там:
Связи между суставами раз!
time_0 что это можеш обьяснить?зачем в статике это ведь я и так могу про рисовать
типа номер сустава и его транслет и ротате тишу так!

далее понятно треуг для каж сустава!

если файл динамики то там опятьже 
Связи между суставами 
и раз кадровка!те покадрово описаны положен суставов!

Автор: Rickert 28.9.2007, 04:14
Всё, короче, мне надоело. Учи русский, а то я нифига понять не могу.

Автор: rukudias 9.10.2007, 00:44
Привет! Опять я я тут подучел руский вот  и опять у меня вопрос.
Вопшем структуру smd файла поняли.
вот первый баг
беру модель и отрисовываю ее
так

triangles
SK_Skl-side1.bmp
 13 -1.0361 0.8447 70.9631 -0.3920 0.8538 0.3427 0.8654 0.7000
 13 -2.1161 -0.4396 70.9071 -0.8587 0.2770 0.4311 0.6923 0.7167
 13 -0.4361 -0.2993 72.3413 -0.3337 0.4255 0.8412 0.7500 0.8833
SK_Skl-side1.bmp
 13 -0.4361 -0.2993 72.3413 -0.3337 0.4255 0.8412 0.7500 0.8833
 13 -2.1161 -0.4396 70.9071 -0.8587 0.2770 0.4311 0.6923 0.7167
....
SK_Arm1.bmp
 23 11.8079 -4.4176 30.2791 -0.7098 0.4764 -0.5189 0.2857 0.0250
 23 11.7985 -6.0035 30.2982 0.4919 -0.7430 -0.4539 0.5000 0.0167
 23 11.8292 -5.9894 32.1575 -0.8489 -0.5268 -0.0424 0.5357 0.0667
end
с этим блоком все ясно модель отрисовывается
далее..
отрисовываю скелет используя информац
nodes
  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
.....
end
и
skeleton
time 0
  0 0.233849 0.368164 39.526119 0.000000 0.000000 -1.570795
  1 0.000000 0.000000 0.000000 -1.570795 -1.570796 0.000000
  2 -0.000005 0.000007 3.713255 0.002054 3.115505 -0.021473
....
end
что храниться вэтом блоке тож понятно
но результат отрисовки такой ось симметрии совподает и у скелета и модели
но толи скелет повернут на 180 градусов вокруг этойже оси толи модель
где бах
...


 

Автор: Rickert 9.10.2007, 10:23
Эксперементируй или давай сюда исходник, иначе не разобраться.

Автор: rukudias 10.10.2007, 23:29
Вот исходник !
Зарание спасибо!

http://servant.homeip.net/files/skel.rar

Автор: Rickert 11.10.2007, 02:09
Блин, да чтоже вы все glut-То юзаете? smile 
Дай скрин того что получается и скажи в какой функции у тебя запарка - а то так не сориентируешься у тебя.

Автор: rukudias 11.10.2007, 19:52
ты запускал проект?
в класее скелет там коментты шоу скил функшин в ней прорисовка
rukudia@ukr.net может асю закинеш или скупе просто дорого время вот так раз вдень ответы читать smile 

Автор: Rickert 12.10.2007, 03:54
Я не смогу запустит проект - у меня glut библиотеки нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)