Render.ru

Правильно сжать меш с боков к центру.

Anatol Faru (tonline_kms65)

Активный участник
Рейтинг
8
#1
Всем здравствуйте. У меня вопрос по анимации в 3ds max.
Костная анимация, состоящая из основной кости(bone) и 2 helper(Dummy).
К этой конструкции из костей заскинен меш, в виде монитора:
монитор.jpg
Центральная кость(bone)в анимации не учавствует(меш к этой кости не привязан никак), она нужна для движка игры, к ней прилинкованы хелперы, т.е. меш монитор привязан только к хелперам.
Мне нужно сложить этот меш (монитор), как бы, сжать его к центру с боков. Пример я показываю на гифке(вид сверху):
anim.gif
Ошибка в том, что при сжимании происходит "выпячивание" середины меша(зелёная линия) относительно нужной мне линии(красная).
Мне нужно что бы сжимание зелёной линии шло строго по красной линии.
Как можно это исправить?
 
Последнее редактирование:

ProcXel.A

Мастер
Рейтинг
146
#2
Выпячивание происходит из-за того, что сетка привязана к хелперам, а хелперы в анимации двигаются по оси У. Либо сжимай хелперы по оси У до нуля в конце анимации. Либо добавь кость на каждое вертикальное ребро сетки этого экрана, и затем двигай все эти кости по красной линии.
 

Anatol Faru (tonline_kms65)

Активный участник
Рейтинг
8
#3
Либо добавь кость на каждое вертикальное ребро сетки этого экрана, и затем двигай все эти кости по красной линии.
Я так и сделал - этот вариант, в самом конце, всё равно корежит меш, хоть и немного но в игре заметно.

Выпячивание происходит из-за того, что сетка привязана к хелперам, а хелперы в анимации двигаются по оси У. Либо сжимай хелперы по оси У до нуля в конце анимации.
Не понял, как сжимать? Scale? Анимация костная - в максе будет изменять размер, а в игре навряд ли.
 
Последнее редактирование:

ProcXel.A

Мастер
Рейтинг
146
#4
Не, у тебя всего две кости по краям. Когда эти кости двигаются по кривой, то в глобальных координатах смещаются по оси У. Так как сетка привязана к этим костям, то и она смещается по оси У вслед за костями. Из-за этого и получается эта самая выпуклость.

Можно каждое вертикальное ребро мэша привязать к отдельной кости и двигать эти кости по кривой.

sdsdsd.gif


А можно эти твоим двум костям задать в начале анимаци scaleY = 1, а в конце анимации scaleY = 0. И тогда эта выпуклость будет сжиматься во время анимации. Все нормальные игровые движки должны поддерживать scale костей без проблем.
 
Последнее редактирование:

Anatol Faru (tonline_kms65)

Активный участник
Рейтинг
8
#5
Scale точно не поддерживает, приходится на каждый вертекс привязывать кость.
Я вот так же и делаю, у меня вертикальных ребер с каждой стороны по 5(итого ребер 10), соответственно 10 костей. Каждое вертикальное ребро(у меня в ребре 6 вертексов) привязанно к своей кости, веса вроде правильно, может быть что то не то с весами, по таблице смотрю - всё отлично, но по факту что то не то.
При полном складывании, некоторые вертексы, пусть и чуть-чуть, но вылезают и тянут за собой треугольники. В игре это заметно. Если смотреть прямо - всё хорошо, но если сбоку - эти обломки заметно, короче не складывается в линию.
Вот в чём проблема.
 

ProcXel.A

Мастер
Рейтинг
146
#6
Что за движок такой, что скейл костей не поддерживает? :)

Если все веса точно настроены и все кости точно заанимированы, то ничего не должно вылезать. (При условии, что запечённая анимация не прошла через какие-нибудь алгоритмы очистки от "лишних" ключей, из-за чего позиции костей могут посъехать.) В 3ДМаксе вертексы вылезают? Или только в игре?
 
Последнее редактирование:

Anatol Faru (tonline_kms65)

Активный участник
Рейтинг
8
#7
В максе конечно вылезают, но не так заметно как в игре.
Движек Source Engin.
Если менять размер кости(bone), то в игре модель не меняется, это точно.
А вот насчет dummy - я как то делал тестовую модельку, простой шар и эта модель увеличивалась, но это было давно, модель давно потеряна, так бы её декомпилить и можно было бы посмотреть. Но я думаю делал так же, к каждому вертексу по dummy, увеличивал за счёт разлета костей.
 

ProcXel.A

Мастер
Рейтинг
146
#8
Последнее редактирование:
Сверху