Сетка столкновений
Эта страница нуждается в переводе.
Данная страница содержит информацию, которая частично либо некорректно переведена, или здесь вообще нет перевода.
Если по какой-либо причине эта страница не может быть переведена или остаётся непереведенной в течение длительного периода времени после публикации данного уведомления, следует запросить удаление страницы.
Кроме того, убедитесь, что статья соотвествует рекомендациям
руководства об альтернативных языках.
Дополнительно, воспользуйтесь русским словарём переводчика.
Сетка столкновений - простая 3D-модель, использующая физические взаимодействия . Иногда её называют моделью столкновений. После того, как объект C++ будет загружен в движок, создаётся модель, вершины которой привязываются к сетке.
Сетка столкновений невидима, и должна быть сильно проще видимых компонентов модели (см. две картинки справа). Недостаток точности незаметен, кроме того, что он не приводит симуляцию в ступор.
Содержание
Пояснения
- Сетки столкновений состоят только из выпуклых элементов
- Любые вогнутые элементы будут преобразованы в выпуклые с помощью метода "термоусадочной упаковки".
- Чтобы создать вогнутую сетку, соберите отдельные выпуклые объекты, пересекающие друг друга (если необходимо), и скомпилируйте с помощью
$concave
. Каждая выпуклая часть бережно относится к ресурсам симуляции. - Все элементы столкновений должны быть изолированы
- Там вообще может не быть никаких отверстий. Это условие вычисляется путём изучения нормалей вершин , поэтому все края должны быть гладкими. Если studiomdl говорит: "Model has 2-dimensional geometry" (модель имеет 2-х мерную геометрию) - вы сделали ошибку (или должны слегка уплотнить сетку).
- Все элементы столкновений должны быть полностью гладкими и иметь одну и ту же текстуру
- Source использует нормали вершин сетки, чтобы определить, является ли сетка изолированным элемент. Если модель имеет более одной текстуры, это также приведёт к ошибке "Model has 2-dimensional geometry".
- Если вы создаёте модель столкновения для рэгдолла или любой модели с костями, то каждая часть должна быть полностью взвешена до одной кости.
- Части столкновения должны иметь вес "1" только для одной кости. Если часть имеет вес сразу для нескольких костей, то при компиляции возникнет ошибка.
Сглаживание
Этот раздел расскажет о том, как создать сглаженную сетку столкновений в различных программах моделирования. Помните, что ни в одной выпуклой форме не должно быть отверстий.
Blender
- В Object Mode, запустите оператор "Shade Smooth" на вашей сетке.
- Удалите модификатор Edge Split, если ранее вы добавили его.
Maya
- Воспользуйтесь командой Combine, чтобы объединить все части в одну редактируемую сетку.
- НЕ добавляйте края или слитые вершины после использования команды Combine.
- Установите режим выбора на Edges, затем выберите все грани у вашей сетки столкновений, далее, щёлкните по меню Normals и Soften Edge.
- Настройте основную карту UVW, например, Automatic unwrap.
XSI
- Выделите каждую из частей сетки столкновений, и примените Model -> Create -> Polymesh -> Merge, чтобы объединить их в один объект.
- Вызовите Render -> Get-> Property-> Geometry Approximation. Во вкладке Polygon Mesh снимите галочку Discontinuity: Automatic. У модели исчезнут все жёсткие рёбра.
- Нанесите текстуру и проекцию сетки столкновений.
3DS Max
- Use the Attach function to combine every part into a single editable mesh. (optional)
- Do NOT weld vertices together after using the Attach function. All objects within the mesh should be individually selectable using the "Select Element" option within the Edit Mesh modifier.
- Select every element (in the mesh) individually and set them all to a different smoothing groups. If you work on a very complex model that requires more than 32 smoothing groups, you can create "additional smoothing groups" by combining them. For instance, an element set to smoothing groups 1 and 3 will be properly differentiated from elements set to smoothing groups 1 or 3.
- Apply your model's material to the collision mesh with at least a basic UWV map.
SketchUp
- Build a collision mesh out of one or more groups of faces. Each group must form a solid convex shape.
- Smooth each edge in the group by selecting all the faces inside and then right clicking and selecting "Smooth/Unsmooth edges". Set the slider to the 180 degrees to smooth all edges.
- Apply the same material to each face of the collision model. Note you must apply the material to each face, not the group as a whole.
- Combine multiple groups of faces into a single component.
- Set the axis of the component to the same as your reference model.
Lightwave
- Постройте сетку столкновений из примитивных фигур, таких как кубы и цилиндры. Как отмечалось выше, убедитесь, что каждая примитивная фигура полностью сплошная и представляет собой отдельный объект.
- Нажмите Q чтобы добавить сетку на новую поверхность и назовите её.
- В Surface Editor (F5) выберите новую поверхность и установите флажок на сглаживание. Установите порог сглаживания на 180.
Cinema 4D
- Build a collision mesh out of primitives. Each group must form a solid convex shape.
- Create a new Connect Object and drag every primitive into it.
- Remove all tags from the primitives (Phong, Textures..) except the UVW tag.
- Apply your model's material to the Connect Object and export as SMD.
См. также
- Физика и рэгдоллы
- $collisionmodel - QC-команда для сетки коллижена без каких-либо подвижных частей
- $collisionjoints - команда для коллижен-мешей с наличием подвижных частей