SDK:FS.h: различия между версиями

Материал из Моддинг трилогии S.T.A.L.K.E.R. - MODFAQ.RU | +TES/Fallout
Перейти к навигации Перейти к поиску
мНет описания правки
мНет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 8: Строка 8:
</pre>
</pre>


=== Ошибка<ref>[http://www.amk-team.ru/forum/faq/ Тема "Справочник вылетов по X-Ray SDK" на форуме AP Production]</ref> ===
=== Ошибка<ref>[https://www.amk-team.ru/forum/topic/1560-soc-voprosy-po-sdk/?do=findComment&comment=445422 Пост пользователя "raf100" на AMK форуме]</ref><ref>[https://ap-pro.ru/forum/106-9910-686456-16-1411152702 Пост пользователя "DarkSatellite" на форуме AP Production]</ref><ref>[https://www.amk-team.ru/forum/topic/13485-modelirovanie-v-milkshape-3d/?do=findComment&comment=981204 Пост пользователя "GefoS" на AMK форуме]</ref><ref>[https://ap-pro.ru/forum/21-90672-1227782-16-1554404466 Пост пользователя "denis2000" на форуме AP Production]</ref><ref>[https://www.amk-team.ru/forum/topic/1560-soc-voprosy-po-sdk/?do=findComment&comment=1041853 Пост пользователя "V92" на AMK форуме]</ref> ===
# Проблема может быть в неправильном распределении текстур по папкам. Если имя текстуры начинается с "'''wpn_'''", то и хранится она должна в папке с именем "'''wpn'''".
Существует множество заблуждений по поводу причин данного вылета:
# Также, обратите внимание, есть ли в логе с вылетом строчка вида:<pre>count of .thm files=6326</pre>Если она есть, скорее всего превышен лимит [[*.thm]] файлов в папке SDK ''gamedata\textures''
# Неправильно распределены текстуры по папкам. Например, когда [[*.dds]] файл в папке ''textures/wpn'', имеет имя начинающееся НЕ с префикса '''wpn_'''
# Превышен лимит [[*.thm]] файлов в папке '''SDK''' ''gamedata\textures''
# У какой-то [[*.dds]] текстуры в папке '''SDK''' ''gamedata/textures'' отсутствует [[*.thm]] файл.<br>Например, если текстура была сохранена сразу из [[:Категория:Графические редакторы|графического редактора]] в формат [[*.dds]]
# У какого-то [[*.thm]] файла отсутствуют закрепленные за ним, детальные текстуры и бампы
# [[*.thm]] файл [[X-Ray SDK 0.4|SDK 0.4]] несовместим с [[X-Ray SDK 0.7|SDK 0.7]]
# [[*.tga]] текстуры импортировались в SDK без выставления параметров, а конкретно не был выставлен материал и вес
# Какая-то текстура неправильного размера, а точнее в её [[*.thm]] файле указан один размер (например, 1024х1024), а она сама другого (например, 512х512).<br>Либо размер текстуры не кратен двойке (например, 438х256)


=== Решение<ref>[http://www.amk-team.ru/forum/topic/12733-x-ray-sdk-instruktcii-po-vyletam-i-oshibkam/ Тема "<nowiki>[X-Ray SDK]</nowiki> Инструкции по вылетам и ошибкам" на AMK форуме]</ref> ===
Проверено что:
# Данная ошибка не критична, нажмите "продолжить", если доступно.
# Переименование префиксов текстур не вызывает вылета. И по идее, не должно возникать проблем в принципе.<br>Префикс нужен '''SDK''' для распределения текстур по папкам при преобразовании их из [[*.tga]] в [[*.dds]] — просто для удобства
# Попробуйте удалить все [[*.thm]]-файлы
# Если превышен лимит [[*.thm]] файлов, конкретно этот вылет <code>(Pos<=Size) && (Pos>=0)</code> — не происходит. Но происходит другой
# '''SDK''' стартует нормально, а вот компиляция уровня прерывается другим вылетом, как раз из-за отсутствия этих самых [[*.thm]] файлов
# Удаление детальных текстур или бампов не приводит к вылету <code>(Pos<=Size) && (Pos>=0)</code> (или к любому другому вылету).<br>Т.к. '''SDK''' не отображает их при рендере сцены, а значит и отсутствие их для '''SDK''' — не является проблемой достойной упоминания даже в логе, не говоря уже о вылете
# '''SDK 0.7''' понимает формат [[*.thm]] файла '''SDK 0.4'''. 100% ли эта совместимость — сказать трудно. Нужна статистическая выборка.<br>А совместимость разных версий [[*.thm]] файлов на разных версиях движка проверяйте самостоятельно
# Не существует сама возможность не задать эти параметры при импорте, т.к. они всегда по умолчанию выставлены.<br>И, да, они по умолчанию работают, не вызывая вылета
# '''SDK''' не учитывает (компиляторы учитывают), совпадает ли размер [[*.dds]] текстуры и размер записанный в её [[*.thm]] файле
 
Подтверждённая причина вылета:
* Нарушена структура одного из [[*.thm]] файлов<br>Если в его бинарные поля были внесены правки (например, [[:Категория:Текстовые редакторы|текстовым редактором]]) — вылет <code>(Pos<=Size) && (Pos>=0)</code> обеспечен<br>Если правки были внесены исключительно в текстовые поля — вылета может и не быть
* Кроме того, [[*.thm]] файл имеют не только текстуры, но и модели в формате [[*.object]]<br>Вполне вероятно, что ошибка в структуре [[*.thm]] моделей, также приведет к вылету
 
=== Решение ===
К сожалению, в логе отсутствует какое-либо упоминание о имени текстуры или [[*.thm]] файла из-за которого произошёл вылет.
 
Действовать придется методом исключения, удаляя папку текстур за папкой, пока вылет не пропадёт. А затем и файл, за файлом.
 
Минимизируйте шанс возникновения вылета, а именно, всегда импортируйте текстуры через '''SDK''':
# Конвертируйте текстуру в формат [[*.tga]], и переместите в папку '''SDK''' ''editors/import''
# Запустите '''Actor Editor'''
# Выполните ''Scene -> Images -> Image Editor''
# Выберите из списка нужную текстуру, и нажмите кнопку '''Ok'''.
 
 
=== Видео<ref>[https://www.youtube.com/user/genior2011 Канал пользователя "genior2011" на YouTube.com]</ref><ref>[https://www.youtube.com/user/stalkergrez2013 Канал пользователя "Grez" на YouTube.com]</ref> ===
{{#ev:youtube|https://www.youtube.com/watch?v=MoUVHctlhdY|400|inline}}
{{#ev:youtube|https://www.youtube.com/watch?v=56yjvpqtEf8|400|inline|||start=581}}




== Источники ==
== Источники ==
{{References}}
{{reflist|3}}
[[Категория:Справочник_вылетов]][[Категория:Вылеты X-Ray SDK]]
[[Категория:Справочник_вылетов]][[Категория:Вылеты X-Ray SDK]]

Текущая версия от 15:00, 5 апреля 2019

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]

Существует множество заблуждений по поводу причин данного вылета:

  1. Неправильно распределены текстуры по папкам. Например, когда *.dds файл в папке textures/wpn, имеет имя начинающееся НЕ с префикса wpn_
  2. Превышен лимит *.thm файлов в папке SDK gamedata\textures
  3. У какой-то *.dds текстуры в папке SDK gamedata/textures отсутствует *.thm файл.
    Например, если текстура была сохранена сразу из графического редактора в формат *.dds
  4. У какого-то *.thm файла отсутствуют закрепленные за ним, детальные текстуры и бампы
  5. *.thm файл SDK 0.4 несовместим с SDK 0.7
  6. *.tga текстуры импортировались в SDK без выставления параметров, а конкретно не был выставлен материал и вес
  7. Какая-то текстура неправильного размера, а точнее в её *.thm файле указан один размер (например, 1024х1024), а она сама другого (например, 512х512).
    Либо размер текстуры не кратен двойке (например, 438х256)

Проверено что:

  1. Переименование префиксов текстур не вызывает вылета. И по идее, не должно возникать проблем в принципе.
    Префикс нужен SDK для распределения текстур по папкам при преобразовании их из *.tga в *.dds — просто для удобства
  2. Если превышен лимит *.thm файлов, конкретно этот вылет (Pos<=Size) && (Pos>=0) — не происходит. Но происходит другой
  3. SDK стартует нормально, а вот компиляция уровня прерывается другим вылетом, как раз из-за отсутствия этих самых *.thm файлов
  4. Удаление детальных текстур или бампов не приводит к вылету (Pos<=Size) && (Pos>=0) (или к любому другому вылету).
    Т.к. SDK не отображает их при рендере сцены, а значит и отсутствие их для SDK — не является проблемой достойной упоминания даже в логе, не говоря уже о вылете
  5. SDK 0.7 понимает формат *.thm файла SDK 0.4. 100% ли эта совместимость — сказать трудно. Нужна статистическая выборка.
    А совместимость разных версий *.thm файлов на разных версиях движка проверяйте самостоятельно
  6. Не существует сама возможность не задать эти параметры при импорте, т.к. они всегда по умолчанию выставлены.
    И, да, они по умолчанию работают, не вызывая вылета
  7. SDK не учитывает (компиляторы учитывают), совпадает ли размер *.dds текстуры и размер записанный в её *.thm файле

Подтверждённая причина вылета:

  • Нарушена структура одного из *.thm файлов
    Если в его бинарные поля были внесены правки (например, текстовым редактором) — вылет (Pos<=Size) && (Pos>=0) обеспечен
    Если правки были внесены исключительно в текстовые поля — вылета может и не быть
  • Кроме того, *.thm файл имеют не только текстуры, но и модели в формате *.object
    Вполне вероятно, что ошибка в структуре *.thm моделей, также приведет к вылету

Решение

К сожалению, в логе отсутствует какое-либо упоминание о имени текстуры или *.thm файла из-за которого произошёл вылет.

Действовать придется методом исключения, удаляя папку текстур за папкой, пока вылет не пропадёт. А затем и файл, за файлом.

Минимизируйте шанс возникновения вылета, а именно, всегда импортируйте текстуры через SDK:

  1. Конвертируйте текстуру в формат *.tga, и переместите в папку SDK editors/import
  2. Запустите Actor Editor
  3. Выполните Scene -> Images -> Image Editor
  4. Выберите из списка нужную текстуру, и нажмите кнопку Ok.


Видео[6][7]


Источники