Войти
ПрограммированиеФорумГрафика

Скелетная анимация -> блендинг разных анимаций.

Страницы: 1 2 3 4 5 Следующая »
#0
0:33, 24 дек. 2010

Всем привет )

Вот поднял у себя скелетную анимацию и задумался.

Она в старом движке у меня была, всё работает отлично, однако человек один высказал неодобрение моей "системы".

Итак, дано:
Анимация "человек бежит", анимация "человек стреляет из пистолета".

Необходимо получить анимацию: "человек бежит и стреляет из пистолета"


Моё решение:

1. экспортирую анимацию "человек бежит"
2. вот тут и вся фишка:  чтобы экспортнуть анимацию "человек стреляет", необходимо ВЫДЕЛИТЬ в редакторе мышкой кости, которые участвуют в анимации "человек стреляет", и только ИХ экспортим.

Далее в движке эти 2 анимации кроссфейдятся, при чём у "человек стреляет" ставлю вес = 1.0, что значит:  на кости торса эксклюзивно влияет анимация стрельбы а на все остальные анимация бега.  И это работает, ОТЛИЧНО  работает : )

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

1. для каждой анимации указать начало и конец трека
2. (!) для каждой анимации выделять свою группу костей, если в этой анимации участвуют не все кости - вот это человеку больше всего и не нравится.  Получается каждый раз когда заново экспортится анимация, нужно выделять для неё кости, а если анимаций 15-20 то это повеситься можно : ))  А я ещё жить хочу : D


Собсно интересны решения данной "проблемы". 

Что мне не понятно:  опять же есть анимация "бег" и анимация "стрельба".  КАК я узнаю, что мне из анимации "стрельба" нужно учитывать ТОЛЬКО трансформации костей торса (рук, головы - нувыпонели) а трансформации ног брать из анимации "бег"  ?

Заранее спасибо ))


#1
1:04, 24 дек. 2010

1. Анимации можно маркировать один раз и маркировку сбрасъвать в соседний текстовой файл
2. Скелет вообще можно маркировать один раз для данног меша, експортить потом все анимации с ним
3. Маркировать один раз несколько масок, т.е. подмножеств костей и в рантайме их привязъвать к анимациям, ибо иногда человек бежит и стреляет, иногда только стреляет и нет смъсла делать 2 анимации стрельбъ, если можно просто замаскировать одну и ту же под оба кейса

#2
1:04, 24 дек. 2010

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

А если по делу - твой вариант бленда групп костей более чем приемлемый, ибо так делается, например, в EMotion. А насчет "типа" проблем экспорта, все это лень артистов и не желание хоть чуть чуть подумать как можно оптимизировать процесс. Например 1-й пункт, это вообще какая то фантазия. Что значит, ой надо указывать начало и конец трека, а как иначе то, делать анализатор нужных ключей в анимации, все это смахивает на бред. Насчет выделения группы костей, а что мешает в максе нужные кости объединить в группу, и далее при экспорте, селектить эту группы и уже экспортить, в чем проблема то?

В общем посылай своейго советчика куда подальше, ибо надо уметь головой работать, а не сваливать свою лень на программистов :)

#3
1:05, 24 дек. 2010

ENgine
Експорт из MAX-a должен происходить одним нажатием бутона. Все остальное - лень тул програмиста.

#4
1:10, 24 дек. 2010

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

#5
1:12, 24 дек. 2010

Z
> 1. Анимации можно маркировать один раз и маркировку сбрасъвать в соседний
> текстовой файл
Опа! Хорошая идея! )

Z
> 2. Скелет вообще можно маркировать один раз для данног меша, експортить потом
> все анимации с ним
Каким образом?  В имена костей вшить названия групп? 

Типа сначала делим на торс и ноги:

Torso
Legs

потом добавляем подгруппы

Torso_LeftArm
Legs_LeftLeg

и в таком духе производжим декомпизицию скелета в имя кости.  Потом по имени читаем группу а в игровом движке указываем для трека, какие группы модели задействовать?  Вроде так нормально, пока это не коснётся специфичных не человеко подобных моделей о_О  Надо наизусть знать названия групп Модели.  Ужас.

#6
1:16, 24 дек. 2010

Z
Действительно, экспорт группы костей, который осуществляется аж двумя кликами свидетельствует о неимоверной лени программиста.

#7
1:18, 24 дек. 2010

.L
Я так полагаю, мои слова ты игноришь :) Ну да ладно, хочешь вводить в пайплайн костыли, твое право :)

#8
1:36, 24 дек. 2010

ENgine
> Я так полагаю, мои слова ты игноришь :)
мм, да нет. Я согласен впринципе с тобой, но есть некоторые сомнения всётаки ) Я ещё ни чего не решил да и мозг ща не варит вообще - весь денгь скелетка мозг парила (в блоге запись есть). : )

ENgine
> Ну да ладно, хочешь вводить в пайплайн костыли, твое право :)
я то как раз и не хочу и долго спорил с тем человеком что у меня то какраз ТРУЪ вариант.  )))

#9
2:03, 24 дек. 2010

ENgine
> и как следствие такие анимации никогда не используются без смешивания с другим
Ето не так, спокойно можно сделать цельную анимацию стрельбъ и потом ее же смешивать с бегом.

.L
> В имена костей вшить названия групп? 
Нет. В експортере есть 4 бутончика - Mark mesh, Mark skeleton, Mark animation и Export. Первъе три просто берут текущий селекшн и записъвают его в текстовой файл с маркировкой + имя меша, скелета, анимации. Потом Export просто берет из файла список обьектов - вот ето и есть кости, меши, анимейшн рейндж.

.L
> Надо наизусть знать названия групп Модели
Mark animation mask - хоп и подмножество скелета. В движке проигръвая анимацию можно ее замаскировать такой масочкой и все.
Нет никакого нейминга, все делается селекцией в пакете моделирования и ее однократной маркировке.
Потом можно хоть batch export делать, запуская MAX автоматом на весь арт - раз все промаркировано, человек в експорте уже не нужен если арт готов.
Конечно если нужен реекспорт с участием MAX-а, что то другое в пайплайне не правильно...

#10
3:16, 24 дек. 2010

.L
Как говориться истина где то рядом и что на самом деле тру большой вопрос :)

На практике я работал с обоими вариантами, в начале был EMotion и там как раз что отэкспортировали, то и блендилось, сейчас же имеется разбиение костей по группам и в зависимости от префикса в имени имеется автоматическое соотнесение к одной из 5 групп. И именно практика показывает, что вариант как в EMotion лучше, ибо у артиста больше ручек контроля, плюс не надо для каждой анимации в анимационной тулзе указывать какие именно группы активны в данном клипе.

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

А насчет маркировки, да, конечно ты прав, что группы костей настраиваются один раз, только скажи, как понять, что именно в этой анимации активна именно 2-я группа, а не все группы?

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

#11
8:20, 24 дек. 2010

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

#12
12:32, 24 дек. 2010

.L
> Что мне не понятно: опять же есть анимация "бег" и анимация "стрельба". КАК я
> узнаю, что мне из анимации "стрельба" нужно учитывать ТОЛЬКО трансформации
> костей торса (рук, головы - нувыпонели) а трансформации ног брать из анимации
> "бег" ?
Я не спец по анимациям и их смешиванию(делал только crossfade анимаций :)), но, если у тебя в анимации "хотьба" все кости кроме ног находятся в bind pose, то во время анимации скелета все что в bind-pose будет давать матрицу идентичности(boneTM*invBindPose) и влиять на скелет просто не будет.

#13
12:54, 24 дек. 2010

ENgine
> Ок, в теории это действительно так, а на практике
Какая теория, ето практика. С айдлом смешивать стрельбу действительно странно, так как ето не айдл вообще, ето стрельба - на месте, если вся анимация играется. Ноги шире, поза более напряженная, спина, етц. Какой ето айлд, зачем с ним смешивать....
Но может ето просто пример неправильнъй - вот анимации лица и прочее, они всегда только для куска скелета. Их можно действительно специально проселектить, прямо из комбо бокса въбрать маску нужную - их ведь мало в принципе, штук 5-6.

ENgine
> То есть, от указания какая именно группа костей активная в данном клипе никуда
> не деться, и никакими масками, никакими префиксами, никакими дополнительными
> файлами, которые якобы один раз делаются не спастись
Ну, вот написал сверху - создаем масочки один раз и все. Потом для каждой анимации можно въбрать или цельнъй скелет или масочку.

XProger
> В начале каждой анимации ставятся кейфреймы для нужных костей в первой позе,
> там же ставится тэг с именем анимации.
Ето неубодно, создает баги так как в каждой анимации надо отдельно скелет дефинировать, да еще и имя писать руками. Для художников очень подходящи листбоксъ с уже готовъми именами и дефинированнъми скелетами.
Конечно тоже вариант, но имхо не лучший.

Кукурузо!
> и влиять на скелет просто не будет.
Как не будет, они же все блендится будут.

#14
13:07, 24 дек. 2010

Z
> Как не будет, они же все блендится будут.
Мм.. да, действительно..
Тогда мне не понятно, зачем вобщем такое блендить?
И какие масочки, если есть анимация стрельбы, то там будут задействованы и кости ног, и рук, и спины О_о

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.