Всем здравствуйте. У меня вопрос по анимации в 3ds max.
Костная анимация, состоящая из основной кости(bone) и 2 helper(Dummy).
К этой конструкции из костей заскинен меш, в виде монитора:
Центральная кость(bone)в анимации не учавствует(меш к этой кости не привязан никак), она нужна для движка игры, к ней прилинкованы хелперы, т.е. меш монитор привязан только к хелперам.
Мне нужно сложить этот меш (монитор), как бы, сжать его к центру с боков. Пример я показываю на гифке(вид сверху):
Ошибка в том, что при сжимании происходит "выпячивание" середины меша(зелёная линия) относительно нужной мне линии(красная).
Мне нужно что бы сжимание зелёной линии шло строго по красной линии.
Как можно это исправить?
Выпячивание происходит из-за того, что сетка привязана к хелперам, а хелперы в анимации двигаются по оси У. Либо сжимай хелперы по оси У до нуля в конце анимации. Либо добавь кость на каждое вертикальное ребро сетки этого экрана, и затем двигай все эти кости по красной линии.
ProcXel.A Либо добавь кость на каждое вертикальное ребро сетки этого экрана, и затем двигай все эти кости по красной линии.
Я так и сделал - этот вариант, в самом конце, всё равно корежит меш, хоть и немного но в игре заметно.
ProcXel.AВыпячивание происходит из-за того, что сетка привязана к хелперам, а хелперы в анимации двигаются по оси У. Либо сжимай хелперы по оси У до нуля в конце анимации.
Не понял, как сжимать? Scale? Анимация костная - в максе будет изменять размер, а в игре навряд ли.
Не, у тебя всего две кости по краям. Когда эти кости двигаются по кривой, то в глобальных координатах смещаются по оси У. Так как сетка привязана к этим костям, то и она смещается по оси У вслед за костями. Из-за этого и получается эта самая выпуклость.
Можно каждое вертикальное ребро мэша привязать к отдельной кости и двигать эти кости по кривой.
А можно эти твоим двум костям задать в начале анимаци scaleY = 1, а в конце анимации scaleY = 0. И тогда эта выпуклость будет сжиматься во время анимации. Все нормальные игровые движки должны поддерживать scale костей без проблем.
Scale точно не поддерживает, приходится на каждый вертекс привязывать кость.
Я вот так же и делаю, у меня вертикальных ребер с каждой стороны по 5(итого ребер 10), соответственно 10 костей. Каждое вертикальное ребро(у меня в ребре 6 вертексов) привязанно к своей кости, веса вроде правильно, может быть что то не то с весами, по таблице смотрю - всё отлично, но по факту что то не то.
При полном складывании, некоторые вертексы, пусть и чуть-чуть, но вылезают и тянут за собой треугольники. В игре это заметно. Если смотреть прямо - всё хорошо, но если сбоку - эти обломки заметно, короче не складывается в линию.
Вот в чём проблема.
Что за движок такой, что скейл костей не поддерживает? 🙂
Если все веса точно настроены и все кости точно заанимированы, то ничего не должно вылезать. (При условии, что запечённая анимация не прошла через какие-нибудь алгоритмы очистки от "лишних" ключей, из-за чего позиции костей могут посъехать.) В 3ДМаксе вертексы вылезают? Или только в игре?
В максе конечно вылезают, но не так заметно как в игре.
Движек Source Engin.
Если менять размер кости(bone), то в игре модель не меняется, это точно.
А вот насчет dummy - я как то делал тестовую модельку, простой шар и эта модель увеличивалась, но это было давно, модель давно потеряна, так бы её декомпилить и можно было бы посмотреть. Но я думаю делал так же, к каждому вертексу по dummy, увеличивал за счёт разлета костей.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Anatol Faru (tonline_kms65)
Костная анимация, состоящая из основной кости(bone) и 2 helper(Dummy).
К этой конструкции из костей заскинен меш, в виде монитора:
Центральная кость(bone)в анимации не учавствует(меш к этой кости не привязан никак), она нужна для движка игры, к ней прилинкованы хелперы, т.е. меш монитор привязан только к хелперам.
Мне нужно сложить этот меш (монитор), как бы, сжать его к центру с боков. Пример я показываю на гифке(вид сверху):
Ошибка в том, что при сжимании происходит "выпячивание" середины меша(зелёная линия) относительно нужной мне линии(красная).
Мне нужно что бы сжимание зелёной линии шло строго по красной линии.
Как можно это исправить?
ProcXel.A
Anatol Faru (tonline_kms65)
Не понял, как сжимать? Scale? Анимация костная - в максе будет изменять размер, а в игре навряд ли.
ProcXel.A
Можно каждое вертикальное ребро мэша привязать к отдельной кости и двигать эти кости по кривой.
А можно эти твоим двум костям задать в начале анимаци scaleY = 1, а в конце анимации scaleY = 0. И тогда эта выпуклость будет сжиматься во время анимации. Все нормальные игровые движки должны поддерживать scale костей без проблем.
Anatol Faru (tonline_kms65)
Я вот так же и делаю, у меня вертикальных ребер с каждой стороны по 5(итого ребер 10), соответственно 10 костей. Каждое вертикальное ребро(у меня в ребре 6 вертексов) привязанно к своей кости, веса вроде правильно, может быть что то не то с весами, по таблице смотрю - всё отлично, но по факту что то не то.
При полном складывании, некоторые вертексы, пусть и чуть-чуть, но вылезают и тянут за собой треугольники. В игре это заметно. Если смотреть прямо - всё хорошо, но если сбоку - эти обломки заметно, короче не складывается в линию.
Вот в чём проблема.
ProcXel.A
Если все веса точно настроены и все кости точно заанимированы, то ничего не должно вылезать. (При условии, что запечённая анимация не прошла через какие-нибудь алгоритмы очистки от "лишних" ключей, из-за чего позиции костей могут посъехать.) В 3ДМаксе вертексы вылезают? Или только в игре?
Anatol Faru (tonline_kms65)
Движек Source Engin.
Если менять размер кости(bone), то в игре модель не меняется, это точно.
А вот насчет dummy - я как то делал тестовую модельку, простой шар и эта модель увеличивалась, но это было давно, модель давно потеряна, так бы её декомпилить и можно было бы посмотреть. Но я думаю делал так же, к каждому вертексу по dummy, увеличивал за счёт разлета костей.
ProcXel.A
Да, в нем скейла, действительно, нет.