SDK:FS.h
Материал из MODFAQ.RU — моддинг классического S.T.A.L.K.E.R., TES и Fallout
Expression : assertion failed Function : i:\xray-svn\xrcore\FS.h File : i:\xray-svn\xrcore\FS.h Line : 265 Description : (Pos<=Size) && (Pos>=0)
Ошибка[1][2][3][4][5]
Существует множество заблуждений по поводу причин данного вылета:
- Неправильно распределены текстуры по папкам. Например, когда *.dds файл в папке textures/wpn, имеет имя начинающееся НЕ с префикса wpn_
- Превышен лимит *.thm файлов в папке SDK gamedata\textures
- У какой-то *.dds текстуры в папке SDK gamedata/textures отсутствует *.thm файл.
Например, если текстура была сохранена сразу из графического редактора в формат *.dds - У какого-то *.thm файла отсутствуют закрепленные за ним, детальные текстуры и бампы
- *.thm файл SDK 0.4 несовместим с SDK 0.7
- *.tga текстуры импортировались в SDK без выставления параметров, а конкретно не был выставлен материал и вес
- Какая-то текстура неправильного размера, а точнее в её *.thm файле указан один размер (например, 1024х1024), а она сама другого (например, 512х512).
Либо размер текстуры не кратен двойке (например, 438х256)
Проверено что:
- Переименование префиксов текстур не вызывает вылета. И по идее, не должно возникать проблем в принципе.
Префикс нужен SDK для распределения текстур по папкам при преобразовании их из *.tga в *.dds — просто для удобства - Если превышен лимит *.thm файлов, конкретно этот вылет
(Pos<=Size) && (Pos>=0)— не происходит. Но происходит другой - SDK стартует нормально, а вот компиляция уровня прерывается другим вылетом, как раз из-за отсутствия этих самых *.thm файлов
- Удаление детальных текстур или бампов не приводит к вылету
(Pos<=Size) && (Pos>=0)(или к любому другому вылету).
Т.к. SDK не отображает их при рендере сцены, а значит и отсутствие их для SDK — не является проблемой достойной упоминания даже в логе, не говоря уже о вылете - SDK 0.7 понимает формат *.thm файла SDK 0.4. 100% ли эта совместимость — сказать трудно. Нужна статистическая выборка.
А совместимость разных версий *.thm файлов на разных версиях движка проверяйте самостоятельно - Не существует сама возможность не задать эти параметры при импорте, т.к. они всегда по умолчанию выставлены.
И, да, они по умолчанию работают, не вызывая вылета - SDK не учитывает (компиляторы учитывают), совпадает ли размер *.dds текстуры и размер записанный в её *.thm файле
Подтверждённая причина вылета:
- Нарушена структура одного из *.thm файлов
Если в его бинарные поля были внесены правки (например, текстовым редактором) — вылет(Pos<=Size) && (Pos>=0)обеспечен
Если правки были внесены исключительно в текстовые поля — вылета может и не быть - Кроме того, *.thm файл имеют не только текстуры, но и модели в формате *.object
Вполне вероятно, что ошибка в структуре *.thm моделей, также приведет к вылету
Решение
К сожалению, в логе отсутствует какое-либо упоминание о имени текстуры или *.thm файла из-за которого произошёл вылет.
Действовать придется методом исключения, удаляя папку текстур за папкой, пока вылет не пропадёт. А затем и файл, за файлом.
Минимизируйте шанс возникновения вылета, а именно, всегда импортируйте текстуры через SDK:
- Конвертируйте текстуру в формат *.tga, и переместите в папку SDK editors/import
- Запустите Actor Editor
- Выполните Scene -> Images -> Image Editor
- Выберите из списка нужную текстуру, и нажмите кнопку Ok.
Видео[6][7]
Источники
- ↑ Пост пользователя "raf100" на AMK форуме
- ↑ Пост пользователя "DarkSatellite" на форуме AP Production
- ↑ Пост пользователя "GefoS" на AMK форуме
- ↑ Пост пользователя "denis2000" на форуме AP Production
- ↑ Пост пользователя "V92" на AMK форуме
- ↑ Канал пользователя "genior2011" на YouTube.com
- ↑ Канал пользователя "Grez" на YouTube.com