[SDK] X-Ray SDK 0.4 |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
[SDK] X-Ray SDK 0.4 |
15.05.2007, 21:09
Сообщение
#2781
|
|
The One Репутация: 744 Группа: Участник Сообщений: 2715 Регистрация: 05.12.2005 |
Ответы на часто задаваемые вопросы Вопрос: Какие системные требования у СДК? Ответ: Неограниченные Вот самые минимальные: Процессор - 1000MHz Память - 512Mb Графика - Видеокарта с 32Mb памяти, и поддержкой шейдеров версии 1.1 Вопрос: Где можно скачать СДК? Ответ: Вопрос: Какие компоненты входят в пакет СДК? Ответ: LevelEditor - компоновщик уровней ActorEditor - экспортер моделей, экспорт в ogf,omf и т.д ShaderEditor - редактор параметров шейдеров ParticleEditor - редактор эффектов игры xrLC - базовый компилятор карт xrDO_light - компилятор детальных объектов карты Плагины экспорта геометрии для Maya 8 и 8.5 Документация (На английском языке) А вот Вопрос: А где взять плагины для 3Ds Max? Ответ: ЗДЕСЬ (Для 3Ds Max 8) или ЗДЕСЬ (Для 3Ds Max 7). Вопрос: Будет ли СДК на синглплеер? Ответ: СДК на синглплейер в обозримом будущем - не предвидится. Вопрос: Есть ли СДК меньших размеров чем 300 Mb? Ответ: Да. УЖАТАЯ ВЕРСИЯ (20 Mb) Вопрос При запуске СДК - выводится окно: "Сбой при инициализации приложения. Для выхода нажмите кнопку ОК" Что делать? Ответ Установить Вопрос При запуске СДК - выводится окно: "Необходимый файл динамической библиотеки d3dx**.dll не найден" Что делать? Ответ Установить Вопрос: Русифицирован ли СДК? Ответ: Да. Вот русификатор Вопрос:SDK не работает под Windows Vista. Что делать? Ответ:SDK - несовместим с Vista. НО есть способ "запуска" - ЗДЕСЬ Вопрос: А можно ли делать модели в самом редакторе? Не только компилировать, но и делать? Ответ: Нет. Модели и геометрию создавать нельзя. Вопрос: Есть ли в интернете документация и обучающие материалы на русском языке? Ответ: Да. ЗДЕСЬ, и Вопрос: При компиляции карты - компилятор слетает с ошибкой. FATAL ERROR Цитата expression : assertion failed Function : b_BuildTexture::Vflip File : d:\xray-svn\xrlc\build.h Line : 30 Description : pSurface Что делать? Ответ: Прочитать ЭТО Вопрос: Что такое HOM объект? Ответ: Читаем ЭТО Вопрос: При конвертировании объекта, с правильным именем, именем группы, с материалом, без вытянутых полигонов и нулевых, выдаёт надпись Цитата Can't convert to TriObject. Export Failed! Что делать? Ответ: Экспортируются Только объекты типа Edit Mesh, или Edit Poly. Никаких Групп! Вопрос: Как запустить Shader Editor, Или "А вот ето выскочило,когда я попытался запустить exe файл" Цитата expression : F Function : I:xray-svn-trunkxrCoreELocatorAPI.cpp File : I:xray-svn-trunkxrCoreELocatorAPI.cpp Line : 63 Description : Can't open file: Arguments : fs.ltx Ответ: Создать в папке ...LevelEditor - БАТ-файл, в котором написать: @start bins\ShaderEditor.exe Вопрос: Запускаю новую карту на полном динамическом освещении, вылет с логом (на этапе загрузки шейдеров): Цитата expression : R Function : CResourceManager::_CreatePS File : D:\xray-svn\xr_3da\ResourceManager_Resources.cpp Line : 270 Description : ...\s.t.a.l.k.e.r\gamedata\shaders\r2\deffer_impl_lmh_flat_d.ps Ответ: Скачать и установить ИСПРАВЛЕНИЕ Вопрос: Карта не компилируется. Компилятор слетает с ошибкой Цитата 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 Что делать? Ответ:В какой-то (каких-то) из моделей на карте - есть 145 Invalid Faces. В моделях НЕ должно быть: - Очень длинных тонких треугольников. - Потяжек текстур. - Несвязанных рёбрами вершин. Вопрос: Что обозначают красные точки во вьюпорте level editor, после того как сделаешь build?: Ответ: Вершины и координаты ошибок геометрии TGA/THM rawdata для Запуск на Win7 и Vista Запуск на Win8 Сообщение отредактировал RayTwitty - 15.06.2018, 01:12 |
 
|
|
|
|
10.01.2012, 20:03
Сообщение
#2782
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Вроде как подключил локу, сделал скриптовый переход на неё (для теста), но при загрузке мало того что загружается кордон (т.е. перехожу с кордона на кордон О_о), так еще и вылет без лога при загрузке. Скриптовый переход сделан правильно (много раз им пользовался, проблема явно не в нем). Проблема думаю где-то в аи-переходах. Вообщем подключал по этому тутору от K.D.
Тутор от K.D. Первое, что вам понадобится - это установленный СДК с настроенным аивраппером. Как настроить - подробно описано в шапке темы. Далее необходимо определиться, какие локации вы хотите иметь в своем паке. Рассмотрим такой случай - мы хотим иметь в своей игре три локации: кордон, генераторы и болота ЧН. 1. Подготовка к подключению этих локаций друг к другу. Кордон в СДК у нас уже есть - мы скопировали туда всю геймдату ТЧ после установки СДК. Копируете генераторы и болота в папку level_editor\gamedata\levels. Если локация была до этого скомпилирована в СДК ТЧ (в нашем случае кордон и генераторы), делать больше ничего не надо, переходите к шагу 2. Если локация из ЧН или ЗП - придется поработать, ДАЖЕ если вы взяли локацию из пака локаций для ТЧ. Рассмортим работу с локацией из ЧН или ЗП на примере болот ЧН: а) Удалите из папки с локацией level.spawn и level.ltx. После этого в папке с конвертером от бардака (предполагается, что он есть и настроен) создаете батник с таким текстом: converter -level marsh -mode le pause Конвертер декомпилирует болота в формат СДК. б) Откройте в Actor Editor объект terrain_marsh. Выберите справа Object Items и смотрите, какой шейдер присвоен, если тот, которого не хватает, то присвойте один из оригинальных шейдеров Пример для воды: Shader - effects \ water Compile - def_shaders \ def_vertex Game Mtl - material \ water в) Открываете Level Editor. В нем открываете болота. Переходите в раздел objects (панель справа) и удаляете все, кроме объекта terrain (клик по объекту - del). Если у вас не очень сильный компьютер и LE зависает при открытии - удалите все объекты, кроме террейна в папке rawdata\objects\levels\marsh. г) Ставите на карту light. Нажимаете вкладку light, потом сверху слева кнопку "чайник" и потом кликаете куда-нить на локу д) Теперь нажмите glow, и аналогичным образом ставите на локу glow. В появившемся окне со свойствами glow выберете textures, где задайте текстуру glow_04. е) Поставьте граф-поинты. Для этого перейдите в spawn element ai > graph point и поставьте по уровню некоторое количество граф-поинтов. Чем больше, тем лучше, однако слишком усердствовать не стоит. Ставить необходимо в местах скопления сталкеров и по предполагаемым путям их хождения. Сотни граф-поинтов вполне хватит. Один из графов, где вы хотите сделать появление ГГ при переходе с другой локации, можете назвать start_actor_01. ж) Ставите низкое качество компиляции. Затем зайдите scene > options, после чего переименуйте name prefix и level path в название локации з) Делаете лоды. Заходите objects > objects library, там, где написано Preview, есть окошко. Нажмите туда, после чего в доп окошке Object Library перейдите в levels > marsh. Там нажмите на объект marsh_lod0000, после этого нажмите make lod (low quality), потом yes. Вылезет еще окошко - Select Library Objects, теперь опять levels > marsh и там плюсиками выберите все лоды локации. После этого - ок. и) Добавьте на локацию какой-нибудь объект - например, автомат. Если этого не сделать, аивраппер потом будет капризничать. к) Компилируете на низшем качестве - Make Game и Build. л) Последний шаг - скомпилируйте геометрию. Создайте в папке level_editor батник @start bins\compiler\xrLC.exe -f marsh и дождитесь окончания. На этом все. Переходим к шагу 2. 2. Работа с аивраппером. Перед началом работы с авираппером, необходимо показать ему, с какими локами ему работать. Вам нужно править три файла: game_graphs.ltx, game_levels.ltx и games_maps_single.ltx. Все они лежат в папке level_editor\gamedata\config. Разберем содержимое каждого файла ----game_graphs.ltx----- [location_0] 000 = "..." 001 = "l01_escape" 002 = "generators" 003 = "marsh" <в секции location_0 необходимо составить список своих локаций. Остальное не трогаем> [location_1] 000 = "..." 001 = "ограниченный доступ" 002 = "запрещенный доступ" [location_2] 000 = "..." 001 = "не для игрока" [location_3] 000 = "..." ----game_levels.ltx----- [levels] level01 level02 level03 <Записываете свои локации по такому образцу> [level01] name = L01_Escape caption = "L01_Escape" offset = 3000.0, 1000.0, 0.0 id = 01 [level02] name = generators caption = "generators" offset = 1000.0, 1000.0, 6000.0 id = 02 [level03] name = marsh caption = "marsh" offset = 2000.0, 1000.0, 0.0 id = 03 ----game_maps_single.ltx----- [level_maps_single] L01_escape generators marsh ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [level_music_tracks] music\amb01 = 0, 12, 0.5, 10,20 music\amb03 = 0, 12, 0.5, 10,15 music\amb07 = 12,24, 1.0, 5, 25 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [global_map] texture = ui\ui_global_map --не трогаем! bound_rect = 0.0,0.0, 1024, 2634.0 --не трогаем! max_zoom = 6.0 --не трогаем! [l01_escape] texture = map\map_escape --путь к текстуре мини-карты для вашей локации bound_rect = -317.164, -633.718, 404.880, 811.627 --координаты внутри локации в формате: минимальная X, минимальная Y, максимальная X, максимальная Y global_rect = 355.0,2011.0, 576.0,2453.000000 --координаты локации на глобальной карте в формате: северо-западный угол - юго-восточный угол. weathers = default --погодный пресет. Ставьте default, если не делали своего. music_tracks = l01_escape_musics --амбиентные звуки на локации. [generators] texture = map\map_generators bound_rect = -351.81, -639.389, 352.818, 65.245 global_rect = 300.0,500.0, 400.0,600.0 weathers = stancia [marsh] texture = map\map_marsh global_rect = 22.0, 2113.0, 352.0, 2443.000000 bound_rect = -445.000000,-445.000000,755.000000,755.000000 weathers = boloto С файлами разобрались. Теперь разберемся с аивраппером. Если ваша локация делалась с нуля в СДК, или вы работаете с локациями ЧН и ЗП, то для каждой из таких локаций нужно сначала просчитать АИ-сетку. В нашем случае это Болота. Создаем и запускаем такие батники в папке с аивраппером: а) Сборка черновой сетки ИИ: aiwrapper -draft -f marsh После окончания работы аивраппера вы получите следующий файл: gamedata\levels\<имя_уровня>\level.ai. б) Проверка связности сетки ИИ: aiwrapper -verify marsh в) Просчёт укрытий для сетки ИИ. aiwrapper -f marsh Вообще, этот шаг необязателен на ранних этапах тестирования карты. г) Сборка ИИ-графа: aiwrapper -g marsh После окончания работы аивраппера вы получите следующий файл: gamedata\levels\<имя_уровня>\level.{graph|gct.raw} Далее нужно соединить наши локации аивраппером в единое целое. Для этого создаем и запускаем такие батники в папке с аивраппером: а) Склейка ИИ-графов карт в глобальный игровой граф: > aiwrapper -m На выходе: gamedata\game.graph и gamedata\levels\*\level.gct б) Сборка all.spawn > aiwrapper -s На выходе: gamedata\spawns\all.spawn Если все прошло удачно - поздравляю. Однако еще не все. 3. Пересборка all.spawn. Если вы не работаете с локами ЧН или ЗП - пропускайте этот шаг. Аивраппер собрал нам all.spawn - это замечательно. Однако от локации ЧН или ЗП у нас в спавне только автомат, что мы воткнули в LE. Нет ламп и источников света, нет лестниц. Чтобы привести локацию в более-менее приличный вид, нужно пересобрать спавн. а) Первым делом, распакуйте получившийся спавн. Для этого качаем отличную тулзу acdc и открываем файл acdc.pl. Там найдите подобную таблицу: use constant levels_info => ( { gvid0 => 600, }, { gvid0 => 329, name => 'marsh' }, { gvid0 => 252, name => 'generators' }, { gvid0 => 0, name => 'l01_escape' }, ); Оставляете только те локации, что мы объединяем. Меняем параметр gvid0 на начальный геймвертекс вашей локации. Узнать эти вертексы просто - в папке с acdc должна быть тулза ggtool.pl. Берете получившийся при работе аивраппера game.graph (из папки level_editor\gamedata) и кидаете его в папку с ggtool.pl. После чего создаем и запускаем такой батник: ggtool.pl game.graph >svyazi.txt После окончания работы тулзы открываете появившийся файл svyazi.txt и там смотрите начальные вертексы. Верхнее ограничение по вертексам (gvid0 => 600) высчитывается примерно как вертекс от последней локи + 300-400 (возьмем с запасом). После правки acdc.pl кидаете в папку с ним получившийся all.spawn (из папки level_editor\gamedata\spawns). После этого декомпилируете all.spawn. Открываете файл alife_marsh.ltx (наша ЧН-локация). Распакуйте оригинальный спавн той игры, откуда выдернули локацию (у нас ЧН), и открываете файл наше локации. Теперь основная задача - перенести из оригинального спавна в наш секции следующего типа: section = climable_object (это лестницы) section = lights_hanging_lamp (источники света) Вообще, можете переносить хоть все - зависит от того, хотите ли вы получить чистую локацию или с оригинальным спавном. Единственный совет - не копируйте секции breakable_object и проверяйте визуал в секциях lights_hanging_lamp. Наличие breakable_object или ссылок на визуалы ламп, которых нет в ТЧ, приведет к вылетам Invalid vertex type for skinned object. Лечение пока не найдено. Еще одно замечание - правьте game_vertex_id у переносимых секций. Значение гейм-вертекса должно соответствовать локации. В нашем примере, кордону соответствуют вертексы 0-252, генераторам - 252-329, болотам - больше 329 (смотрим acdc.pl). На этом все. Если хотите, сделайте переходы между локациями. Компилируете all.spawn 4. Создание АИ-переходов. Поскольку сборку мы создаем для дальнейшего моддинга, нам необходимы АИ-переходы. Эти переходы позволяют неписям переходить с локи на локу. Даже если вы не собираетесь отправлять ваших квестовых неписей на другю локацию, без аи-переходов невозможен полноценный оффлайн-алайф. Поэтому сделаем их. Делать Аи-переходы можно двумя способами. Первый - вместо aiwrapper -m сделать aiwrapper -m2 links.fixed. В файле links.fixed здесь указываются соединяемые вертексы разных локаций. Однако, я больше привык использовать второй способ - работать с утилиткой Колмогора - edge_add, ее и опишу. Кладете свой game.graph в папку с edge_add.exe. Создаем батник, где прописываем следующее: edge_add.exe game.graph 37 300 del game.graph rename game.graph.new game.graph edge_add.exe game.graph 45 400 del game.graph rename game.graph.new game.graph edge_add.exe game.graph 320 420 del game.graph rename game.graph.new game.graph Числа - это соединяемые вертексы локаций. Здесь написаны наобум, когда будете делать сами - выбирайте вертексы поближе к краям лок, там, где непись бы логично мог пройти. После запуска и окончания работы утилитки получаем готовый game.graph 5. Правка карт освещения. Этот шаг выполняется только для локаций из ЧН или ЗП, и только в том случае, если вы брали локу из оригинальной игры. Если это ваш случай, начнем. А если брали из пака лок для ТЧ - делать шаг НЕ НАДО. Открываете папку с локацией там, где вы ее брали. Находим такие файлы lmap*_1.dds и lmap*_2.dds. Наша задача - чтобы в r1 и r2 не было некрасивых жутко черных теней. Работаем через программу paint.net (требует установленного .Net Framework v2.0), кто умеет, может делать через фотошоп. В папке с уровнем будем редактировать лайтмапы: lmap*_1.dds - снижаем контраст на 15 единиц и сохраняем в формате dxt5 без мипмапов, с ними все lmap*_2.dds переделывать сложнее - задача сделать менее прозрачным. Пересохраняем как dds в формате R5G6B5, прозрачность исчезнет совсем. Открываем снова и меняем прозрачность с 255 до 30, затем снижаем контраст на 15 единиц и сохраняем в формате dxt5 без мипмапов. 6. Вставка локаций в игру. Нам необходимы следующие файлы: configs\game_graphs.ltx configs\game_levels.ltx configs\game_maps_single.ltx levels\l01_escape\ levels\generators\ Копируйте эти файлы в геймдату игры из геймдаты СДК. Также нужны файлы game.graph и spawns\all.spawn, их берете оттуда, где с ними работали. Мы пока не скопировали паку с болотами. У лок из ЧН или ЗП несколько другой порядок копирования в геймдату игры: --Берете папку marsh из оригинала, где брали ее изначально. Если берете из оригинальной игры - проверьте, что сделали шаг 5. --Копируете в геймдату игры в папку levels --из папки level_editor\gamedata\levels\marsh копируете с заменой два файла - level.gct и level.ai - в папку marsh в геймдате игры. Все, теперь все готово. Можете запускать игру. Могут быть вылеты по шейдерам или текстурам - это нормально. Просто вставьте в геймдату игры недостающие текстуры и добавьте недостающие шейдеры с помощью Shader Editor. Маленький совет: если ваша локация уже есть в оригинальной игре (у нас кордон), для уменьшения веса сборки всю папку levels\l01_escape копировать необязательно. Достаточно лишь скопировать файл level.gct из папки кордона в СДК в папку levels\l01_escape. При составлении данного тутора использовались туторы от KostyaV, D1m0n и HitmanNew, а также ридми к программам от Колмогора и Бардака. Дошел до 4 пункта, скачал прогу Колмогора. Потом скачал graph viewer чтобы узнать координаты точек, но не понял как им пользоваться. Но потом нашел скрины с координатами на двух локах, в т.ч. на той которую хотел подключить, там скринах посмотрел гейм-вертексы точек где стоял ГГ и вписал их в батник Код edge_add.exe game.graph 3 84 del game.graph rename game.graph.new game.graph Соединил кордон и новую локу (скриптовый переход тоже с кордона был). Я думаю может здесь ошибся? Может координаты гейм-вертекса надо было подругому снять? Просто думаю может на добавляемой локе уже есть такой гейм-вертекс как на кордоне, поэтому как бы с кордона на кордон переход идет... --- Забыл добавить: лока которую подключаю уже сделана для ТЧ, я её просто к синглу подсоединяю. Сообщение отредактировал Shadows - 10.01.2012, 20:15 |
 
|
|
11.01.2012, 05:02
Сообщение
#2783
|
|
Продвинутый геймер Репутация: 136 Группа: Участник Сообщений: 464 Награды: 1 Регистрация: 28.10.2008 |
Для того, чтобы подключить локацию не обязательно создавать АИ переходы.
Ну а если все таки хочется, то координаты точек для АИ переходов ты взял не правильно. Брать их надо из скомпиленного тобой геймграфа. |
 
|
|
11.01.2012, 08:31
Сообщение
#2784
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Shadows, АИ-переходы не для актора - они для неписей. Можно их вовсе не делать. Актор у тебя появляется на кордоне из-за плохой настройки перехода.
|
 
|
|
11.01.2012, 17:38
Сообщение
#2785
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Актор у тебя появляется на кордоне из-за плохой настройки перехода. Хм... Может потому, что я снимал координаты до того как начал подключать? Всмысле на авторской версии, где для теста просто побегать можно, тогда и снял координаты. Может они (и вертексы) сбиваются при присоединении к общему списку локаций? Кстати, а возможен ли такой случай, что вертексы добавленной локации могут уже быть на оригинальной? Может из-за этого и глюки? Ну а если все таки хочется, то координаты точек для АИ переходов ты взял не правильно. Брать их надо из скомпиленного тобой геймграфа. Ха блин, точно. Надо было в графе смотреть же... Вот теперь прога мне стала понятна Спс. K.D., можешь глянуть, правильно ли я всё сделал? Всмысле напишу конкретно как подключал локацию. Кратко: Как я делал Подготовил СДК и аиврапер. После чего перекинул папку с новым левелом в gamedata\levels. Далее первый шаг не смотрю, так как локация из билда, уже сделана для ТЧ. 2 шаг. Прописал всё в конфигах, думаю тут ошибок нет. Хотя... Распишу кое-чего, правильно ли я сделал: Открыть В оригинальной игре, файл game_graphs.ltx выглядит так: Код [location_0] 000 = "..." 001 = "эскейп" 002 = "свалка" 003 = "агропром" 004 = "агропром-подземка" 005 = "темная долина" 006 = "лаборатория X-18" Я же его переделал вот так: Код 000 = "..." 001 = "l01_escape" 002 = "l02_garbage" 003 = "l03_agroprom" 004 = "l03u_agr_underground" 005 = "l04_darkvalley" 006 = "l04u_labx18" 007 = "l05_bar" 008 = "l06_rostok" ... Правильно? То есть составил нормальный список лок. И потом же этот файл без изменений кинул себе в геймдату, когда подключил. После чего пропустил часть шага т.к. лока из билда: Вот эту часть шага пропустил Цитата С файлами разобрались. Теперь разберемся с аивраппером. Если ваша локация делалась с нуля в СДК, или вы работаете с локациями ЧН и ЗП, то для каждой из таких локаций нужно сначала просчитать АИ-сетку. В нашем случае это Болота. Создаем и запускаем такие батники в папке с аивраппером: а) Сборка черновой сетки ИИ: aiwrapper -draft -f marsh После окончания работы аивраппера вы получите следующий файл: gamedata\levels\<имя_уровня>\level.ai. б) Проверка связности сетки ИИ: aiwrapper -verify marsh в) Просчёт укрытий для сетки ИИ. aiwrapper -f marsh Вообще, этот шаг необязателен на ранних этапах тестирования карты. г) Сборка ИИ-графа: aiwrapper -g marsh После окончания работы аивраппера вы получите следующий файл: gamedata\levels\<имя_уровня>\level.{graph|gct.raw} Ведь правильно? После чего склеил граф и собрал спавн. Всё прошло нормально. 3 шаг пропускаю, т.к. лока из билда. 4 шаг - аи переходы. Получается они не обязательны, пока можно тоже пропустить. 5 шаг, пока тоже не трогаю, если проблемы будут, текстурки подправлю. 6 шаг, собсно скопировал себе 3 конфига, граф, спавн, сам новый левел и файлы level.gct от каждой локи. Вроде правильно? Ну потом сделал для теста скриптовый переход. Вот правильно я сделал всё? Или может какие-то из шагов не надо было пропускать? Сообщение отредактировал Shadows - 11.01.2012, 18:03 |
 
|
|
11.01.2012, 18:09
Сообщение
#2786
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Shadows, если у тебя игра не вылетает при старте - как минимум, сделал правильно, не считая нюансов. Ты переход-то покажи. Граф поинты при компиляции глобального графа получают сквозную нумерацию и сохраняются как вертексы. Если при переходе оказываешься на той же самой локации - dest_game_vertex_id перехода кривой, как минимум.
А зачем вообще спавнить переход скриптом? Это же не булка - заспавнил и забыл - для каждого перехода надо перебирать нет-пакет и менять кусок cse_alife_level_changer. Проще делать их через спавн. Кстати, а как ты определил, что переходишь с кордона на кордон, если дальше вылетает? Сообщение отредактировал K.D. - 11.01.2012, 18:10 |
 
|
|
11.01.2012, 18:15
Сообщение
#2787
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Ты переход-то покажи. Граф поинты при компиляции глобального графа получают сквозную нумерацию и сохраняются как вертексы. Если при переходе оказываешься на той же самой локации - dest_game_vertex_id перехода кривой, как минимум. Собственно вот: открыть Код function create_level_changer(p_story_id, p_position, p_lvertex_id, p_gvertex_id, p_dest_lv, p_dest_gv, p_dest_pos, p_dest_dir, p_dest_level, p_silent) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) local packet = net_packet() obj:STATE_Write(packet) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_u32() local level_vertex_id = packet:r_u32() local object_flags = packet:r_u32() local custom_data = packet:r_stringZ() local story_id = packet:r_u32() local spawn_story_id = packet:r_u32() local shape_count = packet:r_u8() for i = 1, shape_count do if packet:r_u8() == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local axis_x_x = packet:r_float() local axis_x_y = packet:r_float() local axis_x_z = packet:r_float() local axis_y_x = packet:r_float() local axis_y_y = packet:r_float() local axis_y_z = packet:r_float() local axis_z_x = packet:r_float() local axis_z_y = packet:r_float() local axis_z_z = packet:r_float() local offset_x = packet:r_float() local offset_y = packet:r_float() local offset_z = packet:r_float() end end local restrictor_type = packet:r_u8() local dest_game_vertex_id = packet:r_u16() local dest_level_vertex_id = packet:r_u32() local dest_position = packet:r_vec3() local dest_direction = packet:r_vec3() local dest_level_name = packet:r_stringZ() local dest_graph_point = packet:r_stringZ() local silent_mode = packet:r_u8() packet:w_begin(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) packet:w_u32(bit_not(193)) packet:w_stringZ(custom_data) packet:w_u32(p_story_id) packet:w_u32(spawn_story_id) packet:w_u8(1) packet:w_u8(1) packet:w_float(2) packet:w_float(0) packet:w_float(0) packet:w_float(0) packet:w_float(4) packet:w_float(0) packet:w_float(0) packet:w_float(0) packet:w_float(4) packet:w_float(0) packet:w_float(0) packet:w_float(0) packet:w_u8(3) packet:w_u16(p_dest_gv) packet:w_u32(p_dest_lv) packet:w_vec3(p_dest_pos) packet:w_vec3(p_dest_dir) packet:w_stringZ(p_dest_level) packet:w_stringZ("start_actor_99") packet:w_u8(p_silent) packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) end function test_lc() -- вызываю при новой игре, но не суть важно create_level_changer(5510, vector():set(-208.9,-20.3,-167.8),43917,50, 7425,3, vector():set(-182.9,-35.2,60.2), vector():set(0.0,1.56,-1.0), "l14_factory", 0) -- координаты которые снял до подключения локации (на авторской версии для теста). end Цитата Кстати, а как ты определил, что переходишь с кордона на кордон, если дальше вылетает? Ну во первых картинка при загрузке от кордона, во вторых в автосейве пишут, что кордон (всмысле потом, если перезайти в игре, автосейв же сохранился, в нем пишут левел)... Вылет кстати при синхронизации. А как вообще снимать правильно координаты на локации, для перехода если на ней еще не был (только подключил)? Сообщение отредактировал Shadows - 11.01.2012, 18:17 |
 
|
|
11.01.2012, 18:54
Сообщение
#2788
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Shadows, однозначно криво спавнишь переход. p_dest_gv = 3 - это же кордон. Что такое вертекс? Это точка графа игры. Считай, сетка, по которой ходят неписи. Есть локальный (уровневый) граф - для навигации неписей по локации, есть глобальный граф - для навигации неписей по всей карте. Понятно, что при компиляции всех локаций в один граф, все его точки получают уникальные значения, независимо от их нумерации до компиляции. Поэтому надо снимать номер вертекса после компиляции глобального графа. Можно проще: на Тчшном кордоне 252 вертекса. Если присоединяешь локацию после кордона, надо, значит, ко всем ранее снятым гейм-вертексам прибавить 252. Координаты и левел-вертексы, понятное дело, не меняются при сборке глобального графа.
Снять координаты для перехода можно элементарно - заспавнь актора на этой локации. Необязательно же с кордона переходить. Ну или, как вариант, в СДК закинь на локу какой-нибудь предмет, после компиляции спавна разбери его с помощью acdc и возьми координаты. |
 
|
|
11.01.2012, 21:12
Сообщение
#2789
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
K.D., большое спасибо, подключил, всё работает
Только произошла одна неприятная вещь - в алл.спавне параметры всех объектов в игре сбиты. То есть всё оружие заспавненное на локах убитое полностью, у вещей не правильный вес и т.п. Где-то слышал про такие проблемы. В связи с этим вопрос - есть ли лечение? Не переписывать же овер9000 секций в алл.спавне вручную |
 
|
|
11.01.2012, 23:13
Сообщение
#2790
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Shadows, лечение есть и весьма простое - выкинуть аивраппер и использовать вместо него xrAI для ТЧ.
|
 
|
|
11.01.2012, 23:55
Сообщение
#2791
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
|
 
|
|
12.01.2012, 08:31
Сообщение
#2792
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Shadows, А ровно также, как и аивраппер. -m, -s. Смотри, как сделаны батники аивраппера для компиляции xrAI от 2588.
|
 
|
|
12.01.2012, 22:34
Сообщение
#2793
|
|
Почти Мастер Репутация: 250 Группа: Забанен Сообщений: 1131 Награды: 1 Регистрация: 25.01.2010 |
Маленький вопрос: будет ли развиваться создание плагинов импорта/экспорта .object для 3Д макса? Интересуют сохранение настроек шейдеров/компила/материалов при этих операциях.
-------------------- До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Прочитай сам, сообщи другому! Убей салоедного имперца - спаси триединство: Белоруссия, Россия, Украина |
 
|
|
13.01.2012, 20:47
Сообщение
#2794
|
|
Почти Игроман Репутация: 88 Группа: Участник Сообщений: 511 Награды: 3 Регистрация: 19.09.2009 |
Они и так сохраняются.
|
 
|
|
14.01.2012, 12:44
Сообщение
#2795
|
|
Почти Мастер Репутация: 250 Группа: Забанен Сообщений: 1131 Награды: 1 Регистрация: 25.01.2010 |
да вы что поделитись сими волшебными плагинами
-------------------- До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Прочитай сам, сообщи другому! Убей салоедного имперца - спаси триединство: Белоруссия, Россия, Украина |
 
|
|
14.01.2012, 20:43
Сообщение
#2796
|
|
Почти Игроман Репутация: 88 Группа: Участник Сообщений: 511 Награды: 3 Регистрация: 19.09.2009 |
Лучше вы поделитесь плагинами которые при экспорте не сохраняют настройки шейдеров материалов. Любопытно где вы их откопали, сколько не ставил плагинов и на 8 и на 11 макс - все все сохраняли.
|
 
|
|
14.01.2012, 22:51
Сообщение
#2797
|
|
Почти Мастер Репутация: 250 Группа: Забанен Сообщений: 1131 Награды: 1 Регистрация: 25.01.2010 |
чрезвычано умный "еврейский" ответ. Если вам нечего сказать, то помолчите пожалуста. Если у вас такие хорошие плагинчики, то продемонстрируте мне их работу на предоставленном мной обжекте. Хотя наверно вы сейчас скажите, что увас макс не установлен и вам его качать влом
для импорта знаю только плагин от нео, для экспорта от него же, от бардака, от ГСЦ. -------------------- До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Прочитай сам, сообщи другому! Убей салоедного имперца - спаси триединство: Белоруссия, Россия, Украина |
 
|
|
16.01.2012, 00:20
Сообщение
#2798
|
|
Мастер Игры Репутация: 193 Группа: Забанен Сообщений: 1324 Регистрация: 05.12.2010 |
Подскажите пожалуйста, насколько маску для террейна надо делать прозрачной?
Сообщение отредактировал РСФСР - 16.01.2012, 00:20 -------------------- Землю - крестьянам, фабрики - рабочим, власть - советам, мир - народам, тюрьмы - демократам.
|
 
|
|
16.01.2012, 00:50
Сообщение
#2799
|
|
Игровой Эксперт Репутация: 636 Группа: Участник Сообщений: 2251 Награды: 6 Регистрация: 12.04.2009 |
По аналогии с имеющимися:
маска Кордон (белым - под сданиями, в "дырах" террейна) Если мне склерос не изменяет: черный - полная прозрачность, белый полная не прозрачность. -------------------- |
 
|
|
16.01.2012, 01:26
Сообщение
#2800
|
|
Мастер Игры Репутация: 193 Группа: Забанен Сообщений: 1324 Регистрация: 05.12.2010 |
БогДан, Нет, я имел ввиду на сколько прозрачной надо делать всю маску.
-------------------- Землю - крестьянам, фабрики - рабочим, власть - советам, мир - народам, тюрьмы - демократам.
|
 
|
|
16.01.2012, 01:58
Сообщение
#2801
|
|
Почти Игроман Репутация: 88 Группа: Участник Сообщений: 511 Награды: 3 Регистрация: 19.09.2009 |
чрезвычано умный "еврейский" ответ. Если вам нечего сказать, то помолчите пожалуста. Если у вас такие хорошие плагинчики, то продемонстрируте мне их работу на предоставленном мной обжекте. Хотя наверно вы сейчас скажите, что увас макс не установлен и вам его качать влом
Очень смешно. Вам практически прямым текстом написали что все работает. Но если еще непонятно - у меня сейчас два Макса установлено (8й и 2011й и еще 2008 Майя) и в обоих Максах при экспорте как статики так и динамических объектов сохраняются настроенные шейдеры/материалы. Высосали проблему из пальца еще и решаете что я скажу. |
 
|
|
Текстовая версия | Сейчас: 08.05.2024, 08:07 |