xrSDK:Line 72

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R., TES V
Перейти к: навигация, поиск
Expression    : assertion failed
Function      : I:\xray-svn\editors\ECore\Editor\ExportSkeleton.cpp
File          : I:\xray-svn\editors\ECore\Editor\ExportSkeleton.cpp
Line          : 72
Description   : P<u16(-1)

Ошибка[1]

Вылет происходит в Actor Editor, при попытке экспорта *.object модели в формат *.ogf

По-простому, причина — превышение лимита полигонажа модели. Например, свыше 65 000.

Если подробно, то слишком большое число ВЕРШИН в модели, которую нужно экспортировать. Каждый OGF Child (элемент меша с одной текстурой) в модели, может иметь не более 65 000 вершин, в противном случае, двух байтов просто не хватит для индексации всех вершин.

Статистику по Child'ам можно увидеть в логе SDK. Вот пример строки:

- Split 0: [Bones: 52, Links: 4, Faces: 84003, Verts: 70827, BrPart: 0, Shader/Texture: 'default'/'mtl\mtl_rja_01']

В данном случае, в элемент модели попытались запихнуть более 70 000 вершин при ограничении в 65 000.

Решение[2]

Уменьшите количество полигонов в модели или вынесите часть элементов модели в отдельную текстуру, чтобы число вершин для каждого элемента после экспорта не превышало 65 000 (следует заметить, что SDK может в процессе экспорта создавать больше вершин, чем отображается в редакторе, поэтому лучше уменьшать с запасом).

ВАЖНО! Необходимо именно ФИЗИЧЕСКИ создать еще одну *.dds текстуру с другим именем (пусть даже и такую же по содержанию) и назначить её части модели!

Если в SDK назначить двум или более элементам из Surfaces, текстуру с одним и тем же путем к файлу, то в процессе экспорта эти меши будут "сшиты" в один!

Источники