Перейти к содержимому
Софт и программы аналитика · 17 сентября 2026

Ткань проваливается сквозь объект в Blender: полный разбор

автор web3D.pro чтение 7 мин обновлено 27 сентября 2026 Telegram X
Ткань проваливается сквозь объект в Blender: полный разбор

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

Дальше по порядку, от самых частых причин к редким, с конкретными значениями параметров. Отдельно разберём случай, когда всё настроено правильно, а ткань всё равно проваливается.

Ткань, провалившаяся сквозь тело персонажа. Ткань проваливается сквозь объект в Blender: полный разбор

Как Blender вообще считает столкновения

Понимание механики экономит половину времени отладки.

Симуляция считается по кадрам. На каждом кадре движок смотрит, где были вершины ткани, где они оказались, и не пересекли ли по пути поверхность объекта-препятствия.

Ключевое слово здесь «по пути». Движок проверяет не непрерывное движение, а дискретные положения. Если между двумя кадрами вершина успела перескочить через препятствие целиком, столкновения просто не произойдёт: с точки зрения расчёта, ткань была снаружи и осталась снаружи, просто с другой стороны.

Отсюда следует главное: почти все случаи проваливания это не ошибка настройки ткани, а нехватка точности расчёта на быстром движении.

Причина первая: у объекта нет модификатора Collision

Самая частая и самая обидная. Ткань не проходит сквозь объекты сама по себе: препятствие должно быть явно объявлено препятствием.

Проверьте, что на объекте, сквозь который проваливается ткань, стоит модификатор Collision в физике. Не на ткани, а именно на препятствии.

Частный случай: персонаж собран из нескольких объектов, а Collision повесили только на тело. Руки, голова и одежда остаются проницаемыми.

Причина вторая: слишком малая дистанция столкновения

Параметр Distance в настройках Collision задаёт, на каком расстоянии от поверхности ткань начинает отталкиваться.

Значение по умолчанию рассчитано на объекты обычного размера. Если ваша сцена мельче, отступ оказывается больше самой ткани, и она отлетает, не касаясь. Если крупнее, отступ слишком мал, и ткань успевает проскочить.

Рабочий ориентир: Distance примерно равен толщине ткани и составляет от одной сотой до трёх сотых от характерного размера объекта.

Есть парный параметр в настройках самой ткани, Object Collision Distance. Он работает вместе с первым, и увеличивать имеет смысл оба.

Причина третья: мало шагов расчёта

Quality Steps в настройках ткани определяет, сколько промежуточных расчётов делается внутри одного кадра.

Значение по умолчанию подходит для спокойного движения. Для быстрого персонажа, падающей ткани или развевающегося флага его нужно поднимать.

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

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

Плата очевидна: время расчёта растёт примерно линейно. Поэтому поднимать надо ровно до момента, когда проблема исчезла, а не на максимум сразу.

Причина четвёртая: масштаб сцены

Самая коварная причина, потому что внешне всё выглядит правильно.

Физика в Blender настроена на объекты в реальном масштабе, где один юнит это один метр. Если ваш персонаж имеет высоту в двести юнитов, для движка это двухсотметровый великан, и ткань на нём ведёт себя как гигантский брезент: медленно, вяло, с огромной инерцией.

Если наоборот, персонаж размером в 0,2 единицы, ткань становится микроскопической и дёргается.

Что проверить: размеры объекта в панели свойств и, главное, значения масштаба. Масштаб должен быть равен единице по всем осям. Если там числа вроде 0,001, примените масштаб.

После применения масштаба симуляцию нужно перезапустить с очисткой кэша, иначе результат останется старым.

Причина пятая: слишком редкая сетка ткани

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

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

Решение: добавить подразделений ткани. Практический ориентир для одежды на персонаже это расстояние между вершинами около 1 см в реальном масштабе.

Важный нюанс: модификатор Subdivision Surface, стоящий после Cloth, на расчёт не влияет, он только сглаживает результат. Плотность для симуляции задаётся до модификатора ткани.

Ткань, провалившаяся сквозь тело персонажа. Ткань проваливается сквозь объект в Blender: полный разбор

Причина шестая: препятствие тоже деформируется

Если персонаж анимирован скелетом, порядок модификаторов на нём имеет значение.

Модификатор Collision должен стоять после Armature. Иначе движок считает столкновения по недеформированной позе, и ткань взаимодействует с персонажем в позе покоя, а не в текущей.

Симптом характерный: ткань проваливается именно там, где персонаж сильнее всего отклонился от исходной позы.

Причина седьмая: ткань пересекает сама себя

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

Включите Self Collisions в настройках ткани и задайте дистанцию примерно вдвое меньше дистанции столкновения с объектами.

Это заметно замедляет расчёт, поэтому включать стоит только когда ткани действительно много и она складывается сама на себя.

Причина восьмая: начальное положение внутри объекта

Если на первом кадре хотя бы часть ткани находится внутри препятствия, движок не сможет её вытолкнуть: он не знает, с какой стороны она должна быть.

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

Для одежды это означает: перед симуляцией отодвиньте её от тела, дайте упасть на место в первых кадрах, и только потом начинайте анимацию персонажа.

Порядок отладки

Если непонятно, что именно из перечисленного виновато, проверяйте в этом порядке. Он выстроен от самого дешёвого к самому дорогому по времени.

Первое: масштаб равен единице, модификатор Collision на месте и стоит после Armature.

Второе: очистить кэш симуляции. Половина необъяснимых случаев это старый кэш, посчитанный до ваших правок.

Третье: увеличить Quality Steps и Collision Quality вдвое.

Четвёртое: увеличить Distance в обоих местах.

Пятое: добавить плотности сетке ткани.

Шестое: включить Self Collisions.

И только после этого искать экзотику вроде некорректных нормалей на препятствии или вырожденных полигонов.

Ткань, провалившаяся сквозь тело персонажа. Ткань проваливается сквозь объект в Blender: полный разбор

Кэш: почему правки не применяются

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

Признак: вы меняете параметры, а картинка не меняется вообще никак.

Решение: сброс кэша в настройках физики, затем перемотка на первый кадр, затем проигрывание. Симуляция считается только при последовательном воспроизведении, прыжок на середину даёт неверный результат.

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

Когда ткань физически не может не провалиться

Есть случаи, где симуляция принципиально не справится, и надо менять подход.

Очень быстрое движение. Удар, рывок, выстрел. Никакое число шагов не спасёт, если за кадр объект проходит расстояние больше собственной толщины. Решение: замедлить анимацию для расчёта, посчитать, затем ускорить обратно.

Тонкое препятствие. Лист бумаги, лезвие, тонкая проволока. Утолщите препятствие для расчёта, даже если визуально оно останется тонким: используйте отдельный невидимый объект-прокси.

Острые углы. Ткань застревает и рвётся на них. Скруглите углы у прокси-объекта.

Общий приём для всех трёх случаев: считать физику не по видимой модели, а по упрощённому невидимому дублю. Это стандартная практика, и она же ускоряет расчёт в разы.

Когда проще взять другой инструмент

Симулятор ткани в Blender хорош для флагов, штор, скатертей и простой одежды. Для сложного костюма с выкройками, швами и слоями он неудобен: там нет понятия выкройки, и всё приходится собирать вручную.

Для этого есть специализированные программы, работающие по принципу реального пошива, и разбор такого подхода есть в материале про создание одежды для 3D-персонажей.

Общие принципы симуляции в Blender, включая твёрдые тела и жидкости, разобраны в отдельном материале про физику в Blender, а подготовка самого персонажа к анимации в гайде по анимации персонажа.

Частые вопросы

Почему ткань дрожит и вибрирует вместо того, чтобы лежать?

Обычно из-за слишком большой дистанции столкновения: ткань отталкивается, падает обратно, снова отталкивается. Уменьшите Distance или добавьте затухания в настройках ткани.

Ткань растягивается как резина?

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

Симуляция считается очень долго?

Основные пожиратели времени это Self Collisions, высокое число шагов и плотная сетка. Считайте на упрощённой сетке, а плотность добавляйте модификатором сглаживания после симуляции.

Можно ли зафиксировать часть ткани?

Да, через группу вершин и параметр Pin Group. Вершины в группе останутся на месте, остальные будут свободно падать. Так делают шторы, флаги и всё, что подвешено.

Как перенести результат симуляции в другую программу?

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

Если ткань проваливается, не трогайте настройки симуляции первым делом. Сначала проверьте масштаб сцены и толщину столкновения: в большинстве случаев дело именно в них.

© 2026 web3D.pro · все права защищены тема web3D Pro · made with html