Как развернуть свиток с помощью Reaction Manager?
Всем привет!
В этом уроке я расскажу, как можно сделать разворачивающуюся поверхность. При выполнении одной работы мне понадобилось создать разворачивающийся свиток. Причём свиток должен был разворачиваться и сворачиваться многократно с различной скоростью. Конечно, можно сделать одно разворачивание, а потом в процессе компоуза менять направление и скорость. Но, вообще говоря, это не очень удобно. Поэтому мне нужно было предусмотреть возможность менять направление и скорость сворачивания прямо в 3DS Max. Я решил воспользоваться инструментом Reaction Manager, а скоростью и направлением управлять с помощью Slider-а. Способ, который я предлагаю, даёт возможность разворачивать объект не только на плоской поверхности, но и на волнистой. Если вас это заинтересовало – пора начинать.
Урок предназначен для тех, кто знает основы 3DS Max и хочет использовать в своих работах разворачивающиеся поверхности. Я использовал для написания 3ds Max 9.
Вот что мы хотим получить:
Запускаем 3ds MAX.
Разворачиваем окно Front.
Создаём Helix.
Высоту нужно обнулить, а остальные параметры по вашему желанию.
Для урока я выбрал такие значения.
Можете скачать полученный файл
Конвертируем Helix в Spline. (Правой кнопкой щелкаем по Helix)
Полученную кривую мы будем использовать как шаблон. Почему бы не использовать её саму? Есть 2 причины. Первая: вершины полученной кривой всегда ведут себя как Corner. Даже если вы сделаете их Smooth. Почему это происходит, я не знаю. Вторая: для ускорения работы большую часть вершин можно не использовать без ущерба для качества. В уроке будем использовать каждую 3-ю. Можно брать каждую 4-ю или даже 5-ю. Это очень ускоряет процесс.
Поэтому делаем так:
Делаем вершины конвертированного Helix видимыми.
Включаем привязку к вершинам
И начинаем создавать объект Line. Выбираем каждую третью вершину спирали.
(Вы можете выбирать каждую 4-ю, 5-ю или какую хочется. От этого будет зависеть качество конечной поверхности. Главное, чтобы распределены они были равномерно, т.е. пропускать нужно всегда постоянное количество вершин. Для нашего урока я выбрал каждую 3-ю вершину. Этого вполне достаточно).
Вершины полученной кривой превращаем в Smooth. Как видите теперь Line практически не отличается от Helix, (а вершин в 3 раза меньше).
Helix удаляем с экрана, больше он не понадобится.
Объект Line - это правая часть свитка. Теперь нужно добавить к ней центральную часть (которая уже развернута и лежит на поверхности). Добавляем ещё один сегмент.
Можете скачать полученный файл
Делаем вершины Line видимыми (см. выше).
Включаем привязку к вершинам (если выключили).
Начинаем создавать Bones (кости), привязываясь к вершинам Line.
Получается такая вот цепочка.
Создаём Slider
С помощью него будем управлять сворачиванием и разворачиванием. Я хочу, чтобы при перемещении движка Slider-а от 0 до 10 кость Bone02 ложилась горизонтально. При перемещении от 10 до 20 следующая кость ложилась горизонтально и т.д. И при достижении ограничителя последняя кость ложилась горизонтально.
Нужно правильно указать параметр Maximum. Всего костей 22. Первая и последняя нам не понадобятся. Умножаем на 10. Значит указываем параметр Slider-а Maximum = 200
Увеличиваем ширину Slider-а для удобства.
Скрываем Line.
Движок Slider-а перемещается с помощью инструмента Select and Manipulate.
Теперь нужно привязать перемещение Slider-а к вращению костей.
Ещё раз вспомним, что же мы хотим получить?
При перемещении Slider-а от 0 до 10 вторая кость должна лечь горизонтально,
при перемещении Slider-а от 10 до 20 третья кость должна лечь горизонтально и т.д.
Для создания такой связи используем Reaction Manager. Он позволяет привязывать параметр объекта-наследника к параметру объекта-родителя в заранее определённых пределах.
Добавляем главный объект Add Master.
Указываем параметр value объекта Slider.
Т.е. изменяя этот параметр будем управлять разворачиванием.
Теперь нужно указать подчинённые объекты – это Z Rotation всех костей.
В результате мы сможем управлять вращением всех костей по оси Z с помощью параметра value объекта Slider.
Теперь осталось создать state (состояния) для различных значений value.
Первое состояние (State) уже создано по умолчанию.
Посмотрите:
State01 при value = 0 каждая кость имеет свой угол поворота по Z.
Выбираем Create Mode, для того чтобы создавать различные State (состояния)
Выбираем инструмент Select and Rotate.
Обязательно выбираем родительскую координатную систему.
Можно поворачивать кость вручную, а можно вводить значения в окне Rotate Transform Type-In.
Открываем окно Rotate Transform Type-In (F12).
А теперь нужно сделать так:
1. Устанавливаем value = 10 (для объекта Slider)
2. Выбираем вторую кость (Bone02).
3. В окне Rotate Transform Type-In обнуляем вращение по Z . Кость ложится горизонтально
4. Нажимаем кнопку Create State. Создаётся новое State (состояние) для всех костей при value=10
Каждый раз увеличивая value на 10 повторяем пункты 1-4 для всех костей.
Поясняю: устанавливаем value=20; выбираем третью кость; обнуляем вращение по Z; нажимаем кнопку Create State, и так для каждой кости.
Обязательно выходим из режима Create Mode. Отжимаем кнопку
С помощью инструмента Select and Manipulate перемещаем движок Slider-а, тем самым изменяем значение параметра value. Он воздействует на положение костей и цепочка костей разворачивается и сворачивается. Что и требовалось!
Можете скачать полученный файл
Осталось перенести это движение на сплайн.
Выбираем объект Line.
Применяем модификатор Skin (для того, чтобы кости могли им управлять).
Указываем кости, которые будут управлять сплайном, т.е. все.
Т.к. вершины сплайна точно совпадают с костями, настройка не требуется.
В результате сплайн разворачивается и сворачивается
Скрываем (Hide) все кости
Применяем к сплайну модификатор Extrude.
Если нужна толщина, применяем модификатор Shell
Можете скачать полученный файл
Наш свиток должен разворачиваться в обе стороны. Поэтому применяем модификатор Symmetry.
Нужно только правильно разместить Gizmo модификатора.
Можете скачать полученный файл
Вот и требуемый результат. Если вам необходимо разворачивать свиток на волнистой поверхности нужно на стадии создания State (состояний) не обнулять вращение по Z, а поворачивать так, чтобы кость легла на поверхность. Так же, чтобы добиться более реалистичного результата, стоит применять этот способ вращения, т.к. в результате будет получено не абсолютно ровная поверхность. Она будет иметь небольшую кривизну и выглядеть более реалистично.
На этом урок окончен. Если какие-то шаги непонятны, загрузите готовые файлы и посмотрите, что должно получиться. Надеюсь, этот метод пригодится Вам в дальнейшем. Удачи!