Перейти к контенту

Поиск в системе

Результаты поиска по тегам 'sdk'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Категории

  • Правки для ОП-2.2
  • Вопросы по правкам / настройке ОП-2.1
  • ЧаВо по форуму
  • Шпаргалка AMK: Основы
  • Шпаргалка AMK: Ковыряние
  • Шпаргалка AMK: Оптимизация
  • Шпаргалка AMK: Работа с консолью
  • Справочник вылетов (Line 1 - Line 100)
  • Справочник вылетов (Line 101 - Line 200)
  • Справочник вылетов (Line 201 - Line 400)
  • Справочник вылетов (Line 401 -)
  • [CoP] Библиотека моделей оружия

Форумы

  • S.T.A.L.K.E.R.
    • AMK мод
    • Школа моддинга
    • Мастерская ТЧ
    • Мастерская ЧН
    • Мастерская ЗП
    • AMK English Version
  • S.T.A.L.K.E.R. 2
    • Предрелизный раздел S.T.A.L.K.E.R. 2
  • Общий форум
    • Флейм
    • AMK Склад
    • Административный раздел
  • Сетевые баталии
    • Сетевые баталии
  • Metro 2033 и Metro: Last Light
  • Другие игры
    • FPS / Action
    • RPG / RTS / TBS
    • Гонки / Симуляторы
    • Квесты/Аркады
    • Онлайн игры
    • Разное
    • Консоли
  • Форум клуба Клуб "Звуковиков"
  • Форум клуба Клуб Бункер Бобра
  • Общая тема Клуб разработчиков
  • Torque 3D Клуб разработчиков
  • NeoAxis 3D Клуб разработчиков
  • Unity Клуб разработчиков
  • Unreal Engine Клуб разработчиков
  • CryEngine Клуб разработчиков
  • OGRE 3D Клуб разработчиков
  • Свободная вкладка Клуб разработчиков
  • Blender Клуб разработчиков
  • Lumberyard Клуб разработчиков
  • Приемный покой Клуб "Безумный Психиатр"
  • Форум клуба Клуб "TEXCOORDN;"
  • Темы 'Фанат Отчуждения'

Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


Звание


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Реальное имя


Город


Интересы

Найдено 7 результатов

  1. Тема создана для модмейкеров, столкнувшихся с неизвестными вылетами движка X-Ray, и его SDK. Скрытый текст Платформа: ТЧ/ЧН/ЗП или SDK. Версия: игры или SDK Оригинал или мод (указать какой) Лог вылета. При каких обстоятельствах произошёл вылет. Тема для публикации решений вылетов и ошибок: https://www.amk-team.ru/forum/topic/12733-instrukcii-po-vyletam-i-oshibkam/ Тема по ошибкам (не вылетам) SDK: https://www.amk-team.ru/forum/topic/13442-masterskaya-po-razboru-oshibok-ne-vyletov-x-ray-sdk/ Нерешенные вылеты: https://modfaq.ru/Категория:Нерешённые_вылеты [error]Expression : fs [error]Function : CRender::LoadBuffers [error]File : D:\prog_repository\sources\trunk\Layers\xrRenderPC_R2\r2_loader.cpp [error]Line : 212 [error]Description : Could not load geometry. File 'level.geom?' corrupted. ЦИТАТА: сменил статическое освещение на динам и теперь вылетает [error]Expression : assertion failed [error]Function : IReaderBase<class IReader>::r_chunk_safe [error]File : e:\stalker\patch_1_0004\xrcore\FS.h [error]Line : 221 [error]Description : dwSize==dest_size ЦИТАТА: Первый заход в Припять и 100% вылет Пробовал и на динамие, и на статике, и после сна. Expression : assertion failed Function : CSE_Abstract::Spawn_Read File : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_Object_Base.cpp Line : 236 Description : M_SPAWN==dummy16 Expression : file Function : CResourceManager::_CreatePS File : D:\prog_repository\sources\trunk\Layers\xrRender\ResourceManager_Resources.cpp Line : 240 Description : c:\stalker\stalker call of pripyat\gamedata\shaders\r2\deffer_impl_lmh_flat_d.ps Expression : assertion failed Function : CPHSkeleton::RestoreNetState File : E:\stalker\patch_1_0004\xr_3da\xrGame\PHSkeleton.cpp Line : 254 Description : bone<obj->PHGetSyncItemsNumber() Expression : R Function : CResourceManager::_CreatePS File : E:\stalker\patch_1_0004\xr_3da\ResourceManager_Resources.cpp Line : 273 Description : e:\s.t.a.l.k.e.r\gamedata\shaders\r2\deffer_impl_lmh_flat.ps Expression : R Function : CResourceManager::_CreatePS File : E:\stalker\sources\trunk\xr_3da\ResourceManager_Resources.cpp Line : 273 Description : d:\games\s.t.a.l.k.e.r. shadow of chernobyl\gamedata\shaders\r2\deffer_impl_lmh_flat.ps Expression : assertion failed Function : CLocatorAPI::ProcessArchive File : E:\stalker\patch_1_0004\xrCore\LocatorAPI.cpp Line : 318 Description : A.hSrcFile!=INVALID_HANDLE_VALUE Expression : assertion failed Function : CLocatorAPI::archive::open File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 406 Description : hSrcFile!=INVALID_HANDLE_VALUE Expression : assertion failed Function : CLocatorAPI::archive::open File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 408 Description : hSrcMap!=INVALID_HANDLE_VALUE Expression : assertion failed Function : CLocatorAPI::ProcessArchive File : E:\stalker\patch_1_0004\xrCore\LocatorAPI.cpp Line : 322 Description : A.size>0 Expression : assertion failed Function : CUILine::GetLength_inclusiveWord_1 File : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UILine.cpp Line : 410 Description : pos.word_1.exist() Expression : hSrcFile!=INVALID_HANDLE_VALUE Function : CVirtualFileReader::CVirtualFileReader File : E:\stalker\sources\trunk\xrCore\FS.cpp Line : 454 Description : d:\games\s.t.a.l.k.e.r. - Вариант Омега\gamedata\sounds\music\menu_l.ogg Arguments : The system cannot find the path specified. [error]Expression : hSrcFile!=INVALID_HANDLE_VALUE [error]Function : CVirtualFileReader::CVirtualFileReader [error]File : E:\priquel\sources\engine\xrCore\FS.cpp [error]Line : 530 [error]Description : c:\program files\gsc world publishing\stalker\gamedata\configs\misc\trade\trade_trader_agr_stalker.ltx [error]Arguments : The system cannot find the path specified. ЦИТАТА: Устоноил все предметы у торговцев. Игра жесть тормозить стала. Во время игры удалил этот файл и вот первый вылет на версии 1.5.04 Expression : data Function : CVirtualFileReader::CVirtualFileReader File : E:\stalker\patch_1_0004\xrCore\FS.cpp Line : 462 Description : d:\Игры\s.t.a.l.k.e.r\gamedata\textures\ui\ui_npc_unique.dds Arguments : n/a ЦИТАТА: при начале разговора с петренко вылетает Возможное решение: Не прописаны координаты иконки морды лица для Петренко. Посмотри в файле gamedata\config\ui\ui_npc_unique.xml Expression : hSrcFile!=INVALID_HANDLE_VALUE Function : CVirtualFileReader::CVirtualFileReader File : E:\priquel\sources\engine\xrCore\FS.cpp Line : 533 Description : d:\games\stalker - clear sky\gamedata\meshes\dynamics\weapons\wpn_beretta92fs\wpn_beretta92fs_hud.ogf Arguments : n/a Expression : hSrcFile!=INVALID_HANDLE_VALUE Function : CVirtualFileReader::CVirtualFileReader File : D:\prog_repository\sources\trunk\xrCore\FS.cpp Line : 537 Description : c:\program files (x86)\bitcomposer games\s.t.a.l.k.e.r. - call of pripyat\gamedata\scripts\swm_attachments - ?????.script Arguments : n/a Expression : slot<=LastSlot() Function : CInventory::Activate File : D:\prog_repository\sources\trunk\xrGame\Inventory.cpp Line : 534 Description : wrong slot number Expression : assertion failed Function : CUICellContainer::GetItemPos File : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UIDragDropListEx.cpp Line : 583 Description : 0 ЦИТАТА: при попытке установить в слот обрез двустволки Возможное решение: Похоже не помещается в слот оружие [error]Expression : assertion failed [error]Function : CUICellContainer::GetItemPos [error]File : E:\priquel\sources\engine\xrGame\ui\UIDragDropListEx.cpp [error]Line : 702 [error]Description : 0 ЦИТАТА: при обыске трупа стабильный вылет [error]Expression : assertion failed [error]Function : CUICellContainer::GetItemPos [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIDragDropListEx.cpp [error]Line : 769 [error]Description : 0 ЦИТАТА: при попытке заменить первоначальный костюм,даже просто снять его вылет Expression : assertion failed Function : CALifeSimulator__release File : deep deep in space Line : 666 Description : Object to release is a zero pointer ЦИТАТА: во время начала боя на арене,версия 1.0006. Поставил пак оружия на ЧН руках или Удалил болт, заспавнил детектор bolt_d1 и вылет Сам скрипт которым спавнил\удалял function test() local item_in_slot = db.actor:item_in_slot(10) if not item_in_slot then return end if item_in_slot:section() == "detector_simple" or item_in_slot:section() == "detector_advances" or item_in_slot:section() == "detector_elite" then amk.remove_item(bolt) amk.spawn_item_in_inv("bolt_d1") end end Возможное решение: у болта нет серверной части, это чисто клиентский объект, его нельзя удалить без вот таких последствий. Expression : assertion failed Function : CLocatorAPI::_initialize File : E:\stalker\patch_1_0004\xrCore\LocatorAPI.cpp Line : 655 Description : path_exist("$app_data_root$") Expression : assertion failed Function : CLocatorAPI::_initialize File : E:\priquel\sources\engine\xrCore\LocatorAPI.cpp Line : 685 Description : path_exist("$app_data_root$") Expression : assertion failed Function : CLocatorAPI::_initialize File : D:\prog_repository\sources\trunk\xrCore\LocatorAPI.cpp Line : 807 Description : path_exist("$app_data_root$") ЦИТАТА: редактирую текстуру в photoshop'е захожу в игру Expression : error handler is invoked! Function : handler_base File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 764 Description : floating point error Expression : error handler is invoked! Function : handler_base File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 764 Description : pure virtual function call ЦИТАТА: При удалении трупа, если в данный момент гг его обыскивает (открыт инвентарь) [error]Expression : assertion failed [error]Function : i:\xray-svn\xrcore\FixedVector.h [error]File : i:\xray-svn\xrcore\FixedVector.h [error]Line : 38 [error]Description : id<count ЦИТАТА: При попытке загрузить модель в Actor Editor SDK 0.6 [error]Expression : assertion failed [error]Function : i:\xray-svn\xrcore\_stl_extensions.h [error]File : i:\xray-svn\xrcore\_stl_extensions.h [error]Line : 43 [error]Description : _Pos<size() Expression : assertion failed Function : I:\xray-svn\editors\ECore\Editor\ui_main.cpp File : I:\xray-svn\editors\ECore\Editor\ui_main.cpp Line : 49 Description : m_ProgressItems.size()==0 http://ap-pro.ru/forum/106-602-598935-16-1393752422 http://www.amk-team.ru/forum/topic/1560-soc-voprosy-po-sdk/?do=findComment&comment=800153 http://www.amk-team.ru/forum/topic/5533-soobschestvo-mapperov/?do=findComment&comment=600493 [error]Expression : assertion failed [error]Function : CDB::MODEL::build [error]File : D:\prog_repository\sources\trunk\xrCDB\xrCDB.cpp [error]Line : 86 [error]Description : (Vcnt>=4)&&(Tcnt>=2) ЦИТАТА: при компиляции локации в SDK 0.7 Возможное решение: Судя по всему проблема с геометрией у одного из объектов. [error]Expression : assertion failed [error]Function : I:\xray-svn-trunk\editors\ParticleEditor\ParticleEffectActionsImpl.cpp [error]File : I:\xray-svn-trunk\editors\ParticleEditor\ParticleEffectActionsImpl.cpp [error]Line : 97 [error]Description : vers==PARTICLE_ACTION_VERSION [error]Expression : assertion failed [error]Function : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]File : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]Line : 101 [error]Description : f_index<m_FaceCount ЦИТАТА: При попытке настроить объект созданный в 3ds Max, в SDK 0.7 [error]Expression : norm_id<m_FaceCount*3 [error]Function : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]File : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]Line : 106 [error]Description : Normal index out of range. ЦИТАТА: При попытке настроить объект созданный в 3ds Max, в SDK 0.7 [error]Expression : fv.pindex<(int)m_VertCount [error]Function : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]File : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]Line : 107 [error]Description : Point index out of range. ЦИТАТА: При попытке настроить объект созданный в 3ds Max, в SDK 0.7 [error]Expression : fv.pindex<int(m_VertCount) [error]Function : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]File : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditMeshRender.cpp [error]Line : 113 [error]Description : - Face index out of range. ЦИТАТА: При попытке настроить объект созданный в 3ds Max, в SDK 0.7 skiping ui\ui_cm_connection_error.thm(already exists) Expression : assertion failed Function : X:\stalker_addon\sources\trunk\editors\xrEProps\ItemList.h File : X:\stalker_addon\sources\trunk\editors\xrEProps\ItemList.h Line : 134 Description : !tvItems->MultiSelect [error]Expression : assertion failed [error]Function : i:\xray-svn\xrcore\_vector3d.h [error]File : i:\xray-svn\xrcore\_vector3d.h [error]Line : 189 [error]Description : square_magnitude() > std::numeric_limits<T>::min() ЦИТАТА: after camming to certain positions in the SDK Can't load: 'c:\program files (x86)\x-ray cop sdk\editors\import\wpn_hand_exo.ogf' invalid bones count FATAL ERROR [error]Expression : assertion failed [error]Function : X:\stalker_addon\sources\trunk\Layers\xrRender\../../xrEngine/SkeletonMotions.h [error]File : X:\stalker_addon\sources\trunk\Layers\xrRender\../../xrEngine/SkeletonMotions.h [error]Line : 235 [error]Description : p_ [error]Expression : assertion failed [error]Function : I:\xray-svn\editors\ECore\Editor\Device.cpp [error]File : I:\xray-svn\editors\ECore\Editor\Device.cpp [error]Line : 306 [error]Description : FALSE==g_bRendering ЦИТАТА: При добавлении/удалении предметов на уровень в Level Editor SDK 0.4 [error]Expression : fatal error [error]Function : X:\stalker_addon\sources\engine\editors\LevelEdito r\Edit\UI_LevelTools.cpp [error]File : X:\stalker_addon\sources\engine\editors\LevelEdito r\Edit\UI_LevelTools.cpp [error]Line : 327 [error]Description : <no expression> [error]Arguments : THROW [error]Expression : fatal error [error]Function : X:\stalker_addon\sources\trunk\editors\LevelEditor\Edit\UI_LevelTools.cpp [error]File : X:\stalker_addon\sources\trunk\editors\LevelEditor\Edit\UI_LevelTools.cpp [error]Line : 332 [error]Description : <no expression> [error]Arguments : THROW [error]Expression : Device lost [error]Function : X:\stalker_addon\sources\trunk\editors\ECore\Editor\device.cpp [error]File : X:\stalker_addon\sources\trunk\editors\ECore\Editor\device.cpp [error]Line : 343 [error]Description : HW.pDevice->Present( NULL, NULL, NULL, NULL ) ЦИТАТА: Make AI Map в SDK 0.7 Expression : sz<(tgt_sz-1) Function : I:\xray-svn\xrCore\FS.cpp File : I:\xray-svn\xrCore\FS.cpp Line : 349 Description : Dest string less than needed. [error]Expression : fatal error [error]Function : X:\stalker_addon\sources\trunk\xrCore\Xr_ini.cpp [error]File : X:\stalker_addon\sources\trunk\xrCore\Xr_ini.cpp [error]Line : 455 [error]Description : <no expression> [error]Arguments : Can't open section '_group'. Please attach [*.ini_log] file to your bug report [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...p sdk\editors\gamedata\scripts\se_smart_cover.script:50: attempt to index field '?' (a nil value) Expression : error handler is invoked! Function : invalid_parameter_handler File : .\xrDebugNew.cpp Line : 791 Description : ЦИТАТА: при експорте здания в Level Editor может ли это быть из за того что у меня некоторые объекты пересекаются и он не может экспортировать? Потому что например если экспортировать ту часть, где я еще не халтурил, то все норм экспортируются? Похож на: http://modders-wiki.ru/xr:Line_804 * New phase started: Freeing resources being allocated level 1 pihan_test FATAL ERROR Expression : assertion failed Function : CLevelGraph::vertex_position File : x:\clearsky\src\engine\utils\xrai\level_graph_inline.h Line : 99 Description : iFloor((source_position.z - header().box().min.z)/header().cell_size() + .5f) < (int)m_row_length * New phase started: Freeing resources being allocated FATAL ERROR Expression : !m_level_spawns.empty() Function : CGameSpawnConstructor::load_spawns File : .\game_spawn_constructor.cpp Line : 109 Description : There are no valid levels (with AI-map and graph) in the section 'levels' in the 'game.ltx' to build spawn file from! ЦИТАТА: при сборке спавна Expression : !m_level_spawns.empty() Function : CGameSpawnConstructor::load_spawns File : .\game_spawn_constructor.cpp Line : 139 Description : There are no valid levels (with AI-map and graph) in the section 'levels' in the 'game.ltx' to build spawn file from! http://www.amk-team.ru/forum/topic/5533-soobschestvo-mapperov/?do=findComment&comment=1068112 Expression : m_level_changers.empty() Function : CGameSpawnConstructor::verify_level_changers File : .\game_spawn_constructor.cpp Line : 166 Description : Some of the level changers setup incorrectly ЦИТАТА: xrAI ТЧ List of the level changers which are invalid for some reasons exit_to_garbage_01 FATAL ERROR Expression : m_level_changers.empty() Function : CGameSpawnConstructor::verify_level_changers File : .\game_spawn_constructor.cpp Line : 196 Description : Some of the level changers setup incorrectly ЦИТАТА: Взял Кордон и ничего в нём не меняя (после декомпиляции) попробовал собрать all.spawn, но упёрся в одну ошибку 472 graph points loaded Building cross table Saving cross table Loading cross table Building graph Generating edges 1834 edges built Checking graph connectivity Optimizing graph edges before optimization : 1834 FATAL ERROR Expression : assertion failed Function : CGameGraphBuilder::process_tripple File : .\game_graph_builder.cpp Line : 597 Description : _min(edge->weight(),graph().edge(edge->vertex_id(),tripple.second.second) ? graph().edge(edge->vertex_id(),tripple.second.second)->weight() : (*I).weight()) <= tripple.first ЦИТАТА: При компиляции level.graph http://www.amk-team.ru/forum/topic/1560-soc-voprosy-po-sdk/?p=915137 * New phase started: LIGHT: Implicit... * New phase started: LIGHT: LMaps... FATAL ERROR expression : assertion failed Function : lc_net::get_next File : D:\prog_repository\sources\trunk\utils\xrLC_Light\net_lightmaps_add_task.cpp Line : 48 Description : from < size ЦИТАТА: при сетовой компиляции Expression : assertion failed Function : OGF::Optimize File : I:\xray-svn\xrLC\OGF_Face.cpp Line : 153 Description : x_faces.size() == faces.size() Гайды: https://modfaq.ru/Поиск_решения_вылета https://modfaq.ru/Поиск_упоминаний_вылетов_и_ошибок
  2. faniloko

    [SoC] Вопросы по SDK

    X-Ray SDK v0.4скачать Глобальный патч v0.4 (16 Dec 2009) для X-Ray SDK v0.4 скачать Декомпилятор уровней, конвертер анимаций, моделей и еще кучи всего скачать Скрипты импорта/экспорта объектов для 3ds max (den-stash): Тут можно найти последнюю версию: ссылка Плагины импорта/экспорта геометрии в Milkshape 3D (bardak, Kamikazze): скачать Плагины импорта/экспорта геометрии в Maya (bardak, surfer): скачать Плагины экспорта геометрии из Maya/Lightwave (официальные от GSC): скачать Официальный xrAI для ТЧ: скачать Ускоренные компиляторы для ТЧ, присутствует обход ошибки Invalid Face (Mortarion,Haron,Macron,Bardak): скачать xrLC + xrDO_Light + xrAI (Sep 27 2014) Авторы: GSC Правки и сборка под x64: K.D. ЧН: https://yadi.sk/d/vK-lttohbhNHu(без pdb https://yadi.sk/d/t5f3vuL-bhNJt ) ЗП: https://yadi.sk/d/uaDOZDzEbhNKa(без pdb https://yadi.sk/d/iCtXQ9bgbhNL4 ) build 5714, Sep 27 2014 ! исправлена замена каналов в итоговой текстуре террейна build 5578, May 14 2014 ~ сохранение текстур переделано с nvdxt на nvtt build 5571, May 7 2014 ! убрана надпись LevelBuilder из лога build 5570, May 6 2014 ! переделано детектирование процессора и его фичей ! теперь при вылете компилятор не пытается продолжать работать + добавлен ряд новых ключей запуска (-norgb, -lmap_quality) + при отсутствии текстур (tga, thm) xrLC слетает не сразу, а по окончании фазы загрузки + добавлена инициализация xrDebug для формирования стека вызовов и минидампа при вылете + добавлен расчет номера билда аналогично игре + изменено имя лог-файла на конфигурации x64 build 5707, Sep 20 2014 ~ при отсутствии необходимых файлов (build.cform и т.д.) компилятор выдает сообщение build 5578, May 14 2014 ~ сохранение текстур переделано с nvdxt на nvtt build 5571, May 7 2014 + добавлена поддержка x64 + добавлен ряд новых ключей запуска (-norgb, -nosun) + добавлена инициализация xrDebug для формирования стека вызовов и минидампа при вылете + добавлен расчет номера билда аналогично игре + изменено имя лог-файла на конфигурации x64 ! убрана надпись LevelBuilder из лога Sep 27 2014 ~ исправлено падение xrAI на старте Sep 20 2014 + поддержка build.cform, полученного новым xrLC ТЧ: https://yadi.sk/d/NeOThjvxbgvde(без pdb https://yadi.sk/d/qrHM0AnlbhNH3 ) Имя файла: thm for all textures SoC.rar Размер: 155.48 МБ Ссылка: >>Click Me<< Предназначены для расставления на своих картах в редакторе карт, шейдеры и текстуры уже настроены. by UX.Loki http://www.stalkerin.gameru.net/downloads/...lker_Content.7z Обновленные исходники рук с костями для 3д макса 8.0 и выше в формате .max, теперь вам будет гораздо легче создать собственный худ. Модель привязана к костям, сделана камера для контроля анимаций (вид HUD-а как в игре) by Tambovski http://www.stalkerin.gameru.net/downloads/...D_HANDS_new.rar В комплекте лестницы, hom-кубик occ и прочая тематичная дребедень + полезная инфа. Разархивировать в папку с SDK. by macron http://yadi.sk/d/Y7kMpHcG7XkBU Оригинал: Kostya V Переписал: krovosnork Настройка СДК. 1. Установите СДК на свой компьютер. 2. Лучше всего устанавливать СДК по такому адресу (в будущем тогда будет меньше мороки с настройками): C:\Program Files\X-Ray SDK 3. Установите Глобальный патч v0.4 для X-Ray SDK v0.4 4. Возьмите распакованную версию игры Сталкер ТЧ (gamedata) и поставьте с заменой в X-Ray SDK\level_editor. Это упростит работу в будущем. 5. Теперь понадобится конвертер от Бардака 6. С помощью него преобразовываем текстуры dds2tga. Как - читаем ридми. Необходимо только запустить конвертер на преобразование, остальное он сделает сам. Это необходимо для того, чтобы в СДК появились недостающие текстуры, которых будет много не хватать, если этого не сделать. 7. Ставим компиляторы: Официальный xrAI для ТЧ:скачать Ускоренные компиляторы для ТЧ, присутствует обход ошибки Invalid Face (Mortarion,Haron,Macron,Bardak): скачать xrLC + xrDO_Light + xrAI (Sep 27 2014) Авторы: GSC Правки и сборка под x64: K.D. build 5714, Sep 27 2014 ! исправлена замена каналов в итоговой текстуре террейна build 5578, May 14 2014 ~ сохранение текстур переделано с nvdxt на nvtt build 5571, May 7 2014 ! убрана надпись LevelBuilder из лога build 5570, May 6 2014 ! переделано детектирование процессора и его фичей ! теперь при вылете компилятор не пытается продолжать работать + добавлен ряд новых ключей запуска (-norgb, -lmap_quality) + при отсутствии текстур (tga, thm) xrLC слетает не сразу, а по окончании фазы загрузки + добавлена инициализация xrDebug для формирования стека вызовов и минидампа при вылете + добавлен расчет номера билда аналогично игре + изменено имя лог-файла на конфигурации x64 build 5707, Sep 20 2014 ~ при отсутствии необходимых файлов (build.cform и т.д.) компилятор выдает сообщение build 5578, May 14 2014 ~ сохранение текстур переделано с nvdxt на nvtt build 5571, May 7 2014 + добавлена поддержка x64 + добавлен ряд новых ключей запуска (-norgb, -nosun) + добавлена инициализация xrDebug для формирования стека вызовов и минидампа при вылете + добавлен расчет номера билда аналогично игре + изменено имя лог-файла на конфигурации x64 ! убрана надпись LevelBuilder из лога Sep 27 2014 ~ исправлено падение xrAI на старте Sep 20 2014 + поддержка build.cform, полученного новым xrLC ТЧ: https://yadi.sk/d/NeOThjvxbgvde(без pdb https://yadi.sk/d/qrHM0AnlbhNH3 ) ЧН: https://yadi.sk/d/vK-lttohbhNHu(без pdb https://yadi.sk/d/t5f3vuL-bhNJt ) ЗП: https://yadi.sk/d/uaDOZDzEbhNKa(без pdb https://yadi.sk/d/iCtXQ9bgbhNL4 ) 8. Открываем СДК. Это делается путем запуска батника LevelEditor в X-Ray SDK\level_editor. 9. Создаем ЛОДы для деревьев и камней. Статья Видео Настройка конвертера. Создаем папку X-Ray SDK\converter и копируем туда файлы конвертера. Затем настраиваем его. Если установили СДК в C:\Program Files\X-Ray SDK, то в файле fsconverter.ltx ничего уже настраивать не надо. Если же сдк установлен в другую папку, то в файле fsconverter.ltx находим строчку $sdk_root$= false| false| c:\program files\x-ray sdk\level_editor\ и прописываем путь к сдк. В файле converter.ini находим такие строки и исправляем их (укажите путь к своему сдк, если он установлен в другую папку): ; 2947+ (финалка включая обновления) [2947_config]:2945_config $game_data$ = c:\program files\x-ray sdk\level_editor\gamedata\ $game_levels$ = c:\program files\x-ray sdk\level_editor\gamedata\levels\ [3120_config]:2947_config $game_data$ = c:\program files\x-ray sdk\level_editor\gamedata\ $game_levels$ = c:\program files\x-ray sdk\level_editor\gamedata\levels\ Все, теперь конвертер настроен. Как им пользоваться читаем в ридми. Подготовка уровня 1. Сделайте в 3Д редакторе какой-нибудь террейн. Затекстурьте его и эспортируйте в СДК. 2. Открываем наш новый уровень в Левел Едиторе. 3. Заходим в Properties\Scene\Options и меняем Name prefix и Level path на нужные нам названия. Выбираем Quality. 4. Добавляем Glow. Назначаем ему текстуру. 5. Затем жмем Edit Mode\Light и добавляем освещение на уровень. Можно поставить несколько в разных углах и хватит. 6. Далее добавляем переход с уровня. (Пропустите этот шаг, если не собираетесь подключать локацию к остальным) Edit Mode\Spawn Element\ai\level changer и ставим этот level changer в любом месте, где хотим сделать переход. Потом жмем Edit Mode\Shape выбираем, допустим, сферу и ставим ее в том же месте, где и level changer. Затем обратно на Edit Mode\Spawn Element и нажимаем Commands\Attach Object, а потом опять на сферу. После этого сфера и level changer объединяться. 7. Теперь нажимаем на level changer правой кнопкой мыши и выбираем properties. В нем выбираем в Level to change уровень, на который хотим перейти. В Level point to change пишем название граф поинта, на котором появится ГГ после перехода. Заходим в custom data перехода и пишем там: [pt_move_if_reject] path = название уровня_way_if_reject 8. Нажимаем Edit Mode\Way Points, ставим 1 вейпоинт рядом с level changer, теперь жмем point mode и ставим второй. Теперь у нас получился путь, который мы прописали в custom data level changer, заходим в свойства и обзываем его также как и в custom data, то есть название уровня_way_if_reject. 9. Расставляем графпоинты. Edit Mode\Spawn Element\ai\graph point. Ставим один граф-поинт рядом с переходом и в свойствах прописываем ему название. (Его можно использовать как точку спавна при переходе на локацию) 10. Далее расставляем граф-поинты по уровню. Необходимо ставить их там, где предполагаются места стоянок, а также по периметру уровня. (Для тестовой локации будет достаточно нескольких граф-поинтов) 11. Далее идем в Edit Mode\Spawn Element\ и спавним на локации какой-нибудь предмет (например, винторез). 12. Теперь надо сделать АИ-сетку. Нажимаем Edit Mode\Object и выделяем все объекты на уровне (Selection\Select All). Далее Edit Mode\AI Map и вносим все выделенные объекты в список. Snap List\Comands\Add Selected To List. Ставим АИ-нод и нажимаем Generate Full. 13. После создания АИ-сетки нажимает Edit Mode\Sector. Выбираем Remove Default, а после Create Default. Все, приготовления закончились. Теперь начнем компиляцию. Компиляция 1. В СДК делается Build этого уровня. Compile->Build 2. Затем компилируем геометрию с помощью xrLC. Нужно записать название локации в батник xrLC, при необходимости добавить дополнительные ключи (если используете x64 компиляторы, список и предназначение ключей есть в ридми) 3. Далее прописываем в конфигах свой уровень. Прописать надо в файлах game_graphs.ltx и game_levels.ltx. 4. Теперь переходим к работе с xrAI. В папке level_editor создаем батники: (Путь может отличаться, если вы используете x64 компиляторы) 1) Сборка черновой сетки ИИ: Команда: @start bins\compiler_ai\xrAI.exe -draft -f <имя_уровня> На выходе: gamedata\levels\<имя_уровня>\level.ai. 2) Сборка ИИ-графа: Команда:@start bins\compiler_ai\xrAI.exe -g <имя_уровня> На выходе: gamedata\levels\<имя_уровня>\level.{graph|gct.raw} 3) Склейка ИИ-графов карт в глобальный игровой граф: Команда:@start bins\compiler_ai\xrAI.exe -m На выходе: gamedata\game.graph и gamedata\levels\*\level.gct (см. ниже для случая с картами без исходников) 4) Сборка all.spawn Команда:@start bins\compiler_ai\xrAI.exe -s На выходе: gamedata\spawns\all.spawn Все карта скомпилирована. Теперь надо собрать геймдату своего уровня. Обязательно необходимо скопировать из level_editor\gamedata в свою геймдату следующие файлы: - config\game_graphs.ltx и game_levels.ltx - spawns\all.spawn - из папки levels скопировать папку с новым уровнем (build.* файлы не нужны) - из папки levels необходимо скопировать в соответствующие папки файлы level.gct для каждого уровня, если вы подключали свою локацию к оригинальным. - game.graph - в папку textures скопировать все свои новые текстуры, которые использовали для своего уровня. Теперь получившуюся папку gamedata помещаем в папку с игрой и запускаем новую игру. Дорогие друзья! Прежде, чем написать сообщение с вопросом "а почему у меня не работает"/"а почему такой вылет", проверьте написанное в FAQ по основным проблемам. Если описанный в сообщении вылет/проблема есть в FAQ, не обессудьте - буду тереть. KD87 ================================================================================ Сюда же: Почему у меня даже на Windows 7 x64 СДК использует только 2 Гб памяти и не дает работать с очень большими локами? Причина: не хватает оперативной памяти, точнее, памяти, выделенной под приложение. Обычно происходит по двум причинам - винда x86 выдает приложению не более 2 Гб оперативки, а приложение, скомпиленное 32битным компилятором, не может адресовать более 2 Гб памяти. Если физической памяти много (4 Гб и более) решаем так: Заставляем винду выдавать побольше памяти приложению: -устанавливаем x64-версию Windows. -на x86-версиях можно выполнить следующее: XP: в boot.ini добавьте ключ /3gb к конфигу текущей операционной системы. Vista/Win7: в командной строке введите BCDEDIT /Set IncreaseUserVa 3072 Теперь винда сможет давать 3 Гб приложениям. Внимание! Обычно все путем, но иногда программы могут начать работать странно! Могут начаться глюки! Использовать на свой страх и риск! Заставляем приложение адресовать более 2 Гб памяти: -добавляем в экзешник флаг /LARGEADDRESSAWARE. Сделать это можно разными способами, проще всего - готовым патчем: патч ================================================================================ При экспорте модели из AE в ogf происходит примерно такое: Возможная причина: в Вашей модели более 60 000 фейсов (если смотреть в AE). В любом случае проблема в модели, точная причина пока не установлена. ================================================================================ Вопрос: При экспорте OGF появляется такое сообщение: Ответ: Когда будете в SDK выбирать кости и делать Generate Shape, выбирате только те кости, к которым есть привязка... в данном случае - выбираем все кости, кроме тех на которые ругается сдк, то есть root, connectbone01, connectbone02 соответсвенно... ================================================================================ Вопрос: Взял с карты, импортированой в 3ds Max - любой обьект. Выравниваю пайвот по обьекту (center to object). Далее помещаю обьект в центр координат, экспортирую. А в LE, при спавне этого обьекта - он оказывается хз где, а не по пайвоту. Подскажите как правильно выровнять надо. Ответ: После того, как поставите объект куда надо - идём туда, где "включали пайвот" и нажимаем Reset Pivot - непосредственно перед экспортом. И экспортируйте на здоровье. Если объектов - много - выделяем их все, и также "сбрасываем" Pivot. ИЛИ Центрировать пайвот по обьекту, поставить в центр и в утилитах нажать Reset xForm. ================================================================================ Вопрос: Во время работы выводится ошибка invalid float operation, в логе появляется запись следующего вида: Далее подобная же ошибка происходит при попытке установки на карту любого объекта. Что делать? Ответ: Как правило, эта ошибка вызывается файлом rt_object_props.ltx. Закройте SDK и удалите его. ================================================================================ Вылет при открытии СДК: Причина: отсутствие файла $no_sound.ogg в папке \gamedata\sounds\ ================================================================================ Cовместил SDK с игрой, но вылетает с ошибкой. Полный репорт ошибки: Ответ: Вы просто забыли удалить либо переместить все .db фаилы в другую папку. ================================================================================ Вопрос: SDK не работает под Vista/Win7, что делать? Ответ: Ставим на диск с фаиловой системой fat32, не открываем пока редактор, что нужно устанавливаем в level_editor\rawdata\, не забываем впихнуть в папку с редактором d3dx9_31.dll. Создание нового левела на висте - переименовываем пример mp_atp_test.level и папку под него, редактируем level.ini, детальные объекты придется делать самому, а не открывать заготовку. Также смотрите: Запуск СДК под Vista/Win7 с помощью VMWare Worksation: читать Запуск СДК под Vista/Win7 с помощью Microsoft Compatibility Toolkit: читать ================================================================================ Вопрос: После прекомпиляции в редакторе пишет ошибку: Ответ: Сделайте HOM-объекты на локации. Но к сведению... HOM-объекты для компиляции необязательны, то есть игра прекомпилит уровни и переваривает их и без них, так что ставьте на свое усмотрение. Если у вас пишет Invalid Scene!, то это никак не связано с тем, что вы не поставили сектора и порталы (HOM), а проблема в чем-то другом. Но! Если на карте уже есть HOM, то вам явно стоит разобраться с секторами. ================================================================================ Вопрос: Как запустить Shader Editor, или "А вот это выскочило, когда я попытался запустить .exe-файл": Ответ: Создать в папке ...LevelEditor .bat-файл, в котором написать: @start bins\ShaderEditor.exe Если у вас подобная ошибка с другими .bat фаилами, возможно, вам нужно установить OpenAL 1.1. ================================================================================ Вопрос: Вылетает ошибка при валидации: Ответ: когда что-то меняется из статической геометрии, надо пересчитать сектора и порталы. Edit mode - sector - remove default - create default. Edit mode - portals - compute all. FATAL ERROR [error]Expression : fatal error [error]Function : out_of_memory_handler [error]File : .\xrDebugNew.cpp [error]Line : 318 [error]Description : <no expression> [error]Arguments : Out of memory. Memory request: 65536 K ..Prepare skeleton geometry Bone: bone001 - Part: 0 ..Split meshes FATAL ERROR [error]Expression : assertion failed [error]Function : I:\xray-svn\editors\ECore\Editor\ExportSkeleton.cpp [error]File : I:\xray-svn\editors\ECore\Editor\ExportSkeleton.cpp [error]Line : 72 [error]Description : P<u16(-1) stack trace: Duplicate face found. Removed. Duplicate face found. Removed. Duplicate face found. Removed. Duplicate face found. Removed. Duplicate face found. Removed. Duplicate face found. Removed. ............. Duplicate face found. Removed. Duplicate face found. Removed. Duplicate face found. Removed. Duplicate face found. Removed. ..Calculate TB Split statistic: - Split 0: [Bones: 1, Links: 1, Faces: 1648, Verts: 2018, BrPart: 0, Shader/Texture: 'models\model'/'belt\brezent_a'] - Split 1: [Bones: 1, Links: 1, Faces: 312, Verts: 584, BrPart: 0, Shader/Texture: 'models\model'/'belt\plast_z'] - Split 2: [Bones: 1, Links: 1, Faces: 312, Verts: 584, BrPart: 0, Shader/Texture: 'models\model'/'belt\plast_k'] - Split 3: [Bones: 1, Links: 1, Faces: 52332, Verts: 70652, BrPart: 0, Shader/Texture: 'models\model'/'belt\stal_k'] - Split 4: [Bones: 1, Links: 1, Faces: 3724, Verts: 4352, BrPart: 0, Shader/Texture: 'models\model'/'belt\brezent_p'] - Split 5: [Bones: 1, Links: 1, Faces: 5248, Verts: 7048, BrPart: 0, Shader/Texture: 'models\model'/'belt\plast_b'] ..Export skeleton geometry ..Export skeleton geometry (Make Progressive...) FATAL ERROR [error]Expression : assertion failed [error]Function : i:\xray-svn\xrcore\_stl_extensions.h [error]File : i:\xray-svn\xrcore\_stl_extensions.h [error]Line : 43 [error]Description : _Pos<size() stack trace: ..Export skeleton geometry (Compute bone bounding volume...) Export complete. ..Export skeleton geometry (Compute bone bounding volume...) Bone 'root' has invalid shape. Bone 'connectbone01' has invalid shape. Bone 'connectbone02' has invalid shape. Export failed. FATAL ERROR [error]Expression : b [error]Function : X:\stalker_addon\sources\engine\xrCore\Xr_ini.cpp [error]File : X:\stalker_addon\sources\engine\xrCore\Xr_ini.cpp [error]Line : 670 [error]Description : name[...] already exist in section[...\x-raysdk(3-cs)\editors\maps\z_test.level] stack trace: FATAL ERROR [error]Expression : assertion failed [error]Function : I:\xray-svn\xr_3da\Environment_misc.cpp [error]File : I:\xray-svn\xr_3da\Environment_misc.cpp [error]Line : 81 [error]Description : !sounds.empty() || !effects.empty() FATAL ERROR Expression : hXRSE_FACTORY Function : I:\xray-svn-trunk\editors\LevelEditor\Edit\ESceneSpawnTools.cpp File : I:\xray-svn-trunk\editors\LevelEditor\Edit\ESceneSpawnTools.cpp Line : 38 Description : Can't load library: Arguments : xrSE_Factory.dll !Level doesn't contain HOM objects! Expression : F Function : I:xray-svn-trunkxrCoreELocatorAPI.cpp File : I:xray-svn-trunkxrCoreELocatorAPI.cpp Line : 63 Description : Can't open file: Arguments : fs.ltx Error: Scene has 80301 non associated face! При использовании любых компиляторов (xrLC, xrDO_Light, xrAI) вылет: Последние строчки в логе: Причина: Все компиляторы X-Ray используют типовую функцию загрузки геометрии уровня - с текстурами и прочим. Так что либо нету используемых на локации thm либо tga-текстур. ================================================================================ Вопрос: У меня выбивает ошибку "Scene must be empty before editing library" при входе в Objects->Library Editor подскажите что делать? Ответ: В главном меню File -> Clear. ================================================================================ Вопрос: В СДК 0.4, 0.5 (0.6) при расстановке объектов они появляются прямо перед камерой в воздухе, и их приходится постоянно спускать на землю. Ответ: Нажмите на верхней панели LE кнопку Object Snap Toggle. ================================================================================ Вопрос: При попытке использования некоторых объектов стандартной библиотеки (например, из набора statics\dead_body\) выдается ошибка о недостающей текстуре. Ответ: Не включенные в SDK текстуры можно найти в распакованных архива игры. Скопируйте нужные в editor\gamedata\textures. ================================================================================ Вопрос: Поставил объект, а на карте после компиляции его нет, что делать? ( Ответ: Такое бывает, если неправильно заданы свойства объекта. Идем в Objects->Library Editor, находим наш объект, например автобусная остановка в objects(не входит в набор сдк), жмем properties и внизу окна есть выбор между surfaces и Main options, выбираем последнее, теперь меняем Object Type с Dynamic на Static. Вот теперь объект должен нормально отображаться, такой баг частенько случается с модельками на сайте lproject, так что имейте ввиду, когда ставите модели оттуда, что нужно иногда исправлять их исходные параметры. FATAL ERROR Expression: BT.pSurface Function: xrLoad File:...xray-svn\xrAI\compiler_load.cpp Line 209 Descr.: Can't load surface 26 supported formats loading: fx\fx_fire.thm; какая-то thm ================================================================================ Ответ: Весь смысл заключается в том, что в СДК оставили много лишнего, т.е. для текстур оставили сгенерированные thumbail-ы, а самих текстур нет. И вроде бы всё просто - нужно просто их добавить, но редактор понимает только *.tga файлы. Нам поможет утилита dds2tga, которая может пакетно преобразовывать dds файлы в tga. Выявляем(смотрим выше в логе компилятора над надписью "FATAL ERROR") все текстуры на которые ругается редактор, далее берём их из распакованной игры и помещаем в папку утилиты dds2tga (рекомендуется сразу положить екзешник dds2tga в папку Import SDK), запускаем CONV_ALL.BAT, в этой же папке появятся файлы *.tga. Копируем их в папку import/(или rawdata/textures/нужная_папка) пакета SDK. Запускаем Level Editor и даём команду images\ check new textures. ================================================================================ Вопрос: Компилятор бессловесно вылетает в середине компиляции! В логе ошибок нет, а последнее, что он просчитывал, приблизительно такого вида: Ответ: У вас проблемы с объектами, либо каких-то из них попросту нет, либо они криво созданны в 3dsmax, либо настроенны неправильно, либо они гдето очень неудачно пересекаются с другими объектами, смотрите как настраивать правильно объекты в level editor в шестом вопросе этого FAQ. ================================================================================ Карта не компилируется. Компилятор слетает с ошибкой: Ответ: Геометрия карты содержит 145 вырожденных треугольников (invalid face'ов). В моделях НЕ должно быть: очень длинных тонких треугольников; потяжек текстур; несвязанных рёбрами вершин. Как это исправить? Импортируем список ошибок, полученный при декомпиляции карты converter'ом, в LE (Compile-->Import Error List), затем подгружаем куски геометрии с подсвеченными полигонами в 3d-редактор и вручную приводим к соответствию вышеуказанным требованиям. Или же просто используем компиляторы с обходом данной ошибки - для SoC и для CS/CoP. ================================================================================ Вылет на стадии дробления геометрии: конец лога... без каких либо Fatal Error... Причина: Как показала практика, причина данной проблемы техническая - недостаточная мощность компьтера. Какая конфигурация должна быть? Чем мощнее - тем лучше. ================================================================================ Причина: не хватает указанного файла .thm. Чтобы решить проблему, берём одноимённую текстуру в формате .dds, конвертируем в .tga и кладём в папку import. Затем в LE или АЕ жмём Images-->Check New Textures. Если видим окно с надписью Found 1 new texture(s), то радуемся и жмём ОК. После этого откроется библиотека текстур. Чаще всего, при импорте текстур из оригинальной игры, настройка не требуется, поэтому жмём ОК. Если же это какая-нибудь новая текстура, тогда настраиваем её по образцу из оригинала. FATAL ERROR [error]Expression : assertion failed [error]Function : b_BuildTexture::Vflip [error]File : d:\xray-svn\xrlc\build.h [error]Line : 30 [error]Description : pSurface * New phase started: Build UV mapping... | | model 'trees\new_trees\trees_sosna_1_02' - REF_lighted. | Processing... | | model 'trees\new_trees\trees_spil_01' - 2 subdivisions | | model 'props\objects\musor\trash_kamaz_fura' - REF_lighted. | | model 'props\objects\musor\trash_lada_lod' - 2 subdivisions | | model 'props\objects\musor\trash_lada_lod' - REF_lighted. | | ::compact:: 248 verts removed | | ::compact:: 377 verts removed | | ::compact:: 70 verts removed | | ::compact:: 67 verts removed | | ::compact:: 72 verts removed | | ::compact:: 108 verts removed | | ::compact:: 102 verts removed | | ::compact:: 15 verts removed | | ::compact:: 38 verts removed Expression : fatal error Function : CBuild::PreOptimize File : D:\xray-svn\xrLC\xrPreOptimize.cpp Line : 132 Description : <no expression> Arguments : * FATAL: 145 invalid faces. Compilation aborted * New phase started: Subdividing geometry... | Subdividing in space... | | ! ERROR: model #178287 - split fail, faces: 4948, s1/s2:20/4928 | | ! ERROR: model #178287 - split fail, faces: 4948, s1/s2:20/4928 | | ! ERROR: model #178287 - split fail, faces: 4948, s1/s2:20/4928 | | ! ERROR: model #178287 - split fail, faces: 4948, s1/s2:20/4928 | | ! ERROR: model #178287 - split fail, faces: 4948, s1/s2:20/4928 | | ! ERROR: model #178287 - split fail, faces: 4948, s1/s2:20/4928 | | ! ERROR: model #178288 - split fail, faces: 5156, s1/s2:5139/17 | | ! ERROR: model #178288 - split fail, faces: 5156, s1/s2:5120/36 FATAL ERROR [error]Expression : THM [error]Function : CBuild::Load [error]File : D:\xray-svn\xrLC\Build_Load.cpp [error]Line : 282 [error]Description : rawdata\textures\corp\corp_stalker.thm ================================================================================ Причина: Причина: где-то на локации очень неудачно расположен space restrictor, который делит АИ-сетку на несвязанные части. Компилируйте с ключом -no_separator_check или же правьте в СДК. ================================================================================ Причина: Много неслинкованных нодов на АИ-сетке. FATAL ERROR [error]Expression : nodes.size() + m_internal.size() == level_graph().header().vertex_count() [error]Function : CSpaceRestrictorWrapper::verify_connectivity [error]File : I:\xray-svn\xrAI\space_restrictor_wrapper.cpp [error]Line : 268 [error]Description : Restrictor separates AI map into several disconnected components [error]Arguments : esc_selo2_sr FATAL ERROR [error]Expression : assertion failed [error]Function : CSpaceRestrictorWrapper::verify_connectivity [error]File : I:\xray-svn\xrAI\space_restrictor_wrapper.cpp [error]Line : 258 [error]Description : nodes.size() + m_internal.size() <= level_graph().header().vertex_count() ================================================================================ Причина: в gamemtl.xr не хватает материала с id = 94. Для разбора файла gmdc в помощь: ================================================================================ Причина: в level.ps_static есть партикл, которого нет в particles.xr. Решения три: -удалить level.ps_static. Будет работать, но пропадут статичные партиклы на карте. -разобрать level.ps_static, удалить партикл. -разобрать particles.xr, добавить партикл. ================================================================================ Причина: all.spawn не соответствует game.graph. Когда компилировали AI, видно, забыли пересобрать спавн. ================================================================================ Причина: game.graph не соответствует кросс-таблице одной из локаций. Скорее всего - забыли закинуть в геймдату level.gct после правки в СДК и компиляции AI. Помните, level.gct нужно обновить для всех локаций, а не только для тех, которые подвергались правке. ================================================================================ Вопрос: Ошибка после запуска игры с новыми левелами: Ответ: -В версии за 10.09.08 аивраппера бардака, если соединять новые левелы, level_changer'ы(переходы между уровнями) нормально не работали, в текущей версии исправлено. -Вы забыли добавить в геймдату файл game.graph. -В спавне указан неуществующий game_vertex_id. ================================================================================ Причина: нет рпонтов для игроков, им негде спавниться. Расставьте в LE. Expression : fatal error Function : CLevel::Load_GameSpecific_CFORM File : E:\stalker\patch_1_0004\xr_3da\xrGame\Level_load.cpp Line : 167 Description : <no expression> Arguments : Game material '94' not found Expression : SG Function : CRender::model_CreateParticles File : E:\stalker\patch_1_0004\xr_3da\xrRender_R1\FStaticRender.cpp Line : 156 Description : Particle effect or group doesn't exist Arguments : hit_fx\hit_water_00 FATAL ERROR [error]Expression : header().graph_guid() == ai().game_graph().header().guid() [error]Function : CALifeSpawnRegistry::load [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\alife_spawn_registry.cpp [error]Line : 167 [error]Description : Spawn doesn't correspond to the graph : REBUILD SPAWN! FATAL ERROR [error]Expression : cross_table().header().game_guid() == game_graph().header().guid() [error]Function : CAI_Space::load [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\ai_space.cpp [error]Line : 121 [error]Description : graph doesn't correspond to the cross table FATAL ERROR [error]Expression : ai().game_graph().header().levels().end() != I [error]Function : CALifeGraphRegistry::setup_current_level [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_graph_registry.cpp [error]Line : 91 [error]Description : Graph point level ID not found! stack trace: FATAL ERROR [error]Expression : rpoints[0].size() [error]Function : game_sv_Deathmatch::Create [error]File : D:\prog_repository\sources\trunk\xrGame\game_sv_deathmatch.cpp [error]Line : 99 [error]Description : rpoints for players not found ================================================================================ Вопрос: Как запустить карту консольно, то есть через батник? Ответ: Для SP-карт это делается следующим образом: @start bin\XR_3DA.exe -start server(%1/single/alife/new) client(localhost) где %1 название общего gamedata\spawns\*.spawn (например, в финалке нужно подставить - all). Для MP-карт: @start bin\XR_3DA.exe -ltx user_net.ltx -start server(%1/deathmatch) client(localhost/name=%2) где %2 - ваш никнэйм в игре. Некоторые другие параметры командной строки можно найти тут. В скобках можно указывать и другие режимы игры: teamdeathmatch и artefacthunt. ================================================================================ Вопрос: Как создать LOD'ы или "Поставил дерево, камень из библиотеки объектов GSC.. не компилит": Ответ: читаем ================================================================================ Вопрос: Где в SDK запрятан редактор ANM-фаилов? Ответ: 1). Создаем новый объект. 2). Задаем ему тип dynamic. 3). Добавляем на карту и отмечаем флаг motionable. 4). Заходим в его свойства и видим редактор anm. ================================================================================ Вопрос: Как именно надо делать модель в 3ds Max, чтоб в сталкере она работала? Ответ: Вот что для этого надо: - 3Ds Max 7,8. (+ SP3 Recommended) - Сутки свободного времени (как минимум) - Крепкие нервы. Условия: - ВСЕ Элементы модели должны быть затекстурены, иначе при экспорте будет ошибка: "Bad Submaterial. Export Failed" - НИКАКИХ групп сглаживания. Иначе в СДК будет ошибка: "Invalid Smooth group! MAX Type" И крэш компилятора. - НИКАКИХ оперпаций типа "Boolean", "ProBoolean", "Connect" и т. п... Чревато ошибкой "Invalid Faces". - НИКАКИХ "потяжек" текстур. Это ещё одна разновидность "Invalid Faces" - Экспортятся только меши, поли, и примитивы. Никаких групп и ассемблов! - X-Ray Materials в максе использовать КРАЙНЕ нежелательно. Плагин глючный, и часто "роняет" макс. Материал "Standart" вполне подойдёт. А шейдеры и прочий хлам - настраивать в Actor Editor. - Чем меньше полигонов в модели - тем лучше. ================================================================================ Вопрос: Какой 3d-редактор является "родным" для Сталкера? Ответ: Однозначно - Maya. ================================================================================ Вопрос: На статике нет детальной текстуры, а в SDK есть! Что делать? Ответ: Чтобы были видны детальные текстуры на драфте, нужно компилировать с параметром Jitter samples 4-medium. ================================================================================ Вопрос: А как прописать детальную текстуру? Ответ: Images-->Check New Textures-->OK. Выбираем нужную текстуру и настраиваем: Type - terrain Details - Use As Diffuse Texture - Выбираем нужную из папки detail Scale - Масштабирование текстуры, например мп атп = 24.5, затон 110 ОK. ================================================================================ Вопрос: После компиляции на максимальных поверхности становятся "гранеными". Что делать? Ответ: Используйте ключ -nosmg. ================================================================================ Вопрос: Гружу анимки stalker_animation.skls в модель нпс. Нажимаю сохранить в оmf, в логе куча ошибок: .......... Invalid Bone Part of motion: 'norm_torso_7_run_1'. Invalid Bone Part of motion: 'norm_torso_6_run_0'. Invalid Bone Part of motion: 'norm_torso_7_run_0'. Invalid Bone Part of motion: 'dmg_norm_run_ls_0'. Invalid Bone Part of motion: 'dmg_norm_run_rs_0'. Export failed. Собственно лекарство: В АЕ грузим модель, потом тыкаем Bone Parts. В появившемся окошке жмем Reset To Default и раскидываем кости по группам как на скрине, Invalid scene! либо скачиваем этот файл и грузим его через Load From. Все! Теперь можно добавлять/удалять анимации в библиотеки .omf без проблем.
  3. Скрытый текст Скрытый текст Это наш обновленный X-Ray Engine SDK, который мы создали специально для проекта Lost Alpha. Многое было добавлено, исправлено и изменено, здесь далеко не полный список изменений. Мы также включили необходимую документацию. Мы включили несколько тестовых сцен, и 4 полных сингл-плеерных уровня с данным SDK. Примечание: многие из вас наверняка используют декомпиляторы уровней, которые создадут 2000+ объектов / maps. Декомпиляторы будут добавлять объекты в каталог rawdata\objects\levels\-levelname - dir. Помните, чтобы переместить ненужные объекты из rawdata\objects\levels dir куда-то еще, до тех пор, пока они необходимы. Никогда не храните слишком много объектов в rawdata\objects dir, или же редакторы будут работать ужасно медленно, что может привести к сбою компиляции. Настоятельно рекомендуется переместить или переименовать весь каталог объектов во время компиляции уровня куда-то в другое место на жестком диске для максимальной стабильности и производительности, поскольку объекты не требуются во время компиляции, так как они все сохранены в вашем уровне, build.prj файл. Примечание 2: если вы новичок в X-ray Engine, убедитесь, что вы много читали, в противном случае Вы не сможете достичь Ваших целей. Это не песочница. Примечание 3: из-за ограничения размера, rawdata\textures пуст. Этот каталог должен содержать необработанные текстуры в формате tga. Raw-текстуры нужны только для компиляции уровня, поэтому если вы хотите компилировать карты с LA SDK, у вас должны быть ваши текстуры в формате tga. Для этого, вы можете найти конвертер от Bardak'a, который может конвертировать текстуры из dds в tga, сохраняя dir структуры. Не стесняйтесь посетить Sdk.stalker-game.com для просмотра дополнительных статей, и Stalkerin.gameru.net для инструментов. Вы можете найти конвертер, о котором упоминалось выше, отсюда Xray.codeplex.com Убедитесь, что вы читали документацию, поставляемую с этим SDK, а также файлы readme в комплекте с инструментами! Вам нужна будет та же версия visual c redistributable, что был в установщике игры(если она установлена, никаких дополнительных действий не требуется). SDK тестировалось только на Windows XP и windows 7 (32-64bit версиях). Скрытый текст ---------------------------------------------- v.2.6 - 01.04.14 (gri, sky) - ВСЕ РЕДАКТОРЫ: новые экраны-заставки - ВСЕ РЕДАКТОРЫ: оптимизация скорости - XRLC: фикс lightmap'ов, фикс утечки памяти v.2.5 - 30.10.13 (sky) - ВСЕ РЕДАКТОРЫ bugfixes: окно bugtrap для sdk - ВСЕ РЕДАКТОРЫ bugfixes: Исправлен баг с импортом некоторых типов файлов на Windows 7 и новее (добавлена проверка текущей ОС, больше ключ -editor не требуется) - ВСЕ РЕДАКТОРЫ bugfixes: добавленная поддержка текущих конфигураций LA - XRAI: Обновлён для текущих конфигов ЛА и правленных классов объектов (для корректного экспорта спавна) v.2.3 - 15.04.13 (sky) - AE bugfixes: Исправлен экспорт анимации, если изменился стиль рендера. - LE bugfixes: Objects->Library->Editor->Make Thumbnail теперь работает - добавлено в AE: Импорт/Экспорт Surfaces моделей (настройки шейдеров, компил шейдеров и материалов) - добавлено в LE: Добавлена кнопка, чтобы показать/скрыть секции спавна с одинаковыми $spawn именами. При показе всех $spawn секций указывается также стандартное имя секции. v.2.2 - 04.02.13 (sky) - LE bugfixes: больше не надо заново заполнять данные профиля, если вы изменили профиль объекта. Все данные сохранятся для нового профиля. - LE bugfixes: Кнопка Random Rotate больше не залипает. v.2.1 - 29.12.12 (sky) - LE bugfixes: Фикс значений кнопки Random Rotate v.2.0 - 15.12.12 (skyloader, griph00n, little lox) - ВСЕ РЕДАКТОРЫ bugfixes: все кнопки/окна, исправлены для windows 7, ключ - editor - ВСЕ РЕДАКТОРЫ bugfixes: фикс Sounds->Synchronize Sounds - ВСЕ РЕДАКТОРЫ bugfixes: погода, изменяющаяся в опциях, теперь работает - ВСЕ РЕДАКТОРЫ bugfixes: фикс расположения thm, теперь в rawdata/textures - AE bugfixes: фикс проигрывания анимаций в режиме Engine Mode и экспорта в omf - AE bugfixes: Clip Maker кажется теперь работает в Engine Mode(нажать на append, затем добавить анимацию посредством drag/drop 'a), - LE bugfixes: Галка enabled теперь работает для всех спавн объектов. Если снять галку, то при экпорте .spawn'а объект туда не экпортируется, а флажок в сдк будет рисоваться красным. - LE bugfixes: Вей поинты теперь можно перемещать по координатам x,y,z в свойствах. - добавлено в AE: Bone Parts->Save to/Load from (ltx) - добавлено в AE: Кнопка "Антивывих суставов" - добавлено в LE: Опция Options->Render->Draw flagshtoks для запрета/разрешения отрисовки флажков на спавн объектах. - добавлено в LE: Кнопка Random Rotate для спавна деревьев - добавлено в LE: Кнопка 'Not for All' для игнорирования последующих объектов, которые не были найдены при загрузке карты. - добавлено в LE: Настройка запрета вывода в лог объектов с разными версиями: Preferences->Objects->Loading->Check version of objects at loading time - добавлено в LE: Работающая галка enabled для вей поинтов, они также могут быть не экспортированы. При снятии галки вей поинты становятся красными. - немного защит, проверок и других исправлений... v.1.1 - фикс версии спавна в LE - обновлён xrsefactory v.1.05 - умри eureka лог, серьёзно, я больше не хочу тебя видеть v.1.04 - исправленная ошибка "фокуса", теперь больше нет ошибки при изменении карты при очистке в свойствах - больше не надо изменять fsfactory.ltx в бинарниках, используйте как эсть - позволены большие имена waypoint - немного защит, проверок и других исправлений... v.1.03 OpenAL32.dll как MFC статическая библиотека, добавил designide60.bpl. v.1.02 Добавленные недостающие корректные версии elpackB6.bpl, elpkdbB6.bpl, elpproB6.bpl. v.1.01 Пересобрано под Windows XP, теперь полностью совместимо. v.1.00 Начальный выпуск для Windows 7. Скрытый текст - Можно ли использовать ЛАшный СДК для создания модов для ТЧ? ОТВЕТ: ДА, НО кроме анимаций. Экспорт анимаций, насколько я помню, автоматически определяет, в скольки битную систему экспортировать, в 8 или 16, без всяких галок (он пишет об этом в логе). Насчет поддержки таких анимаций в ТЧ не знаю. © SkyLoader Чтобы запустить ЛА-СДК со своими ресурсами НУЖНО: выпилить ресурсы LA(gamedata), а также в оригинальном от ТЧ environment.ltx сделать так: #include "rain.ltx" и перенести из конфигов ЛА rain.ltx И заменить XrAI на ТЧшный, т.к. локации скомпиленные XRAI от ЛА, под ТЧ работать не будут! -Валится с логом 0xc0150002 при запуске. Что делать? ОТВЕТ: Скачайте это Скрытый текст Скачать: Lost Alpha SDK 2.6 beta Скрытый текст Это собранный из исходников SDK-0.4, в котором имеются десятки исправлений и улучшений. Скрытый текст Для всех редакторов включена поддержка LARGEADDRESSAWARE \editors\name_editor\name_editor.bpr, ... LFLAGS ... -GF:LARGEADDRESSAWARE Исправлены диалоговые окна в редакторах под win7 / win10 Поправлен экспорт DM (AE) При экспорте дописывать в лог имя модели / анимации (AE) Отключение оптимизации скелетных мешей (AE) Теперь при изменении параметров костей обновляются только свойства, список не обновляется, дабы не сворачивались кости ниже выделенной (AE) Загрузка / сохранение списка костей в bone parts (AE) Поддержка drag'n'drop в АЕ Флаг force 16bit motion (editor preferences > tools > motion export) Не переименовать звуки в ~name.ogg при синхронизации fixed image editor Писать имя surface в лог, если назначены несовместимые шейдеры Сохранять build_details.dds как DXT3 Увеличение максимального размера build_details.dds до 4096x4096 Увеличение максимального размера level_lods.dds до 4096x4096 Исправлена ошибка, если выбрать <none> при выборе группы THM для групп теперь сохраняются в папку groups, а не в objects Замена простого сообщения в лог на окошко с ошибкой, при попытке добавить неправильный детальный объект Возможность регулировать дисперсию солнца в настройках сцены, чтобы заработали мягкие тени Скрытый текст Дефолтный sun dispersion: 3 (влияет только на тени на р1) слева направо: 3,15,30,60,120 (на мой взгляд, оптимально что-то между 6-9) Сверх качество хемисферы в настройках сцены (hemisphere quality: 4) Скрытый текст р1, хеми-качество, слева направо: 3, 4 (в оконных проёмах хеми-статик 3м) р2 Правка ошибки при нажатии на пустоту в режиме Attach Object Защита от пустых параметров $spawn, они иногда могут привести к ошибкам Показывать имя файла объекта в сообщении, если тот не найден Число одновременно добавляемых объектов (до 1024, в списках, где надо ставить галки) для детальных объектов в object list - 100 Снятние ограничени на количество валлмарков Текстовый редактор для снап-листа Не очищать snap list при выполнении Clear AI Map Отдельная кнопка для экспорта level.snd_env Форму со списком детальных объектов теперь можно растягивать в ширину, также можно регулировать ширину левой и правой её части. Высота элементов из списка регулируется колёсиком мышки. Сообщение вместо окна с ошибкой, при отсутствующем ANM в поле Motion (zones, heli) Окно с ошибкой при неверной спаун-секции LE при построении уровня (Compile->Build) не удаляет маленькие полигоны Отключение оптимизации объектов при загрузке Теперь масштаб объекта учитывается при проверке invalid faces Увеличена точность позиционирования объектов до 4 знаков после запятой. (AE, LE) Правка генератора разбиваемых стёкол Автофокусировка на некоторые окошки со списками Раскрывать весь свиток (список костей и т.п.) по клику с зажатой клавишей ctrl Правка ошибки в случае установки в ноль количества запоминаемых последних файлов (recent count) В режиме вращение объектов добавлено фиксированное вращение (90 градусов) с зажатым ctrl Сохранение вращения при перемещении объекта с привязкой Normal Aligment (from cop src) Убраны сообщения, типа Please notify AlexMX... Увеличен лимит по скорости (до 1000) в редакторах Увеличен лимит pixel per meter (до 100) в настройках сцены Не выводить окошко с подтверждением после создания sky small Cохранять параметр Depth Tolerance (box pick in LE settings) Флажок вкл / выкл для отрисовки нод при генерации ИИ-сетки (при выкл, процесс идёт быстрей) (у себя ускорения не заметил) Продолжать проигрывать анимацию частиц после изменения параметров, если была нажата кнопка Play (PE) Более позиция выделения в Object List не сбрасывается (LE) Разблокирована опция hemisphere control (по-умолчанию всегда hemi) (для ценителей статики) Скрытый текст hemisphere control: static, hemi, sun (слева направо) Добавлены ключи для запуска редакторов: -no_warn_fv (отключает сообщения в логе: CSceneObject: 'file_name' different file version!) -no_warn_ft (отключает сообщения в логе: Can't find texture 'texture_name') Скрытый текст Установить оригинальный сдк 0.4 -> из архива скопировать папку bins и батники для запуска, в папку СДК (\level_editor) Скачать: Яндекс / Google Открытый репозиторий: https://bitbucket.org/Yar0s1av/xray_stalker_sdk_04_fixed/src/master/ Скрытый текст Обновление для сдк (уже включает предыдущий патч) + пара мелких правок: Ссылка - Возможность одновременно запускать два и более LE (как и остальные). - Перенесена (из ЗП-сдк) функция удаления схожих порталов в LE (remove similar). Работает не на 100% (3-й скрин), но значительно облегчает с зачисткой лишних порталов (2-й скрин, выделено белым). Содержит зп-текстуры (dds/tga + thm + textures.ltx) под тч. Три десятка карт с различными правками + сцены в майе. Всякое для этого сдк: ссылка Скрытый текст Скрытый текст В xrAI увеличено количество проц. потоков при компиляции аи-сетки с 3 до 8. Ключи: "-? or -h == this help \n" "-draft -f <level_name> == fast compile AI-map without covers \n" "-verify <level_name> == verify AI-map \n" "-f <level_name> == compile AI-map with covers in gamedata/levels/<level_name>/ \n" "-g <level_name> == build offline AI graph and cross-table to AI-map in gamedata/levels/<level_name>/ \n" "-m (-m <level_name>) == merge level graphs \n" "-s (-s <level_name>) == build game spawn data \n" "-no_separator_check == skip check grid overlapping with restrictor shapes \n" "-silent == suppress congratulation message \n" "\n" "NOTE: Последний ключ необходим для любой функциональности\n"; Ссылка: XrAI от Yara.rar Скрытый текст Для LE сделано сохранение групп сглаживания при билде карты. Чтобы получить норм. сглаживание, нужно использовать объекты с типом сглаживания ЧН / ЗП (задаётся в плагине для майки при экспорте), иначе будут проблемы с освещением полигонов (или использовать ключ -nosmg, чтобы включить ТЧ-вариант). + Собран ЗП-xrLC для ТЧ: а) Чтение thm из rawdata б) ТЧ-порядок каналов у лайтмап (в ргб - хеми, альфа - солнце) в) Доп.ключи запуска (с https://github.com/abramcumner/xray15 / 16): (-h для просмотра всех ключей) -nolmaps - компил без лайтмапов -lmap_quality число - качество лайтмапов -lmap_rgba - использовать формат RGBA (без сжатия) для лайтмапов -skip_aht_tess - пропустить шаг Adaptive HT Tesselating -skip_inv_face - сообщение, вместо вылета, о наличии "неправильных" полигонов -skip_ter_imlc - пропустить компил лайтмапа для террейна Yandex/Google Это опционально и требует некоторой обработки тч-геометрии в 3д редакторе. Скрытый текст ТЧ вариант (мост с мп-складов): ЗП вариант: Варианты с софт / хард при экспорте С ключом -skip_aht_tess Без ключа -skip_aht_tess Скрытый текст @hi_flyer: Собрал свой вариант х64 (ТЧ) компиляторов xrLC и xrDO. xrDO использует до 8 потоков, xrLC до 11 потоков на стадии просчета лайтмапов, на процессорах с количеством потоков < 11 может работать медленнее. Также в наличии для xrLC новые ключи на отключение просчета лайтмапа террейна, источников света hemi и sun Если кому интересно, результаты тестов, в том числе в сравнении с другими компиляторами приветствуются. @macron: Небольшое обновление х64 (ТЧ) компиляторов: -добавлена инструкция. -xrLC: исправлен двойной вывод ошибок о ненайденных файлах в лог. Ошибки выделяются пустыми строчками. Ссылка: compiler_flyer64_updated_v1.7z Скрытый текст converter 0.2.1 от @abramcumner Ссылка: abramcumner / xray_re-tools Скрытый текст Для тех кому лень собирать самому. Все перечисленное выше собрано вместе. Все, что вам необходимо - это распакованная gamedata: Найти можно здесь. - поместить в папку level_editor с заменой файлов. Прописать свои пути в файлах. Конвертер: X-Ray_SoC_SDK_Yara\level_editor\abramcumner converter_0.2.1\fsconverter.ltx X-Ray_SoC_SDK_Yara\level_editor\abramcumner converter_0.2.1\converter.ini х64 Компилятор от hi_flyer: X-Ray_SoC_SDK_Yara\level_editor\bins\compiler_flyer_2020\fsgame.ltx Для строк: $sdk_root$ и $game_textures$ Ссылка: X-Ray_SoC_SDK_Yara Дополнение, добавляющее обработку сглаживания при билде лок, добавленно отдельным архивом. Скрытый текст Скрытый текст Итак, представляю на всеобщее обозрение SDK, собранный из оригинальных исходников с максимальным сохранением всех компонентов. Собраны были LE и AE (надо будет остальные - посмотрю на досуге). Я сделал полностью отладочную сборку, чтобы ошибок было как можно больше. Это значит, что появляющиеся ошибки чаще всего можно будет пропустить, нажав на кнопку "продолжить". Люди, которые захотят попробовать, должны понимать: я тестировал, однако все ошибки отловить не смогу при всём желании - банально не хватает времени. Это же и относится к правкам и фиксам - если будет время, то я обязательно посмотрю. Работа забирает вообще всё время. Также, признаюсь честно, я тестировал на чистых локациях, то есть сделанных мною самим - декомпилированные локации я не открывал, так что ошибки возможны. Тестировал в основном работу механизмов, к примеру спавн особо сильно не проверял - добавляются объекты на карту точно, а вот как дела с путями и тд - неизвестно. Ну и прочие мелочи. Собранный SDK использует только оригинальные либы GUI. Тестировал на 8 компьютерах с Win10 x64 и на одном с Win7 x64. Скрытый текст 1) исправлен вылет nodefault reached на win 8/10 2) удален rt_object_props.ltx 3) исправлен limit 32 items for multiply add objects (256 items) 4) размер lod - текстуры - 8192 х 8192 5) вывод координат до 100000, и до сотых - при редактировании позиции объекта в LE 6) исправлен баг, когда трава отказывалась отрисовываться 7) x64 8) диалоговые окна конечно 9) debug 10) корректное сохранение и загрузка dti (индексы + модели травы, файл) 11) вывод списка thm с указанием проблемной при вылете (Pos<=Size) && (Pos>=0) 12) переименование материалов в AE и LE 13) вывод настроек камеры в быстрые настройки le(по enter) 14) возможно etc Скрытый текст Устанавливается просто - копируйте папку bin в Ваш SDK, и батники в папку editors. Запуск с батников, всё по стандарту. Если у вас сыпятся ошибки с просьбой доложить dll DirectX, Распространяемых пакетов VC++ или OpenAL - в скачанном архиве есть папка tools, там есть всё необходимое. Скрытый текст X-Ray SDK 0.7 x64 от range Скрытый текст Скрытый текст Изменения - Изменен путь к конфигам редакторов, теперь они хранятся в $sdk_configs$ Исправления - Исправлен детект fs.ltx/fsgame.ltx (не детектились, если находились больше чем на один уровень ниже) - Исправлен баг со сбросом части конфига редакторов в папку WINDOWS - Исправлены диалоговые окна в редакторах под Vista и выше - Поправлены табы на панели Tools в SE Нюансы работы - В файле fs.ltx обязательно должен быть прописан параметр $sdk_configs$ и НЕ должно быть параметра $fs_root$ (иначе будет вылетать при запуске) - Для корректной работы окон загрузки файлов, в батниках редакторов должен быть прописан ключ -editor - Во избежание вылетов связанных со звуком, в батниках редакторов рекомендуется прописать ключ -dsound Скачать Скрытый текст Апдейт 1 - Исправляет критический баг в xrCore - Возврашает сжатие в xrCompress Скачать Апдейт 2 (xrCompress Fix) - Максимальный размер архива ~1.9 ГБ. - Запретил сжатие level.geomx Для тех, кто хочет паковать меньшими архивами, используем ключик -max_size. Размер указывать в МБ. Больше макс размера (~1.9 ГБ) указать нельзя. Скачать WW-версия компрессора Апдейт 3 (от Rastaman_vip74) - Отключает оптимизацию мешей скелетных моделей при экспорте в ogf в AE Скачать Апдейт 4 (от RayTwitty aka Shadows) - Исправлено падение при построении уровня на стадии "Merge LOD textures" (размер максимальной текстуры увеличен с 2048 до 4096) - Снято ограничение на количество воллмарков на уровне (увеличено с 500 до 5000) Скачать Ссылка на папку с SDK и всеми апдейтами Скрытый текст X-Ray SDK 0.4 от @YURSHAT Repack С правками от @RayTwitty aka Shadows и @Rastaman_vip74 (на основе фиксов @KD87) Изменения - Изменен путь к конфигам редакторов, теперь они хранятся в $sdk_configs$ - Отключена оптимизация мешей скелетных моделей при экспорте в ogf (аналогично флажку HQ Geometry в AE 0.7) - Снято ограничение на количество воллмарков на уровне в LE (увеличено с 500 до 5000) Исправления - Исправлен детект fs.ltx/fsgame.ltx (не детектились, если находились больше, чем на один уровень ниже) - Исправлен баг со сбросом части конфига редакторов в папку WINDOWS - Исправлены диалоговые окна в редакторах под Vista и выше - Поправлены табы на панели Tools в SE - Исправлено падение LE при построении уровня на стадии "Merge LOD textures" (размер максимальной текстуры увеличен с 2048 до 4096) xrCompress - Возвращено сжатие - Максимальный размер архива установлен в ~1.9 ГБ - Запрещено сжатие level.geomx - WW-версия компрессора Для указания размера архива, необходимо использовать ключ -max_size, который задает размер в МБ. Особенности репака: - Удалены файлы, которые не связаны с SDK или дублировали оригинальный дистрибутив - В командную строку редакторов прописан ключ -dsound, во избежание проблем со звуковой системой - Включены все обновления, которые есть на текущий момент Скачать Скрытый текст Ссылка: архивы Source Code: github Discord Сервер: ссылка Платформа: Windows (x32,x64) Описание: Это перенос и небольшая модернизация классического комплекта редакторов 0.7 из очень старого Борланда на Visual Studio. Множество проблем классической редактора было связаны с устаревшей средой разработки, которая не давала возможности модернизации. За оболочку UI был взят imgui, как самое просто ui, позволяющее создавать простые формы одной строчкой кода. Перенесены все 4 редактора. Важно! На данный момент (24.01.2021) нестабилен. Использовать на свой страх и риск. Скрытый текст - x64, думаю многие столкнулись с тем что LE уходит за пределы 4 Гб - Скорость работы выросла в ~10 раз - Докинг окон - Количество костей увеличено до 223 - Добавлена эмуляция игровой физики в ActorEditor http://f26.ifotki.info/thumb/1160248ec9b2703a6c45c9337410a0214f8793387846854.png - Возможность создавать LOD объекты в ActorEditor - Возможность создавать THM в ActorEditor - Выделение surface'ов как в LibraryEditor в ActorEditor http://f26.ifotki.info/thumb/134c4393f30fbf2ea7ac8bdf868022934f8793387846934.png - Теперь можно импортировать DDS текстуры не только в TGA - Добавлены шейдеры для террейна - Высчитывание костей теперь на GPU (пока только для ogf) - Поддержка современных форматов сжатия текстур (BC6, BC7) http://f26.ifotki.info/thumb/28b1eeba014b6ad054595074dd9a8c0d4f8793387847001.png - Добавлена дистанция рендера объектов http://f26.ifotki.info/thumb/fa2be230645e004e6562960853c8aeb64f8793387847076.png - Теперь можно ставить уникальные материалы для объектов в LE (не нужно плодить модели в AE, когда необходимо поменять одну текстуру) http://f26.ifotki.info/thumb/c6b5dcf308c012bdd00fc15676ae83a44f8793387847117.png - Detail Object теперь билдится в DTX5 - Возможность запускать несколько редакторов одновременно - Увеличение количества добавляемых объектов в Multiple Append до 512 - Добавлен предварительный просмотр для Object Tool http://f26.ifotki.info/thumb/085a25b7a0261bbb55429050efa635c24f8793387847184.png - Убрана фиксирование окон (Choose и Detail Object List) - многое другое Скрытый текст Скрытый текст Из отличий: 1. Хардварный скиннинг 2. Возможность загружать сразу все текстуры уровня 3. borlndmm, который позволяют использовать ещё больше оперативки (у оригинально где-то с 2 гб начинались AV и прочие бяки) ну и далее по мелочи. Формат ai_map.part и build.aimap тут другой, следовательно xrAI тоже другой. Он есть в комплекте с билдом. Используется одна библиотека из Wine, скачивая это вы соглашаетесь с лицензией GNU LGPL 2.1. Скрытый текст Нововведения: Немного переделан интерфейс: меню убрано с правой панели и сделано вертикальным. Тулбар сделан горизонтальным. Снап-лист теперь можно редактировать вручную как текст Хардварный скиннинг в редакторах (ключ -hw_skin) Возможность менять цвет сообщений в логе и цвета в текстовом редакторе Кнопки для управления анимациями в smart_cover'ах Кубический env-mod (будет работать только с Abramcumner Engine) Env-mod'ы теперь влияют на погоду в LE Правую панельку можно растягивать во всех редакторах Размер ноды АИ-сетки можно изменять Позицию камеры можно задавать по дабл-клику на нижней панельке Возможность загружать сразу все текстуры (меню Device->Deferred texture loading), будет работать только с выключенным deferred loading RB в настройках В LE можно симулировать Sound Occlusion Model (SOM). Обновляется при Make Sound Occluder или через меню. Добавлен звук капель дождя долбящих по крыше (металлической). Даже в игре такого нет! Ключ -hq для LE. Включает правильную генерацию нормалей. Полноэкранный режим во всех редакторах Поворот на 90 градусов с зажатым Ctrl Опция Duplicate в меню, аналог Copy и последующего Paste Возможность запускать компиляторы/игру прямо из меню ЛЕ (удобно для тестирования), команды настраиваются в опцях сцены Возможность перемещать объекты с клавиатуры цифрами 4,6,2,8,3,9 или с нумпада со включенным Num Lock. Перемещаются по осям камеры, т.е. на четыре объект всегда перемещается влево, не зависимо от кого с какой стороны на него смотришь. Изменения: Удалён rt_object_props, теперь флаги объектов пишутся в файлы уровня (как было в ТЧшном СДК) Снято ограничение на количество валлмарков Редакторы больше не хранят конфиги в папке WINDOWS LevelEditor не удаляет полигоны с площадью меньше 0.00001 (теперь удаляет только с 0.000001) Кнопка Clear AI-Map теперь не чистит снап-лист Для всех редакторов включен LARGEADDRESSAWARE и borlandmm переделан на использование аллокатора из Winapi. Теперь редакторы могут использовать больше 2 ГБ памяти. Отключена оптимизация скелетных мешей в AE LE теперь дописывает префикс уровня для спаун-елементов под группой Увеличена точность чисел при изменении позиции или масштаба чего-либо до 4 знаков после запятой и до двух при изменении поворота AE при экпорте пишет в лог имя модели Редакторы теперь используют новый вистовский диалог при открытии/сохранении файлов Объекты после вставки или загрузки Open Selection будут выделены (как было в ТЧшном СДК) Галочка для отключения отрисовки АИ-сетки при её генерации Форму со списком детальных объектов можно растягивать В LE трава освещается солнцем Image Editor угадывает имя бампа при добавлении текстур build_detais.dds сохраняется с сжатием DXT3 вместо DXT1 Вес материала текстуры можно устанавливать от 0 до 100 Валлмарки с шейдером wallmarkmult теперь выглядят так же как в игре AE теперь пишет проблемные кости при неправильных bone part'ах Восстановлена блокировка объектов из ТЧшного СДК Более вменяемая подсветка групп объемного тумана Профиль объемного тумана теперь выбирается из списка, а не вводится вручную Оптимизированна отрисовка анимаций объектов в ЛЕ Путь анимации у выделенного объекта рендерится даже если объект не видно Выделение объектов не снимается при Multiple Append и добавленные объекты не выделяются По Multiple Append Теперь можно добавлять до 1024 объектов (было 32) Убрано сообщение о удачном создании thumbnail'а и смоллская Отключена оптимизация объектов при загрузке в ЛЕ. Если надо открываем и пересохраняем в AE. кол-во вертексов после такой оптимизации становится даже больше. LE теперь ругается если у модели используются шейдеры для ЛОДов, но тип Static. Particle Editor не останавливает партикл после изменения параметров Particle Editor не выводит сообщение о успешной валидации при сохранении Камера во Free Fly режиме с нажатым Ctrl ходит только по объекта из снаплиста в ЛЕ Для камеры в этом режиме добавлена отдельная настройка скорости Если объект не найден в сообщении указывается его имя В режиме Light добавлены галочки для использования положения солнца из конфигов и использования цвета хеми вместо амбиента Исправления: Починен экспорт .dm файлов из ActorEditor ActorEditor больше не вылетает если переключить в режим Engine модель использующую отсутствующий .omf файл Исправлено сохранение некоторых параметров из опций (Depth Tolerance, например) Исправлена ошибка при попытке изменить profile у спаун-элемента в LE Исправлен AV при открытии несуществующего файла из Recent files LE больше не вылетает если на уровне есть спаун-елемент с неверным именем секции Исправлена кнопка Export LWO в редакторе библиотеки LE теперь сохраняет параметры погоды From Time|To Time Исправлена ошибка при смене профиля с визуалом на профиль без визуала у спаун-елемента в LE. Исправлено сохранение .dti файлов (раньше изменения не всегда сохранялись) Исправлена кнопка Remove texture в Image Editor'е Переделан способ подсчёта выделенных нод АИ-сетки, теперь ФПС в режиме её редактирования не падает ниже плинтуса Теперь можно использовать точки в именах папок с объектами LE теперь спрашивает замену для всех не найденных моделей, а не только для первой Исправлена кнопка сворачивания панели в режиме Fog Volumes Убран AV при нажатии на пустоту в режиме Attach Object Исправлен сброс флага flDisbaled у некоторых параметров(например у источников звука) Исправлена мерцающая без флага Real Time трава Номер билда в логе теперь показывается Исправлено странное поведение погоды если время оказывалось вне диапазона. Скрытый текст Актуальный билд доступен в загрузках: ссылка Репозиторий: ссылка Название архива в формате build_дата-тег1-тег2-... На данный момент есть следующие теги: newui - переделанный интерфейс (горизонтальное меню, вертикальный тулбар). Билды с обычным UI больше не выпускаются. sse2 - версия для Андрея Холкина aka Дизеля aka @Expropriator не использует новых инструкций процессора и может быть запущена, например, на Celeron D 335. _____________________ Распаковать архив и скопировать содержимое папки build_public в папку editors установленного X-Ray SDK 0.6. Установка с нуля выглядит следующим образом: Установить SDK 0.5 Установить поверх него апгрейд до SDK 0.6 Установить поверх СДК из этой темы Скрытый текст Чтобы заработал EAX Чтобы заработали зоны звуковых эффектов в LE нужно установить OpenAL (oalinst.exe) и удалить файл wrap_oal.dll. Билд версии с ImGui build_28_11_2019_imgui.7z.zip (8,5 мегабайт) Скрытый текст Скрытый текст - Изменен путь к конфигурациям редакторов, теперь они хранятся в $sdk_configs$ - Отключена оптимизация meshes скелетных моделей при экспорте в ogf (аналогично флажку HQ Geometry в AE 0.7) - Снято ограничение на количество воллмарков на уровне в LE (увеличено с 500 до 5000) - Добавлен лаунчер для быстрого доступа к основным функциям - Для полной совместимости добавлены оригинальные редакторы от GSC - Добавлены thm файлы для всех текстур из оригинальной игры - Удалены файлы, которые не связаны с SDK или дублировали оригинальный дистрибутив - SDK совмещен с игрой , можно сразу же протестировать работу в игре - Добавлены все ресурсы игры - Добавлены компиляторы: стандартный xrlc , ускоренный xrlc , xrlc с обходом invalid face , стандартный xrdo_light - Добавлена фейковая лестница (fake_ladders) - Исправлен вылет при сохранении скриншотов из игры - В командную строку редакторов прописан ключ -dsound, во избежание проблем со звуковой системой - Добавлена возможность создания thm файлов из dds - Добавлена возможность удаления dds файлов , из которых сгенерировались thm текстуры - Добавлены новые загрузочные заставки и иконки для всех редакторов - Добавлена программа для работы с xdb0 файлами - Добавлена последняя версия конвертера для декомпиляции уровней в формат сдк - Добавлено автоматическое запоминание последней скомпилированной карты - Добавлено автоматическое переименование папки rawdata\objects в rawdata\objects1 для ускорения компиляции и избежания вылета если в папке более 7 тысяч файлов - Добавлена возможность монтировать диск X одной кнопкой - Исправлен критический баг в xrcore - Включены все обновления, которые есть на текущий момент - Исправлен детект fs.ltx/fsgame.ltx (не определяллись, если находились больше, чем на один уровень ниже) - Исправлен баг со сбросом части конфигураций редакторов в папку WINDOWS - Исправлены диалоговые окна в редакторах под Vista и выше - Поправлены табы на панели Tools в SE - Исправлено падение LE при построении уровня на стадии "Merge LOD textures" (размер максимальной текстуры увеличен с 2048 до 4096) data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== Скрытый текст data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== Скрытый текст Работоспособность проверена на Win7 x64 и Win10 x64. Яндекс data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== Скрытый текст Исходники движка и конфигуратора OGSR, где вся информация находится в instructions.txt. Благодарность за помощь в сборе информации для оформления - @HellRatz, @WolfHeart, @range, @RayTwitty, @Опричник, Молния в вакууме
  4. Graff46

    GUI for X-Ray SDK

    Графическая оболочка для быстрого вызова Actor Editor, Level Editor, и компиляторов для выбранных локаций. Данная программа тестировалась на X-Ray SDK 0.7 RePack by DaaGuda V2. Для работы с программой нужно настроить её конфиг - guiconf.ini Скрытый текст Конфиг выполнен в виде *.ini файла. Настройка распределены по секциям. Секции: [paths] - Содержит пути до нужных расположений, его нужно настраивать под себя обязательно. sdk - Путь до папки с бинарниками Actor Editor, Level Editor comp - Путь до компиляторов lvls - Путь до файла с описанием локаций (game_levels.ltx). Остальные секции содержат параметры для разных режимов компиляции локаций [loc] компиляция локации основная [aimap] компиляция АИ сетки [spawn] компиляция спавна [detail] компиляция травы Скрытый текст В верхней части интерфейса программы находятся 2 кнопки LE и AE запускающие Level editor и Actor editor соответственно. В списке ниже появляются локации прописанные в конфигах СДК, при выборе локации разблокируются кнопки в нижней части интерфейса программы для операций над локацией. Отдельно следует сказать про сборку спавна: При нажатии на кнопку "Spawn" появится окно с 2-мя списками (вверху и внизу). В верхнем списке находятся доступные локации, а в нижнем локации для которых будет собираться спавн. Для того чтобы добавить локацию в нижний список - в верхнем списке сделайте двойной клик на элементе списка с именем нужной локации, соответственно для того чтобы убрать локацию из нижнего списка - сделайте двойной клик на элементе списка с именем нужной локации. После того как локации выбраны - нужно нажать кнопку "ОК". Нужно быть внимательным при добавлении локаций в список для компиляции спавна (нижний список) т. к. программа не обрабатывает случай когда одна локация добавилась несколько раз. Для редактирования исходников программы нужен HiAsm GitHub
  5. Подключение ранее перенесенных локаций к "Сталкеру" в SDK Метод подойдет к абсолютно любой версии игры. Скачать шпаргалку здесь Итак, заметил, что многие прибегают к непонятным телодвижениям по решению этого вопроса с AI Wrapper(ом). Внимание! Локация уже должна быть играбильна/перенесена на вашу версию игры (ТЧ в нашем случае). Для примера разберем подключение к ТЧ (информация взята из файла которым можете скачать выше). 1. Находим нужные нам уровни, подойдут из других модификаций на ТЧ, а также перенесенные сингл локации “одиночки”. 2. Добавляем их в редактор (СДК) и переводим в формат СДК ЛЕ. Как настроить converter много где уже описано. Допустим сделали, у меня в батнике получился такой список: Скрытый текст converter -level marsh -out marsh_de -mode le converter -level zaton -out zaton_de -mode le converter -level pripyat -out pripyat_de -mode le converter -level jupiter -out jupiter_de -mode le converter -level l10_radar -out l10_radar_de -mode le converter -level l07_military -out l07_military_de -mode le converter -level l05_bar -out l05_bar_de -mode le converter -level l06_rostok -out l06_rostok_de -mode le converter -level aver -out aver_de -mode le converter -level puzir -out puzir_de -mode le converter -level av_peshera -out av_peshera_de -mode le converter -level peshera -out peshera_de -mode le pause 3. Отредактируем наши файлы game_maps_single.ltx, game_levels.ltx и game_graphs.ltx согласно списку наших локаций 4. Далее редактируем сами локации в СДК. Открываем наши уровни, по очереди, редактируя их оригинальный спавн. На нашей локации в редакторе делаем так: переходим в спавн локации, переходим в список нашего спавна. Выделяем все граф.поинты, и жмем на их свойства... Если увидим в Location 1 "mixed" или “…”, то меняем это на имя своей локации (возьмется из файла game_graphs.ltx). В параметре Connection также нечего не должно быть. Если будет слово миксед то нужно найти этот граф и удалить/заменить его. Скрытый текст Чутку отступлю, зачем нам файл game_graphs.ltx? Если мы захотим настроить маску для определенного монстра или группировки и при этом автор подключенных локаций, кругом, в свои граф_поинты ставил “…” (общий граф) то у нас чего не выйдет. Если локация будет иметь свои собственные графы, проблем с маской потом не возникнет. Делаем АИ переходы/настраиваем переходы по графам примерно таким образом: На Болоте делаю: Имя: exit_bol_2, ссылка на уровень: l03_agroprom ссылка на граф: exit_agr_1 А на Агропроме тоже самое, но на Болота: Имя графа: exit_agr_1 Имя локи: l14_marsh Имя графа: exit_bol_2 Важно! Не забываем нажимать после окончания редактирования Make Game на каждой нашей локации!! 1. Запускаем наш батник по сборке level.graph для каждой локации. У меня он выглядит так: Скрытый текст @start bins\compiler_ai\xrAI.exe -g marsh @start bins\compiler_ai\xrAI.exe -g zaton @start bins\compiler_ai\xrAI.exe -g jupiter @start bins\compiler_ai\xrAI.exe -g pripyat @start bins\compiler_ai\xrAI.exe -g l03_agroprom @start bins\compiler_ai\xrAI.exe -g l04_darkvalley @start bins\compiler_ai\xrAI.exe -g l05_bar @start bins\compiler_ai\xrAI.exe -g l06_rostok @start bins\compiler_ai\xrAI.exe -g l07_military @start bins\compiler_ai\xrAI.exe -g l08_yantar @start bins\compiler_ai\xrAI.exe -g aver @start bins\compiler_ai\xrAI.exe -g puzir @start bins\compiler_ai\xrAI.exe -g av_peshera @start bins\compiler_ai\xrAI.exe -g peshera Pause Если везде нас “поздравляют”, можно переходить к сбору глобального game.graph(а) Для этого запускаем наш батник (команда @start bins\compiler_ai\xrAI.exe -m) Должно везде быть VALID. Если видите INVALID, то где-то ошиблись – пересмотрите ту локацию, и сделайте для нее снова Make Game. Повторите для этой локации сборку level.graph(а) После этого повторите сборку game.graph(а), и так пока вас не “поздравят”. Если вдруг поменяете имя графов, то пересобрать нужно будет не только локацию где меняли имена, а и те на которые есть АИ переходы. Итак. У нас есть уже game.graph. Собираем all.spawn Запускаем соответствующий батник для сборки (команда @start bins\compiler_ai\xrAI.exe -no_separator_check -s). После поздравления у нас все готово для переноса правленых файлов в игру. В конфиги переносим свои: game_maps_single.ltх, game_levels.ltx и game_graphs.ltx В стандартные/оригинальные уровни кидаем файлы: level.game, level.gct, level.graph, level.spawn. Добавленные локации к игре, кидаем полностью. Еще не забудем про сам алл.спавн, (скорей всего и shaders.xr, вы поймете сами нужно ли его было редактировать из-за добавленных локаций, я этот вопрос пропустил, думаю, там все и так ясно). Копируем нужные нам текстуры, я это делаю с помощью Texture Copier, список беру из подгружаемых текстур в СДК. Если террейн будет “плыть”, то пропишите текстуру в textures.ltx. P.S.: По поводу масок можно почитать тут, этот вопрос, по моему, разобрали вполне. Cпасибо @D1mon за наВодку. Настроенная сборка СДК (на XP) + инструменты всякие: https://yadi.sk/d/Mzjusk7dPrsV5/X-Ray SDK_04 pack
  6. AI-Map в X-Ray: теория, практика, ошибки Статья по возможности расскажет о том, что такое Аи-Карта, как ее правильно сгенерировать, как скорректировать до рабочего состояния. Больше рассчитана на людей, которые более-менее знакомы с СДК, но все равно старался писать максимально подробно. 1. Теория 1.1 Что такое AI-Map? АИ-Карта - площадь на уровне, заполненная аи-узлами (нодами), контролирующие или ограничивающие перемещение НПС/Мутантов (Далее - боты) по уровню. В сталкере существует два типа сущности: либо что-то онлайн, либо оффлайн. Онлайн обычно ограничивается видимостью вокруг ГГ (В оригинале 150 метров). В онлайне боты перемещаются по аи-карте, в оффлайне же они перемещаются по точкам - графпоинтам. Когда моб попадает в видимость ГГ, он переходит из оффлайна в онлайн - это те самые моменты, когда игра зависает иногда на несколько секунд и движок переключает объекты из оффлайн в онлайн. Аи-карта должна быть цельной, не имеющая разрывы между нодами. Рис. 1 - Аи-карта в СДК (Редактор уровней для игры) На картинке видно, как аи-сетка огибает статические объекты. Это не ошибка редактора, так и должно быть. Дело в том, что мобы в игре не видят статические объекты, они видят только аи-карту и перемещаются строго по ней. По этому, если аи-сетка будет проходить сквозь статический объект (Дерево, автомобиль, дом и т.п) то моб спокойно пройдет сквозь него. Рис. 2 - Соединение нодов между собой На изображении видно соединение нодов между собой и направление каждого из них. В зависимости от количества сторон, куда может вывести нод, ноду причисляется свой цвет: 1) Полностью серый нод - все 4 направления; 2) Нод с 1 оранжевым ребром - 3 направления; 3) Нод с 2 синими ребрами - 2 направления; 4) Нод с 3 зелеными ребрами - 1 направление. В самом худшем случае нод имеет красный цвет, это означает, что нод не соединен с основной сеткой. Его нужно либо удалить, либо присоединить к основной карте. 1.1.2 Немного интересных фактов о АИ-Сетке (Спасибо Desertir): 1. При проекции на плоскость XZ представляет собой ноды 0.7х0.7 2. Ноды (или лв) нумеруются с юга на север, с запада на восток. 3. Нулевой вертекс самый западный, однако не всегда самый южный. 4. Вертекс имеет координаты X и Z кратные 0.7 (размеру ноды). 5. Если лв различаются только координатой У (на разной высоте), то нумерация чередуется (что нумеруется первым, верхний или нижний, пока не известно). 1.2 Какой максимальный размер АИ-Карты? Общий максимальный размер карты в среднем включает в себя 3.000.000 - 3.500.000 млн. плотно заполненных аи-нодов, что равняется уровню примерно равному 1.3 х 1.3 км (На данный момент GSC выложили исходные коды в свободный доступ, что увеличивает вероятность увеличения этого ограничения в ближайшем будущем). Так же следует учитывать и точки для оффлайна - графпоинты, чем больше аи-сетка, тем больше должна быть их плотность. Ограничения компиляторов xrAI (Возможно, на данный момент) не дают возможность сделать большой уровень, который можно наполнить жизнью, потому что если превысить среднее значение нодов в 3 млн и более 400 графпоинтов - компилятор будет валиться с ошибками. Конечно, никто не мешает сделать большой уровень сам по себе как таковой (Геометрия), тем более недавно выпущенные х64 компиляторы позволяют тянуть более тяжелую геометрию уровня, но наполнить его событиями не получится, либо нужно ограничивать размер АИ-Карты. 1.3 Что такое графпоинты и для чего они нужны? Если моб становится оффлайновым (Уходит из зоны видимости ГГ, заданным в alife.ltx), то движок переводит его в режим "оффлайн" и моб отправляется ходить по графпоинтам, от точки к точке перемещаясь, как бы живя своей жизнью. Графпоинты - особые точки, которые существуют только на АИ-Карте. Графпоинты видны в СДК, их можно редактировать расставляя как угодно или удаляя их, но в итоге после компиляции под формат игры, графпоинты не будут являться частью игрового уровня или all.spawn: компилятор xrAI переводит графпоинты в вершины игры/уровня (в глобальный граф). Все оффлайновые мобы могут перемещаться по этим точкам, не считаясь с переходами между уровнями (Как для ГГ), то есть для них графпоинты каждого уровня одна большая бесшовная карта, по которой они ходят, по этому и происходят в сталкере многие оффлайн-события, особенно в модах (Типа АМК) без участия игрока, например НПС с Кордона ушел в Бар, на Складах убили сталкеров, пока ГГ был в Припяти и т.д. Следует заметить, что расставляя граф-поинты в СДК, они должны находиться строго на АИ-карте, не должны проваливаться под сетку или висеть над ней, каждый граф должен стоять на ноде - иначе будут ошибки. Рис. 3 - Выделены все графпоинты на локации Кордон. 1.4 Какие файлы относят к АИ в игровых архивах (Или gamedata)? *gamedata/levels/level_name/level.ai - Сами ноды уровня, которые образуют единую карту, запечатаны в этот файл. *gamedata/levels/level_name/level.graph (Только ТЧ) - содержит в себе графпоинты с уровня. В папке с локацией в игре не нужен, нужен только для работы в СДК и xrAI. *gamedata/game.graph (Только ТЧ) - в этот файл запечатаны все т.н вершины (графпоинты) с локаций, подключенных к игре (Собирается из level.graph-ов). Глобальный граф. *gamedata/levels/level_name/level.gct (Только ТЧ) - является кросс-таблицей уровня. level.gct.raw - этот файл создает xrAI и является копией (промежуточной версией?) основного файла. В играх серии "Чистое Небо" и "Зов Припяти" дела обстоят немного иначе, все файлы относящиеся к АИ кроме карты уровня запечатываются в all.spawn. 2. Практика 2.1 Создание AI-Map Итак. Будем считать, что с общими понятиями этого аспекта игры мы разобрались. Настало время поработать по делу и создать свою АИ-Карту для, возможно, своего уровня. Поехали. Для того, чтобы создать сетку, Вы должны убедиться, что Ваш уровень готов к игре: на нем стоят все статические объекты, локацию окружает фейк-стена. Если все готово, то идем далее: Шаг 1. Подготовка уровня. Обязательно нужно "окутать" локацию фейк-стеной (Должна быть замкнута между собой, не иметь дыр), она не даст пройти аи-сетке за нее, что ограничит нас от лишней работы - удаление вручную АИ-Нодов, которые залезли за пределы игрового уровня. Специально создавать ее не обязательно, если Вы делали уровень (Может, был готовый) как полагается, то вокруг забора уже должна быть фейк-стена, которая не даст ГГ перепрыгнуть через забор. Просто копируем ее и опускаем ниже, чтобы она вошла где-то на половину в землю. После генерации АИ-Карты скопированный фейк-объект можно удалить! Рис. 4 - Фейк-стена для АИ-сетки скопированная из стены для ГГ Шаг 2. Выделение объектов Итак, уровень готов, на нем есть все нужные объекты. Идем дальше. Теперь нам нужно добавить все статические объекты уровня в снап-лист, т.е объекты, которые АИ-Сетка будет огибать во время генерации (Прим.: если в статическоем объекте есть дыра, например это здание с дверным проемом, то Аи-Сетка туда заберется и сгенерируется). Вообще, самый простой вариант - это сделать Ctrl+A выделив тем самым все объекты на локации, но мы пойдем немного иным и разумным путем. Дело в том, что кусты на уровне при таком выделении тоже соответственно будут выделены, что не очень хорошо, ведь ГГ может ходить сквозь кусты, так почему мобы не могут? Плюс порой это может вызвать эффект неожиданности, если на тебя из кучи кустов вдруг выпрыгнет кровосос! По этому делаем немного иначе, находясь в режиме работы с объектами (Кнопка Object) заходим в Object List и выделяем мышкой сами все объекты, кроме кустов. Т.к список объектов сортируется по алфавиту, то кусты порой могут оказаться в середине списка, например, и их нужно обойти и не выделить. Сделать это можно зажав Ctrl перед началом выделения и тогда можно выделять объекты выборочно, а нужные объекты конечно смотрим по названию. Рис. 5 - Выделены все объекты, кроме кустов через Object List. Шаг 3. Генерация АИ-Карты Уровень готов, нужные объекты выделены, пора сгенерировать саму аи-сетку. Переходим во вкладку AI Map, далее жмем Commands > And Select To List (Добавить выбранное в список), Рис. 6 - Добавление объектов в список все наши объекты добавляются в снап-лист. Далее жмем на кнопку добавления (Чайник вверху слева, либо горячая кнопка А(ф)) и добавляем на террейн как минимум 1 аи-нод, но лучше раскидать их несколько штук по уровню. Рис. 7 - Одиночные ноды расставленные перед генерацией. Для лучшего покрытия уровня нодами, жмем Ignore Constraints, далее жмем Generate Full - и ждем генерации Аи-Карты для уровня. Процесс может занять несколько минут, зависит от тяжести уровня (ПК, на сколько мне кажется, роли не играет, СДК живет своей жизнью) Рис. 8 - Сгенерированная карта на уровне Как видно на рисунке выше, аи-сетка расстелилась по уровню, прошла под кустами, но обошла дорожные знаки. Теперь в игре мобы будут пробегать сквозь кусты, как и ГГ, но оббегать вокруг препятствие в виде знаков. Рис. 9 - Карта внутри фейк-стены Как и говорилось ранее, аи-сетка не залезает за замкнутую фейк-стену. По желанию можно "разгладить" сетку нажав на кнопку Smooth Selected (Предварительно выделив все ноды с помощью Ctrl+A), но лично я все же не рекомендую это делать, иногда сглаживание проходит не очень выгодно и красиво. Лучше выделять одиночные ноды руками и сглаживать так, чем все сразу. Теперь можно так же удалить копию фейк-стены - она нам больше не нужна. 3. Корректировка сгенерированной Аи-Карты К сожалению, инструмент СДК для работы со сталкером не идеален, и имеет свои ошибки, аи-карта не исключение. Я настоятельно рекомендую, после генерации аи-карты, проверить ее на предмет ошибок. Распространенный тип ошибок и мелких косяков, а так же их исправление, рассмотрим ниже. 3.1. Корректировка 1. Не соединенные ноды Часто бывает, что ноды не соединяются между собой, даже если находятся близко друг к другу. Что на это влияет я так и не понял (Я понимаю, если место стыка находится в трудном месте, на высоте или еще где, а то бывает на ровном месте). Рис. 10 - Не линкованные между собой ноды Как видно из рисунка выше, на краю сетки есть ноды, которые ведут в 1 сторону. Т.е моб попадая на этот нод, не пойдет вдоль например, а развернется назад. Нам конечно это не нужно, по этому начинаем исправлять: 1. Выделяем все Аи-Ноды (Ctrl+A), 2. Затем жмем на среднюю кнопку (+) (К сожалению, ее названия я не знаю, называю ее просто "плюс") (Рис. 11) Рис.11 - Кнопка исправляющая данную ошибку. 3. Смотрим на результат. Рис. 12 - Результат с исправленными нодами Соответственно это исправит такие косяки не только в этом месте, но и в других подобных, возможно которые и не заметишь сразу. 3.2 Корректировка 2. Одиночные ноды Еще одна частая ошибка аи-карты, когда появляются одиночные ноды. Появляться они могут по разным причинам, например во время генерации случайно залезает выше по объекту, и даже коррекция описанная выше не помогает. Я же их расставил специально для примера. В обычном же картостроении, на хорошем большом уровне, их очень часто можно не заметить, опять прибегаем к помощи СДК. Рис. 13 - Одиночные ноды получившиеся после генерации карты Для того, чтобы выделить все одиночные ноды, жмем на Select 0-Link (Находятся справа от кнопки (+) ), данная кнопка выделит все нулевые ноды. Затем жмем Delete на клавиатуре - готово, одиночные ноды удалены. 3.3 Корректировка 3. Лишние ноды (Удаление) Еще один частый глюк СДК, когда аи-сетка произвольно залезает на объекты, которые не должна. Рис. 14 - Аи-сетка на пеньке Как видим с картинки выше, аи-сетка забралась на пенек. Не трудно догадаться, что в игре будет выглядеть не очень красиво, когда НПС или мутант будет бегать по пеньку. В таких случаях, к сожалению, автоматика СДК не поможет - такие места нужно искать самому и исправлять их: 1. Выделяем ноды (Кнопка-стрелочка вверху слева, или горячая кнопка S) Рис. 15 - Выделены лишние ноды 2. Жмем Delete на клавиатуре. 3. Смотрим результат Рис. 16 - Конечный результат, теперь мобы будут обходить пенек 3.4 Корректировка 4. Одиночное (ручное) добавление нодов Порой возникают случаи, когда нужно добавить ноды на уровень. Если аи-сетка создавалась правильно, такие случаи в основном исключены, но никто не от чего не застрахован. Возможно нужно добавить парочку нодов туда, куда СДК автоматически не смог их положить. Я для примера прокладываю "тропинку" к зданию. Чтобы это сделать, нужно опять же находясь в режиме редактирования Аи-Карты (Кнопка Ai Map) нажать на чайник или горячую клавишу А(ф), при условии что все статические объекты до сих пор находятся в снап-листе. Это ограничивает Вас от мороки навроде новой генерации сетки и т.д Рис. 17 - Результат ручного добавления (Новые ноды подсвечены) 3.5 Корректировка 5. Одиночная (ручная) линковка нодов между собой Иногда бывает ситуация, когда ноды не линкованны между собой. Это бывает во многих случаях, например если добавляете некоторые новые ноды вручную, и они не хотят соединяться с основной сеткой. Рис. 18 - Нелинкованные ноды (В моем случае после ручного добавления новых нодов они не соединяются с новой сеткой) Отчетливо видим ошибку. Чтобы мобы смогли зайти в будущем в здание, нужно соединить ноды находящиеся в дверном проеме. Чтобы исправить эту проблему, делаем следующее (Правка похожа на самую первую корректировку): 1. Выделяем ноды, которые нужно соединить между собой Рис. 19 - Выделены необходимые ноды (Подсвечены) 2. Затем жмем на кнопку (+) 3. Смотрим результат Рис. 20 - Результат корректировки 3.6 Корректировка 6. Генерация по определенным объектам Иногда бывают случаи, когда Аи-Карта не генерируется в некоторых местах. Например в зданиях. Благо, это тоже исправляется. Рис. 21 - Внутри здания нет Аи-Сетки Кстати, если все основные работы с основной сеткой были проведены, то для этой корректировки можно и нужно очистить снап-лист, далее мы добавим в него только нужные объекты для генерации. Жмем Commands > Clear List, подтверждаем удаление. Рис. 22 - Очистка снап-листа. Далее вручную выделяем нужные объекты, в моем случае это: дом, мебель. Выделять ВСЕ объекты уровня не нужно! Когда все выделяем, добавляем выделенные объекты с снап-лист, ставим внутрь дома как минимум 1 нод, но я рекомендую (При чем очень настоятельно) расставить по ноду в каждую комнату, чтобы сетка сгенерировалась в каждой комнате, ибо из-за дверных проемов она не всегда пролезает автоматически через него и генерируется в других помещениях. Рис. 23 - Выделены нужные объекты, обновлен снап-лист, добавлены ноды. , выделяем вручную каждый новый нод (Зажав L Ctrl) и жмем Generate Selected (Не Full!) Рис. 24 - Результат выборочной генерации только внутри здания (Основная сетка не была затронута) Теперь, вроде, все ок. Видим правда глюк - на тумбочку залез один нод. Нехорошо. Надо убрать. Как это сделать мы знаем, проходили в 3 корректировке аи-карты. А, хотя стоп, погодите...! Нашел еще один глюк. Как и говорил ранее, аи-сетка иногда может не проходить сквозь дверные проемы и т.п, это мы наблюдаем сейчас. Рис. 25 - Аи-Карта не соединилась из-за узкого прохода Исправить это легко, все из предыдущих корректировок - добавляем в дверной проем по 2 нода (Не забыв нажать Ignore Constraints, как всегда), и тут они либо сами между собой залинкуются, либо выделим их и ближайшие к ним ноды и нажмем на "плюс". Рис. 26 - Исправленная сетка в дверном проеме Вот и все - комнаты соединены между собой. Проделываем эту работу с каждой комнатой и наблюдаем результат. Аи-Карта расстелена по зданию и присоединена к основной сетке, чего не смог сделать СДК. Теперь мобы будут посещать домик. Рис. 27 - Конечный результат 3.7 Корректировка 7. Двигаем "летающие" ноды на место Еще один глюк, который возникает довольно часто - это летающие ноды. Благо это попадается очень редко, почти всегда в лице паре-тройке экземпляров, в основном в зданиях, на объектах, или после ручного добавления нода в узкий проем. Рис. 28 - Летающий нод Нехорошо. Будем исправлять. А то некрасиво как-то будет в игре, если моб попадет на этот нод и резко подлетит вверх, а потом вниз, верно? Выделяем этот нод, затем жмем кнопку отвечающую за перемещение объектов (Вверху на панели инструментов) и как обычный объект двигаем нод вниз по оси Y, и равняем его примерно с остальными. Готово! Рис. 29 - Результат смещения ноды вниз 3.8 Корректировка 8. Неправильная линковка нодов Еще одна редкая, но все же ошибка - когда ноды соединяются между собой по нескольку раз или же на далеких расстояниях, что в игре может вызвать адские глюки и некрасивые моменты. Рис. 30 - Пример такой ошибки Ноды с лестницы соеденились с нодами внизу, которые, в свою очередь, присоединены к основной сетке снизу. О как! Теперь правим: 1. Выделяем все три нода на лестнице, которые соединены к нижним 2. Удаляем 3. Ставим заново поштучно Либо можно не удалять а поставить новые ноды поверх старых, они автоматически перелинкуются в правильную сторону. Такие дела. Рис. 31 - Исправленные ноды, теперь они ведут в правильную сторону Такие ошибки к сожалению могут возникать не только не лестницах, а на различных выступах, ямках, обрывах и т.д - смотрите внимательнее и исправляйте эти недоразумения. 3.9 Корректировка 9. Аи-сетка на вышках и т.д Еще один, не то, чтобы глюк, но недоработка (имхо) аи-сетка не генерируется на вышках, например, вертикальных лестницах и т.д. Все это приходится делать руками. Рис. 32 - Аи-сетка на платформе, которая не соединена с основной сеткой на террейне Чтобы соединить два куска сетки между собой, делаем следующее: 1. Ставим нод снизу лестницы (Должно быть вкл. Ignore Constraints, не забываем), по надобности такой же нод сверху Рис. 33 - Новый нод - будущий мост между двумя кусками 2. Выделяем новый нод, передвигаем его к верху лестницы (Как показано было в ранних корректировках), затем выделяем самый ближний к нему нод и нажимаем на кнопку (+), итог: Рис. 34 - Теперь соединены 2 куска между собой Правда в игре это будет выглядеть не очень хорошо, если НПС или мутант полезет по лестнице, но допускать разъединения сетки нельзя, по этому выбора нет. Так же можно перетащить нод-"мост" на центр лестницы и повернуть его (Через обычный инструмент поворота на панели инструментов): Рис. 35 - Повернутый нод Скорее всего это немного украсит перемещение НПС по лестнице, но на практике не проверял. Ну вот, вроде и все! После всех правок, АИ-сетка должна быть отточена до мелочей, не иметь глюков и ошибок, нпс и мутанты будут бродить везде где положено, ну и прочие хорошие вещи. Кстати, учитывайте: АИ-Сетка не должна иметь разрывов (Например аи-сетка в здании не соединена с аи-сеткой на террейне) - будут вылеты xrAI. Между ними обязательно должен быть хотя бы один нод, соединяющий два куска. Можно билдить аи-сетку, компилировать. 4. Исправление ошибок при компиляции Момент с компиляцией я упущу, пусть это будет описано в статье про подключение уровней. Последним шагом рассмотрим ошибки, которые могут возникнуть, если что-то все-таки проглядели и не исправили. Напомню, что лучше всего будет после сборки аи-сетки проверять ее на наличие ошибок, благо xrAI (Ну или аивраппер) позволяет это делать. Если Вам написали AI-map is valid!, то могу поздравить - Ваша аи-карта готова для дальнейших действий, если же Вам написали ошибку, то: При получении ошибки вида (Скажу честно, другие ошибки мне не попадались, по этому пишу только о ней) Node 13705[-210.000000][36.516769][-151.899963] cannot be reached from the node 794[-255.500000][32.622856][-83.999969] говорит нам о том, что все-таки Аи-Карта не цельная. То есть пропустили место, и на Аи-Карте есть "островок" который отделен от основной Например сетка в домике отделена от сетки на террейне. Надо присоединить. Благо координаты нам пишут, осталось только найти проблемное место и исправить. Я обычно исправляю так: ставлю на карту узкий предмет, типа торчащей вверх палки, трубы, знака, чтобы диаметр(ширина) объекта не превышала размер одного нода. Затем вытягиваю его высоко вверх, чтобы было видно издалека куда он переместился, прописываю ему координаты выданные мне в логе: -255,50; 32.62; -83,9 и жму Enter, объект перемещается на проблемное место. Если на месте, куда переместился объект, не видно ошибок, значит прописываю ему вторые координаты выданные логом: -210; 36.51; -161,8. Нахожу ошибку и удаляю. Так же подобную ошибку могут вызывать такие места, смотрите внимательнее: * Два нода в одном месте * Неправильное линкование нодов (Описывалось ранее в корректировках) Возможное решение генерации АИ-сетки на тяжелых уровнях со сложной геометрией, когда СДК вылетает. (от sneik): Необходимое условие: это наличие полностью готовой локации, уже скомпиленой на максимальном качестве желательно. 1) Разбираем ее в СДК формат конвертером, можно без ключа -with_lods. 2) Запускаем СДК и загружаем уровень, выделяем все объекты и вносим в список аи-мап, ставим нод(ы), отключаем отображение объектов (Скрываем через ПКМ в СДК 0.4 или нажимаем на глазик в 0.7), и пробуем с генерировать сетку в обычном режиме, а вдруг повезет! Если нет, то: 3) закрываем СДК и лезем в папку rawdata\objects\levels\название уровня 4) Открываем папку с кусками геометрии, нажимаем ПКМ и выбираем сортировка по размеру, все "тяжелые" объекты будут первыми по списку 5) Смотрим на первый объект, самый тяжелый, например локация_part0001, запоминаем номер 6) Открываем СДК и опять подгружаем уровень. Находим этот объект и удаляем его. (Желательно объект который удалили перетащить на рабочий стол в отдельную папку, потом они пригодятся и искать будет проще). 7) Опять создаем список для аи мап, но уже в нем не будет одного объекта, того что удалили. Пробуем опять с генерировать. Получилось - отлично! Нет: 8) Удаляем по списку следующий объект и повторяем всю операцию заново, и так до тех пор, пока СДК не сможет с генерировать основную сетку. Дальше делаем все то что описано в уроках этой темы. 9) Все, основная сетка готова, приступаем к изготовлению сетки на объекты которые были удалены. 10) С рабочего стола перетаскиваем папку с объектами которые были удалены, запускаем СДК открываем уровень и выбираем из нашей папки первый по списку объект и ставим его в любое место на локе, нажимаем энтер и выставляем координаты (Местоположение) и ротацию (поворот) на 0, объект встанет на свое место где он и был. 11) Опять делаем по урокам из этой темы, отрезаем под объектом лишние ноды. Выбираем этот объект и в носим его в список аи мап, только его одного, других не надо. Генерируем на этом объекте аи сетку, редактируем ее а потом линкуем с основной сеткой, точки соприкосновения должны быть! Если это здание то соединяем ноды на входе. Для того что бы соединять ноды надо внести в список дополнительный объект, обычно террейн, для этого надо нажать +\-. 12) Когда сетка будет готова для первого объекта его можно удалить, и ставить следующий, повторив выше описанную операцию. И так по списку ставим все объекты и делаем для них сетку. 13) В последний раз проверяем всю сетку, убедившись что все нормально, приступаем к билду. Лезем в вкладку Scene и выставляем максимальное качество. Лезем в вкладку Object потом нажимаем Object List и удаляем все что там есть, то есть все объекты на локации, вплоть до террейна, только надо оставить один объект, какую-нибудь маленькую железяку, кирпич, без разницы. 14) Билдим, естественно на локе должны стоять глоу и лайтс. Компилим как обычный уровень, это займет без геометрии всего несколько секунд, компилим аи-сетку. Все, файл level.ai готов! Кидаем его в паку с уровнем и опять разбираем его, но только теперь уже для спавна, то есть для заселения. Ставим точки графа свой спавн и компилим алл.спавн. Кидаем в геймдату и запускаем, смотрим что натворили! Все! Более подробное представление о организации Аи-Сетки, принципиальных ограничениях (От malandrinus) Ссылка на пост Рекомендации к генерации Аи-Сетки (От CuJIbBEP) Ссылка на пост Альтернатива методу, если автогенерация сетки заканчивается вылетом о нехватки памяти (От h0N0r) Создание нод с зажатой клавишей alt + регулировка их количества с помощью brush size (в свойствах сетки). Напоминает создание ландшафта в редакторе для HoMM Подгонка геометрии в 3d max под аи-ноды Ссылка на пост
  7. Тема создана для модмейкеров, столкнувшихся с неизвестными ошибками X-Ray SDK. Скрытый текст SDK: версия и компонент. Ошибка. При каких обстоятельствах произошла ошибка. Тема для публикации решений вылетов и ошибок: https://www.amk-team.ru/forum/topic/12733-instrukcii-po-vyletam-i-oshibkam/ Тема вопросов по неизвестным вылетам: https://www.amk-team.ru/forum/topic/13415-masterskaya-po-razboru-vyletov-x-ray/ Нерешенные ошибки: https://modfaq.ru/Категория:Нерешённые_ошибки

AMK-Team.ru

×
×
  • Создать...