Когда гнутся секции гуслей

Вся суть проблемы в одном скриншоте вьюпорта — смотрим:

1.jpg

Не понятно? :) Я поясню.

Итак, друзья, в этой статье я бы хотел поговорить о проблеме, с которой сталкивался, наверное, каждый, кто начинал моделить танковые гусли. Стандартный алгоритм действий: создаем один сегмент гусениц, размножаем модификатором array, пускаем по кривой с помощью модификатора curve и…. видим, что изгиб происходит не только в рамках набора сегментов, размноженных модификатором array, но и в рамках каждого отдельно взятого сегмента.

*для наглядности я буду рассматривать проблему и ее решение на примере примитивной геометрии
**данное решение — одно из многих и относится, пожалуй, к созданию моделей для статики или простой анимации, не для игровых движков; для портфеля - в
самый раз :)

Суть проблемы

Давайте проблему воспроизводить.

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

2.jpg

2. Добавляем модификатор array, создавая «полноценную» гусеницу — пока все идет хорошо.

3.jpg

3. Создаем кривую и придаем ей форму, по которой мы хотим пустить нашу гусеницу.

4.jpg

4. Добавляем на нашу гуслю модификатор curve и указываем созданную кривую в качестве маршрута, по которому гусеница должна идти (поле curve object).

5.jpg

5. Проблема уже видна, но для порядка давайте повернем гусеницу на 90 градусов — R → X —> 90.

6.jpg

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

7.jpg

Решение

Как будем решать нашу проблему? Расскажу об одном простом варианте, который потребует минимальное количество времени при весьма адекватном результате.

1. Убираем с сегмента гусли все модификаторы - им мы найдем применение в другом месте.

8.jpg

2. Создаем плоскость, простую, в один полигон, как и происходит по умолчанию - из нее мы сделаем основу наших гусениц (сегмент я пока спрятал, чтоб было видно главное на данном этапе).

9.jpg

3. Добавляем на плоскость модификатор array — что ж за гусли из одного сегмента?

10.jpg

4. А теперь и модификатор curve, как мы и делали ранее (я подобрал количество сегментов, чтобы гусля замкнулась; если на стыке, при замыкании, плоскости идут внахлест и не получается сделать аккуратный зазор, размер исходной плоскости можно уменьшить/увеличить, чтобы добиться качественного результата).

11.jpg

5. Вращаем плоскость на 90 градусов — та же история, что была у нас в примере с гуслями из готового сегмента выше.

12.jpg

6. Возвращаю обратно спрятанный сегмент.

13.jpg

7. Для сегмента делаю плоскость, которую мы пустили по кривой, родителем (Ctrl+P → object).

14.jpg

8. Выделяю нашу плоскость, иду во вкладку "Настройки объекта", подменю Instancing.

15.jpg

9. Выбираем пункт Faces — теперь к каждой плоскости, созданной модификаторами, присваивается по сегменту наших гуслей…. правда, пока не так, как нам хотелось бы.

16.jpg

Давайте исправлять.

10. Убедитесь, что пивоты плоскости и сегмента гуслей находятся в одном месте.

11. Убедитесь, что углы поворота и скейлы плоскости и сегмента сброшены на 0 (apply scale/rotation); в моем случае, плоскость-то я вращал, поэтому там не все гладко.

17.jpg

12. Обнулил - результат на скриншоте.

18.jpg

13. Сейчас у меня гусеницы вывернуты наружу — достаточно выделить плоскость и повернуть на 180 градусов по оси X (ну, в моем случае, так уж я геометрию строил).

19.jpg

Ну, что, геометрия гуслей больше не гнется. но стыкуется как-то не очень.

20.jpg

14. Давайте я пока отключу для нашей плоскости instancing и модификаторы — таким образом решить проблему будет проще.

21.jpg

15. Сместим сегмент гусли влево, чтобы она равномерно выпирала за пределы плоскости с обеих сторон — выпирающие части как раз и нужны для "вилкообразного" стыка сегментов.

22.jpg

16. Вернем пивот сегмента к 3д курсору (в этом же месте у нас и пивот плоскости находится, кстати) — правый клик, кто не помнит.

23.jpg

17. Возвращаем модификаторы на плоскость и включаем обратно instancing по фейсам.

24.jpg

18. И последнее, что я бы сделал — для плоскости в разделе instancing убрал бы галки с viewport и render, чтобы плоскость не накладывалась поверх сегментов гуслей, а стала бы невидимой.

25.jpg

Наш финальный результат:

26.jpg

У меня все :)

P.S. Для анимации гуслей анимировать нужно будет плоскости, а не сегменты гусениц — сегменты за ними последуют, поверьте :)


791 0 850 11
7
2022-03-16
Способ хорош, обязательно попробую, но о каких гуслях речь? Гусеница состоит из траков. Прочитал статью с интересом, но использование слова "гусли" сбивает с толку. Не хотел "вставить шпильку", уж извините, если что.
2022-03-16
Николай СтащенкоСпособ хорош, обязательно попробую, но о каких гуслях речь? Гусеница состоит из траков. Прочитал статью с интересом, но использование слова "гусли" сбивает с толку. Не хотел "вставить шпильку", уж извините, если что.

гусли-гусеницы в простонародье, или у танкистов (wot)
2022-03-17
Гусли -это полный Кек
Чем то древне русским пахнет.

Типа такого :D

Гу́сеничная ле́нта, «гу́сеница» -это замкнутая сплошная лента или цепь из шарнирно-соединённых звеньев (траков)
так что или Звено или Трак - это корректно.
2022-03-17
Ярослав ГолубевГусли -это полный Кек
Чем то древне русским пахнет.
Гусли - это славянский народный инструмент, очень древний, существует до сих пор. Кстати, надо замоделить, вот только прокрастинацию (лень лютую) победю)))))
TheLastSpartanгусли-гусеницы в простонародье, или у танкистов (wot)

Ясно) В WoT не играю, а служил танкистом)) На моём танке (Т-62) один из агрегатов называется гитара)) Удачи в Вашем деле. Мне эта статья очень кстати пришлась, автору спасибо.
2022-03-17
Старо как мир) Но способ полезный. А в блендере пожалуй что и единственный...
2022-03-21
Юрий Штайн (Nortstein)Старо как мир) Но способ полезный. А в есть вариант сделать костями и накинуть констрейн на каждую что бы смотрела на предыдущую. Это самый корректный способ и вместе с тем самый геморный. Сколько ен делал анимаций под рендер всегда становилось лень его делать.
2022-03-21
Респект за подачу материала. Я уже думал, что текст+картинки это вымерший жанр, и всё, что нам осталось - смотреть видосики с гундосиками :)
RENDER.RU