Габарит столкновений

From Valve Developer Community
< Ru
Jump to: navigation, search
English (en)Русский (ru)Translate (Translate)
Info content.png
This page needs to be translated.
This page either contains information that is only partially or incorrectly translated, or there isn't a translation yet.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article tries to comply with the alternate languages guide.
Статичная модель (красная сетка модели вокруг объекта)
Габарит столкновений с сочленениями нескольких частей (желтая сетка)

Габарит столкновений (Collision mesh) - простая(en) 3D-модель, использующая для физических взаимодействий(en). Иногда её называют моделью столкновений. После того, как объект C++ будет загружен в движок, создаётся модель(en), вершины которой привязываются к сетке.

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

Предостережения

Габариты столкновений состоят только из выпуклых(en) элементов
Любые вогнутые элементы будут преобразованы в выпуклые с помощью метода "термоусадочной упаковки".
Чтобы создать вогнутую сетку, соберите отдельные выпуклые объекты, пересекающие друг друга (если необходимо), и скомпилируйте с помощью $concave(en). Каждая выпуклая часть бережно относится к ресурсам симуляции.
Все части габарита столкновений должны быть изолированы
Там вообще может не быть никаких отверстий. Это условие вычисляется путём изучения нормалей вершин(en), поэтому все края должны быть гладкими. Если studiomdl говорит: "Model has 2-dimensional geometry" (модель имеет 2-х мерную геометрию) - вы сделали ошибку (или должны слегка уплотнить сетку).
Все части габарита столкновений должны быть полностью гладкими и иметь одну и ту же текстуру
Source использует нормали вершин сетки, чтобы определить, является ли сетка изолированным элемент. Если модель имеет более одной текстуры, это также приведёт к ошибке "Model has 2-dimensional geometry".
Если Вы создаёте габарит столкновений для куклы или любой модели с костями, то каждая часть должна быть полностью взвешена до одной кости.
Части габарита столкновений должны иметь вес "1" только для одной кости. Если часть имеет вес сразу для нескольких костей, то при компиляции возникнет ошибка.

Сглаживание

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

Blender Blender

  1. В (Icon) Object Mode, запустите оператор "Shade Smooth" на вашей сетке.
  2. Удалите модификатор (Icon) Edge Split, если ранее вы добавили его.

Maya Maya

  1. Воспользуйтесь командой Combine, чтобы объединить все части в одну редактируемую сетку.
  2. НЕ добавляйте края или слитые вершины после использования команды Combine.
  3. Установите режим выбора на Edges, затем выберите все грани у вашего габарита столкновений, далее, щёлкните по меню Normals и Soften Edge.
  4. Настройте основную карту UVW, например, Automatic unwrap.

Softimage Mod Tool Softimage Mod Tool

Габарит столкновений, созданная в XSI 6.01. Для наглядности она сдвинута в сторону.
  1. Выделите каждую из частей габарита столкновений, и примените Model -> Create -> Polymesh -> Merge, чтобы объединить их в один объект.
  2. Вызовите Render -> Get-> Property-> Geometry Approximation. Во вкладке Polygon Mesh снимите галочку Discontinuity: Automatic. У модели исчезнут все жёсткие рёбра.
  3. Нанесите текстуру и проекцию габарита столкновений.

3DS Max 3DS Max

  1. Use the Attach function to combine every part into a single editable mesh. (optional)
  2. 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.
  3. 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.
  4. Apply your model's material to the collision mesh with at least a basic UWV map.

SketchUp

  1. Build a collision mesh out of one or more groups of faces. Each group must form a solid convex shape.
  2. 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.
  3. 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.
  4. Combine multiple groups of faces into a single component.
  5. Set the axis of the component to the same as your reference model.

Lightwave Lightwave

  1. Постройте габарит столкновений из примитивных фигур, таких как кубы и цилиндры. Как отмечалось выше, убедитесь, что каждая примитивная фигура полностью сплошная и представляет собой отдельный объект.
  2. Нажмите Q чтобы добавить сетку на новую поверхность и назовите её.
  3. В Surface Editor (F5) выберите новую поверхность и установите флажок на сглаживание. Установите порог сглаживания на 180.

Cinema 4D Cinema 4D

  1. Build a collision mesh out of primitives. Each group must form a solid convex shape.
  2. Create a new Connect Object and drag every primitive into it.
  3. Remove all tags from the primitives (Phong, Textures..) except the UVW tag.
  4. Apply your model's material to the Connect Object and export as SMD.

MilkShape 3D MilkShape 3D

  1. Build your collision mesh. Each group must form a solid convex shape.
  2. Clear all smoothing groups and assign all your meshes into smoothing group 1.
  3. Export your smd.

Creating Hulls in 3DS Max 3DS Max With Wall Worm

Wall Worm offers many ways to generate collision hulls if you are using 3ds Max. Below are a few methods. See the WW docs for complete information.

From a Reference Mesh

  1. Click Wall Worm > Wall Worm Model Tools > Hull Helper.
  2. Select the reference mesh.
  3. Click Prepare From Selection in Hull Helper.
  4. With the newly created mesh, selected parts that represent each hull and click the Detach button in Hull Helper.
  5. Repeat previous step until all parts are represented.
  6. Click the Create Hulls From Selection button.

From a WWMT Helper

Assuming that you want to make a hull from each element of each object of the model:

  1. Click Wall Worm > Wall Worm Model Tools > Wall Worm Model Tools.
  2. Click the Pick Model button and select the model or existing WWMT Helper in the viewport.
  3. In the Collision Model rollout, click the Quick Hull button.

Смотрите также