PDA

Просмотр полной версии : Анимация персонажей


bodnar
17.12.2008, 12:20
Все человечки в игре выполняют одни и те же движения. А вот одежда на них и оружие должны меняться. Можно ли как со создать один скелет, а затем на него "нанизывать" заготовленные (предварительно "одетые") части тела и оружие?

Division
17.12.2008, 12:34
Можно, это называется скелетная анимация. Думаю, при должном усердии, её можно даже из 3D Max'a экспортировать. Читай про скелетную анимацию, в 2D она даже проще делается.

PS матрицы умножать придётся (:

bodnar
17.12.2008, 12:45
Я уже искал по поводу скелетной анимации во флеше, но я так и не понял как можно "нанизать" заготовки на заанимированный скелет.

да, и при чем тут матрицы :away:

Division
17.12.2008, 12:53
Ну, значит, как я представляю скелетную анимацию. Есть иерархия костей. Есть главная кость(root), от неё идут дочерние кости. Трансформация каждой кости задана относительно родительской. То есть если мы повернём root, повернётся весь скелет. Если мы повернём плечевую кость, повернутся так же и локтевая с кистью. Эти самые трансформации задаются матрицами. По всей видимости для 2D случая хватит матриц 2*2. Чтобы получить трансформацию, допустим, руки, нужно умножать матрицы root*плечо*рука, к примеру. Саму анимацию можно экспортить из 3D Max, (MaxScript => XML, допустим)

Сам я скелетную анимацию ещё не делал, так что могу в чём-то ошибаться.

Теоретически можно сделать проще - заанимировать скелет мувиклипами, смотреть на позицию rotation костей и таким же образом поворачивать части персонажа. ИМХО изврат.

chingachgoog
17.12.2008, 13:00
По-моему для автора все проще: есть готовая анимация (твинами небось) и надо просто менять скины. Самое простое тут - сделать многокадровые мувики - части тела. Например мувик голова. Она анимирована: смотрит то влево, то вправо. А в самой голове есть кадры: 1-й - голова персонажа 1, 2-й - голова персонажа 2 и т.д.
В нужный момент переходим на нужный кадр и персонаж преображается.

PS: а при чем тут раздел ActionScript 3.0? Типа, цифра 3 больше, чем 1?

Chas
17.12.2008, 13:56
чинга правильно говорит

etc
17.12.2008, 14:29
Переезжаем.

Division
17.12.2008, 16:20
Чтож, опять я не угадал) ИМХО предложенный мной способ тоже имеет право на жизнь, хотя я не видел чтоб во флешь играх так делали. Попробую реализовать. Наверно уже в новом году) Как по мне, главный плюс - экспорт анимаций из 3D Max. А там уже можно и вкусностей добавлять вроде блендинга анимаций.

bodnar
17.12.2008, 18:34
По-моему для автора все проще: есть готовая анимация (твинами небось) и надо просто менять скины. Самое простое тут - сделать многокадровые мувики - части тела. Например мувик голова. Она анимирована: смотрит то влево, то вправо. А в самой голове есть кадры: 1-й - голова персонажа 1, 2-й - голова персонажа 2 и т.д.
В нужный момент переходим на нужный кадр и персонаж преображается.



Ну похоже так и придется делать.
Но я думал что можно нарисовать сам "скелет", добавить ему нужную анимацию. А затем как нить сделать так, чтобы например там где у моего скелетика нога отображалось какое нить изображение. И если нога сдвигалась с места то и это изображение двигалось вслед за ногой. Тогда можно было бы манипулировать всем человечком двигая только скелет.

Wolsh
17.12.2008, 18:42
Собственно, именно это Вам и написали. Просто каждая часть тела - это клип из нескольких кадров, где эта часть тела в разных "одежках". Когда надо переодеть - переводите все клипы на нужный кадр. Удачи!

Chas
17.12.2008, 18:46
Дык это ж именно то, о чем вам рассказал чинга. Для каждого элемента делается мувик, где в первом кадре, будет условный скелет, эдакий bounding box, во втором - часть тела персонажа 1, в третьем часть тела 2 и т.д.
Собираем все эти части тела на сцене, указываем им уникальные имена. Теперь, получается, мы видем на экране скелет, а чтобы превратить его в нужного нам перса, нужно для каждой части тела сделать gotoAndStop (номер перса).
Теперь, видя, во флеш редакторе скелет. мы добавляем анимации для него, твинами или просто передвигая мувики.
Вполне удобно.
Или вы имеете ввиду инверсную кинематику? Когда двигаешь стопу и за ней двигается ляжка и бедро? Такого в cs3 нет, но, насколько я понимаю, такое можно настроить в cs4. Я, правда, не пробывал.