Сетка столкновений
From Valve Developer Community
Сетка столкновений - простая 3D-модель, использующая физические взаимодействия. Иногда её называют моделью столкновений. После того, как объект C++ будет загружен в движок, создаётся модель, вершины которой привязываются к сетке.
Сетка столкновений невидима, и должна быть сильно проще видимых компонентов модели (см. две картинки справа). Недостаток точности незаметен, кроме того, что он не приводит симуляцию в ступор.
Contents
Пояснения
- Сетки столкновений состоят только из выпуклых элементов
- Чтобы создать вогнутую сетку, соберите отдельные выпуклые объекты, пересекающие друг друга (если необходимо), и скомпилируйте с помощью $concave. Каждая выпуклая часть бережно относится к ресурсам симуляции.
- Все элементы столкновений должны быть изолированы
- Там вообще может не быть никаких отверстий. Это условие вычисляется путём изучения нормалей вершин, поэтому все края должны быть гладкими. Если studiomdl говорит: "Model has 2-dimensional geometry" (модель имеет 2-х мерную геометрию) - вы сделали ошибку (или должны слегка уплотнить сетку).
Сглаживание
Этот раздел расскажет о том, как создать сглаженную сетку столкновений в различных программах моделирования. Помните, что ни в одной выпуклой форме не должно быть отверстий.
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
- Build a collision mesh out of primitives such as boxes and cylinders. As noted above, make sure each primitive is entirely solid and a separate object.
- Hit Q to add the mesh to a new surface, and give it a name.
- In the Surface Editor (F5), select the new surface, and check the smoothing checkbox. Give it a smoothing threshold of 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:ru - QC-команда для сетки коллижена без каких-либо подвижных частей
- $collisionjoints:ru - команда для коллижен-мешей с наличием подвижных частей