Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Добавить масштабирование в сталкерский формат анимации и моделей
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Trollz0r
Насколько тяжко?

Marafonec
Не совсем понятна сама тема. В каком смысле добавить масштабирование? Если просто сделать модели и анимации больше\меньше, то со скриптами ДенСташа на макс это вообще никаких проблем не вызывает.
Или имеется в виду что-то другое?
iOrange
Вообще такое не приветствуется. Особенно в скелетке, вносит ряд проблем - после скейла трансформации уже будут совсем другие.
Если вы хотите, например, растягивать руку при анимации - просто раздвигайте кости, добавьте их чуть больше в руку и двигайте - вершины потянутся за ними.
Cossack-HD
Цитата(iOrange @ 26.02.2019, 19:42) *
Вообще такое не приветствуется. Особенно в скелетке, вносит ряд проблем - после скейла трансформации уже будут совсем другие.
Если вы хотите, например, растягивать руку при анимации - просто раздвигайте кости, добавьте их чуть больше в руку и двигайте - вершины потянутся за ними.

Что мешает делать апскейл (перемножение координат на фактор) когда модель уже просчитана и готова к отрисовке? С аттачами будут проблемы?) Хотя я туда ни разу не смотрел, может быть там сжатый пайплайн, придётся всё перепиливать.
Потом дальше приколы - скэйлить партиклы, звуки biggrin.gif
Trollz0r
iOrange, да, именно в скелетке. В сталкире тащемта для манипуляций ингейм доступна только она smile.gif Масштабирование бывает нужно очень редко, но если оно понадобится - то без него никак. Вот пример, который я не могу решить обходными путями: анимировать катушечный магнитофон. Крутим бобины простым циклом, на открытый участок пленки кидаем секвенцию изображений (типа блеск), кнопки-крутилки тоже анимируются стандартным образом. Но вот загвоздка: со временем пленка должна перематываться с одной бобины на другую, т.е. скейлиться, скажем, по XZ осям. На одной катушке плёнки становится больше, на другой меньше. Вот и как это решить без масштабирования? Лепить монструозный скелет-солнышко для каждой бобины - это как-то... нерационально. Конечно, переписывать движок ради одной модели - это ещё нерациональнее, но и вопрос пока задан только из академического интереса. Может, есть какой-то другой способ?
macron
Цитата(Люпус Эст @ 26.02.2019, 19:03) *
Но вот загвоздка: со временем пленка должна перематываться с одной бобины на другую, т.е. скейлиться, скажем, по XZ осям. На одной катушке плёнки становится больше, на другой меньше.

В 2D-проекции я бы это представил в виде анимированной seq-текстуры. Возможно, для 3D в виде комбинаций нескольких таких текстур...
iOrange
Цитата(Cossack-HD @ 26.02.2019, 17:29) *
Что мешает делать апскейл (перемножение координат на фактор) когда модель уже просчитана и готова к отрисовке?

Не совсем понял о чем вы - то что вы описали - это просто per-mesh scale, зачем оно тогда в скелетке?

В скелетке мы иерархически обновляем трансформации, а значит если какая-то кость получит скейл - его автоматом получат и "дочерние" кости. Это whole of a mess, который проще решить путем запрета )) Что, собственно, и делают все игры )
v2v3v4
Как угодно



T-braze
Цитата(Люпус Эст @ 26.02.2019, 19:03) *
Но вот загвоздка: со временем пленка должна перематываться с одной бобины на другую, т.е. скейлиться, скажем, по XZ осям. На одной катушке плёнки становится больше, на другой меньше. Вот и как это решить без масштабирования? Лепить монструозный скелет-солнышко для каждой бобины - это как-то... нерационально. Конечно, переписывать движок ради одной модели - это ещё нерациональнее, но и вопрос пока задан только из академического интереса. Может, есть какой-то другой способ?

Без масштабирования, скорее всего, только "солнышком". К основной кости бобины парентятся четыре (или больше) кости, которые будут привязаны к вертексам краев намотанной пленки. Эти кости будут просто отдаляться и приближаться к основной.

Имхо уж лучше для одной модели так заморочиться, чем заморачивать программистов внедрением новых фич smile.gif
abramcumner
И c масштабированием и с костями неестественно же будет - слои смотанной ленты будут сжиматься или расширяться. А они тут спереди, хорошо видны.
Надо еще шейдер запилить по идее, который будет развертку двигать.
Neyl
Цитата(abramcumner @ 28.02.2019, 16:08) *
И c масштабированием и с костями неестественно же будет - слои смотанной ленты будут сжиматься или расширяться. А они тут спереди, хорошо видны.
Надо еще шейдер запилить по идее, который будет развертку двигать.

Как раз хотел предложить вариант с шейдером, в нем можно сразу и вертексы скейлить, и движение пленки в лентопротяжном механизме анимировать. В анриле относительно просто делается, но в xray, подозреваю, это боль.
Цитата(Люпус Эст @ 26.02.2019, 19:03) *
Крутим бобины простым циклом

А еще скорость вращения катушек должна изменяться в зависимости от количества(радиуса) пленки на ней biggrin.gif
abramcumner
Цитата
в нем можно сразу и вертексы скейлить

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

Цитата(Neyl @ 28.02.2019, 20:55) *
В анриле относительно просто делается,

Было бы интересно посмотреть. Может действительно даже готовый пример есть?

Цитата
но в xray, подозреваю, это боль.

Ну не то, чтобы боль. Просто не делал никто smile.gif
Neyl
Цитата(abramcumner @ 28.02.2019, 21:09) *
Было бы интересно посмотреть. Может действительно даже готовый пример есть?

Готовых примеров именно с магнитной лентой не встречал, но самому интересно стало попробовать, набросал свой biggrin.gif
https://streamable.com/lyybg

https://blueprintue.com/blueprint/0-sqfmly/
Zagolski
Цитата(v2v3v4 @ 28.02.2019, 14:33) *
Как угодно

Поделись секретом.
v2v3v4
Цитата(Zagolski @ 03.03.2019, 14:35) *
Цитата(v2v3v4 @ 28.02.2019, 14:33) *
Как угодно

Поделись секретом.

а с движком как у тебя?
Zagolski
Да просто вкратце опиши, что и где копать, остальное само дойдет.
abramcumner
Цитата(Zagolski @ 06.03.2019, 18:54) *
Да просто вкратце опиши, что и где копать, остальное само дойдет.

По идее меняешь scale в CBoneData::bind_transform.
iOrange
Цитата(abramcumner @ 06.03.2019, 20:32) *
По идее меняешь scale в CBoneData::bind_transform.

И получаешь сломанную анимацию.
Ребята, почитайте как работает иерархическая скелетная анимация.
abramcumner
Цитата(iOrange @ 08.03.2019, 22:29) *
И получаешь сломанную анимацию.
Ребята, почитайте как работает иерархическая скелетная анимация.

А как же скрины? Там с анимацией все норм.
iOrange
Цитата(abramcumner @ 08.03.2019, 21:33) *
А как же скрины?

Простите, я вне контекста - о каких скринах речь?
iOrange


Это больше похоже на скейл после анимации.
Хотя ...... Может я может я неправильно понял abramcumner. Ведь по сути домножение на бинд - оно ж после обновления иерархии.. yes1.gif
Так что да, скорее всего abramcumner прав а я поспешил ответить.

Пардоне shuffle.gif
atanda
А какова практическая польза от маштабирования? Я пока вижу только возможность делать забавные формы.
Zagolski
Ну вот нужно скалировать к примеру худ рук и оружие. Представь, если у тебя 300-400 моделей стволов/ обвесов и их все нужно уменьшить. Вручную муторно, а так может и выйдет на автомате все сделать. Правда, еще неясно, что будет с шейпами и вообще с координатами.
v2v3v4
Цитата(iOrange @ 09.03.2019, 00:29) *
Цитата(abramcumner @ 06.03.2019, 20:32) *
По идее меняешь scale в CBoneData::bind_transform.

И получаешь сломанную анимацию.
Ребята, почитайте как работает иерархическая скелетная анимация.

Если растягивать матрицу то о какой сломанной анимации может идти речь?

++
Fmatrix m;
m.scale(scale);
B->mTransform.mulB_43(m);

B - bone instance
scale - vec3
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.