Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
WolfHeart
Цитата(RayTwitty @ 03.01.2020, 23:45) *
когда в папке \logs количество файлов достигло 3390 игра при запуске стала вылетать со stack overflow

Примерно при таком же кол-ве, перестают запускаться компиляторы в SDK. smile.gif
Цитата(RayTwitty @ 03.01.2020, 23:45) *
с 29 апреля 2012 по 25 июня 2018 гг игра у меня вылетела 1696 раз (именно столько минидампов сохранилось)

В музЭй!!! ПЫСам на Рождество. z_6.gif

cjayho
QUOTE (ForserX @ 03.01.2020, 20:13) *
QUOTE (cjayho @ 03.01.2020, 11:09) *
"!" << std::endl; не?

Тоже самое, что и "/n".


Не то же.

в венде "\r\n",
в маке "\r",
в линуксе/фряхе "\n"
cjayho
QUOTE (xrModder @ 03.01.2020, 21:55) *
Для чего нужен CEnvDescriptor::CEnvDescriptor() в Environment_misc.cpp?


Это ж конструктор blink.gif
куда еще его пихать то.
ForserX
Цитата(cjayho @ 05.01.2020, 02:58) *
Не то же.

в венде "\r\n",
в маке "\r",
в линуксе/фряхе "\n"

При работе с файлами, а не при выводе в консоль
JustChiller
abramcumner, Привет,

Попытался заюзать последнюю версию твоих бинарников xray16.
Игра падает из-за рендера.

Лог:
Код
! Unknown command:  dump_infos

FATAL ERROR

[error]Expression    : error handler is invoked!
[error]Function      : handler_base
[error]File          : d:\moding\cop_engine_2017\xray16\xray\xrcore\xrdebugnew.cpp
[error]Line          : 754
[error]Description   : application is aborting


stack trace:

0023:640A299D xrCore.dll, abort_handler(), d:\moding\cop_engine_2017\xray16\xray\xrcore\xrdebugnew.cpp, 836
0023:77B0D218 ucrtbase.dll, raise()
0023:77B0E6D2 ucrtbase.dll, abort()
0023:6409EB2F xrCore.dll, mspace_free(), d:\moding\cop_engine_2017\xray16\xray\xrcore\ptmalloc3\malloc.c, 5177
0023:6408D30F xrCore.dll, doug_lea_allocator::free_impl(), d:\moding\cop_engine_2017\xray16\xray\xrcore\doug_lea_allocator.cpp, 55
0023:63C9B0D8 xrRender_R2.dll, FixedMAP<STextureList *,R_dsgraph::mapMatrixItems,doug_lea_allocator_wrapper>::Realloc(), d:\moding\cop_engine_2017\xray16\xray\xrcore\fixedmap.h, 39
0023:63C9AE82 xrRender_R2.dll, FixedMAP<STextureList *,R_dsgraph::mapMatrixItems,doug_lea_allocator_wrapper>::CreateChild(), d:\moding\cop_engine_2017\xray16\xray\xrcore\fixedmap.h, 77
0023:63CF6C31 xrRender_R2.dll, R_dsgraph_structure::r_dsgraph_insert_static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 356
0023:63CF5CF4 xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 741
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63CF5B1F xrRender_R2.dll, CRender::add_Static(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrender\r__dsgraph_build.cpp, 680
0023:63D38983 xrRender_R2.dll, CRender::render_main(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrenderpc_r2\r2_r_render.cpp, 79
0023:63D39A5D xrRender_R2.dll, CRender::Render(), d:\moding\cop_engine_2017\xray16\xray\layers\xrrenderpc_r2\r2_r_render.cpp, 281
0023:5F494E85 xrGame.dll, CLevel::OnRender(), d:\moding\cop_engine_2017\xray16\xray\xrgame\level.cpp, 792


Пробовал и сам билдить и использовать твои из releases.
Версии 1.7.0.5 и 1.7.0.4 не работают. 1.7.0.3 работает. Можешь подсказать, в чем проблема и как можно починить?

P. S. уже висит issue https://github.com/abramcumner/xray16/issues/3
NanoBot-AMK
У кого оружие может стрелять без владельца? blink.gif
cjayho
QUOTE (NanoBot-AMK @ 14.01.2020, 01:11) *
У кого оружие может стрелять без владельца? blink.gif


та не, вы не понимаете. они такие агрессивные, черные, с клююювамиии... biggrin.gif
XinnogeN
Подскажите пожалуйста, можно ли сразу переводить движок на vs2019 или для начала нужно мигрировать в vs2010 а потом на vs2019? Если использовать оригиналы исходников а не репос.
NanoBot-AMK
cjayho, просто сейчас ПЗРК решил начать делать, скриптами, с оригинальным движком не получается. Решил сделать ряд правок, и добавить скриптовых методов. Один из них это стрельбы из оружия, wpn:weapon_fire_start() и wpn:weapon_fire_stop(), ну и заодно сделать чтобы оружие стреляло без владельца. Сделал на XE, но пока не сделал отдачу, не знаю как реализовать, так, чтобы отдача била от ствола, ну чтобы оружие не просто отбрасывала, а ещё кувыркалось.
Это надо для реализации особо умных карликов, которые могут не только телекинетически подымать оружие, но и стрелять из него(наведя на врага), если у него есть патроны. ohmy.gif
Gaz24
NanoBot-AMK а что если использовать параметры от отдачи не для камеры а для худа оружия? Можно посмотреть как ведет себя оружие в Арме, Red Orchestra 2/RisingStorm 2, а также в Insurgency/Insurgency: SandStrom.
Zagolski
Цитата(Shoкer @ 24.11.2019, 16:59) *
Возвращаясь к теме подёргивания худа оружия в руках (когда игрок стоит на месте и не крутит камеру) - кажется нашёл одну из его причин (в ЗП).

Все же мне кажется, что сбоит точность float мировых координат. Потому что дрожание усиливается при удалении от центра локации (0,0,0 координат), зависит только от этого. Начинает трястись оружие в руках. Это в ЗП, где отдельные руки, в ТЧ я не проверял. Можно взять к примеру болт в руки и удаляться на самый край локи (болото, оно большое). Будет видно, как болт начинает ходить ходуном, хотя сами руки вроде как не двигаются.
То же и с оружием, у меня оно состоит из разных частей, так все части начинают ходить ходуном относительно друг-друга в случайных направлениях, того и гляди оружие рассыплется. smile.gif
GetPosition у меня на это не влияет. Т.е. сам объект вроде как перестает трястись, а то что к нему приаттачено - это нет.

Да и вообще мировые координаты сбоят даже в шейдерах. Если в них вести расчет, тоже бывает дрожание. В видовых этой проблемы нет, но оно и понятно, там точность выше.
Shoкer
Zagolski, я тоже так думаю, хотя вариант с GetPosition конкретно мне по крайнем мере помог побороть тряску в прицелах (которые тоже отдельной моделью). А вот если крутить камеру то в эти моменты дрожание возвращается. Плюс тряска похоже заметна в Demo Record но видимо от первого лица она очень "удачно" синхронизирована с камерой и поэтому там её не видно.

Есть идеи куда копать? Неужели точности float не хватает? Больше склоняюсь что в самих шейдерах действительно где то "оптимизацию" завезли (например float16 какой нибудь), м.б. в скининге - но тут я уже не сильно силён.
Zagolski
Цитата(Shoкer @ 20.01.2020, 22:33) *
Больше склоняюсь что в самих шейдерах действительно где то "оптимизацию" завезли (например float16 какой нибудь), м.б. в скининге

У меня твоя правка стоит, где half на float заменен, а в остальном на R3 везде float в шейдерах. Возможно в шейдер на скиннинг передаются костевые матрицы с "гуляющими" координатами, вот эти вот: mRenderTransform. Само локальное пространство модели у нас же постоянное, значит где-то при перемножении матриц погрешность вырабатывается. А с учетом того, что худ у нас всегда близко перед глазами, да еще и с более низким fov, вполне вероятно, что точности float может и не хватать... Если в double переделывать, тогда придется чуть ли не весь Skeleton переписывать. Там есть Dmatrix.

С другой стороны цельная модель не трясется (но трясется болт относительно рук), даже если она Hierrarhy, т.е. все равно разбивается по группам и на скиннинг отправляется в виде отдельных моделей. Поэтому скиннинг тут может быть и не причем. Вполне вероятно все же внесение погрешности в координаты где-то на верхнем уровне, в player_hud, attachable_item или вообще в CGameObject.
iOrange
Цитата(Zagolski @ 22.01.2020, 10:51) *
У меня твоя правка стоит, где half на float заменен

Вы же в курсе что уже как минимум десяток лет это один и тот же тип? wink.gif
Zagolski
Цитата(iOrange @ 22.01.2020, 17:34) *
Вы же в курсе что уже как минимум десяток лет это один и тот же тип?

Да я про движок. Там в скиннинге в ваниле используется в декларациях vs половинная точность, да и в расчетах тоже, а Shoker сменил на полный 32-бит float, тем самым возросла точность позиции вершин.
iOrange
Цитата(Zagolski @ 22.01.2020, 17:05) *
Да я про движок, в ваниле используется в декларациях половинная точность

А, пардон, я подумал вы про шейдеры. blush.gif
NanoBot-AMK
Для чего используется ogse.dll в OGSE?
И ещё, можно ли из dll вызвать код Lua с произвольным прототипом?
Т.е. например метод.
CScriptGameObject:MyMethod(MyClass0 param1, MyClass1 param1)
Где классы взяты из исходников. Метод вызывается из dll'ки, а сама функция вызывается из пропатченой xrGame.dll.
Zagolski
Цитата(NanoBot-AMK @ 26.01.2020, 00:16) *
Для чего используется ogse.dll в OGSE?

В нем рендер. Не весь, но почти.
mortan
Кст, к вопросу о дрожании прицелов, мне тут подсказали что вот это тоже влияет на дрожание, файл effectors.ltx:
Код
[zoom_inertion_effector]
camera_move_epsilon    = 0.03    ;разница между двумя векторами направления камера, когда считается что камера двинулась
Zagolski
Выяснил, что дрожание - распространенная проблема в других играх с открытым миром. И происходит это действительно из-за точности float: чем дальше мы удаляемся от центра локации, т.е. от нулевых координат, тем сильнее падает точность и начинается тряска. Предлагается решение проблемы от одной gamedev студии: создать локальные мировые координаты с камерой в центре. Как это сделать - без понятия, еще не копал. Но думаю, развивать нужно именно это направление. А может попробовать в видовых координатах расчеты худа вести? В видовых точность выше.
mortan
Zagolski, в скайриме этой тряски нету, к тому же там допустим те же головы и руки с ногами являются своеобразными аттачами и ни разу не видел чтобы там хоть что-то тряслось так же как сталкере)
Diesel
mortan, моё продположение:
В Сталкере два разных скелета лепят в один, что по политическим соображениям нельзя делать.
Такой атач возможен лишь при постоянном апдейте движения одного скелета к другому.
Вот от сюда и тряска.

В других движках реализовано на двух одинаковых скелетах и головы, и руки, и даже есть оружие.
В таком случае один скелет не читается, а все атачится на первый. Отсюда и тряски нет, потому как учитывается только один скелет.

И еще, не пытайтесь понять физику иксрей, она не основана на законах Ньютона.
Zagolski
Оказалось сами ЗП руки тоже дрожат. Модель персонажа не дрожит, хотя она тоже из нескольких частей состоит (тело, лицо, рюкзак), которые обрабатываются как отдельные модели (отдельными дипами). Но там скелет один.
Diesel
Цитата(Zagolski @ 04.02.2020, 18:19) *
Оказалось сами ЗП руки тоже дрожат. Модель персонажа не дрожит.

А что первично худ-рук или скрытая модель ГГ?
Опять же два разных скелета.

Цитата(Zagolski @ 04.02.2020, 18:19) *
Модель персонажа не дрожит, хотя она тоже из нескольких частей состоит (тело, лицо, рюкзак), которые обрабатываются как отдельные модели.

Сейчас придёт ed_rez и наверняка пару палок дёгтя кинет. biggrin.gif
Zagolski
Движок каждую группу обрабатывает как отдельную модель. Тут кстати недавно кое-что делал с моделями в одном моде для сталка (НЛС), так там модель скелета состоит из 16 групп, причем на всех одинаковый материал. Или я туплю, или это какая-то быдломодель. biggrin.gif Наверное лучше все в одну группу объединить, разве нет?
Diesel
Цитата(Zagolski @ 04.02.2020, 18:29) *
Движок каждую группу обрабатывает как отдельную модель. Тут кстати недавно кое-что делал с моделями в НЛС, так там модель скелета состоит из 16 групп, причем на всех одинаковый материал. Или я туплю, или это какая-то быдломодель. biggrin.gif

Не как отдельную модель, у каждой группы есть своя корневая кость - это для шейпов при взаимодействии с физикой. В анимации эти группы не учитываются, по крайней мере я такого не видел.

Типа бежит ГГ руки в низ как у гамодриллы, и тут прилетает пуля, и корёбит ГГ, крутя корневую кость этой группы в лево-право.
Zagolski
Возможно ты не так понял. Повторюсь, если у тебя к примеру есть ванильный калаш и он состоит из 4 групп (прицел, глушак, приклад, цевье), то этот калаш разбивается движком на 4 отдельные модели и эти модели независимо обрабатываются, в т.ч. и в шейдерах на скиннинге.
Diesel
Цитата(Zagolski @ 04.02.2020, 18:46) *
Возможно ты не так понял. Повторюсь, если у тебя к примеру есть ванильный калаш и он состоит из 4 групп (прицел, глушак, приклад, цевье), то этот калаш разбивается движком на 4 отдельные модели и эти модели независимо обрабатываются, в т.ч. и в шейдерах на скиннинге.

Не может такого быть. Модель всегда одна. А группы - это да. Тут ничего заумного нет.
Группы сделаны для скрытия причиндалов.
cjayho
Мне одному кажется что чем дальше вы углубляетесь в двигло тем толще баги вы там находите? wink_old.gif

ЗЫ. пройдет годков десять и будете знать все. Ни о чем. И доведете до идеала двигло не предназначенное уже ни для чего.

Вместо того чтобы чтото свое писать вы препарируете давно устаревшее и никому не нужное ничто.
Zagolski
Цитата(cjayho @ 04.02.2020, 17:54) *
вы препарируете давно устаревшее и никому не нужное ничто.

Если кому-то что-то неинтересно, то не надо других в этом убеждать или навязывать свое мнение. Если люди копаются в этом двигле, значит он им интересен. И это главное, остальное неважно.
И альтернатив я не вижу. Покажи мне игру с духом и габаритами Сталкера и при этом с полностью открытым функционалом для моддинга, включая исходники движка (что самое главное).
Cossack-HD
Цитата(Zagolski @ 04.02.2020, 08:40) *
Выяснил, что дрожание - распространенная проблема в других играх с открытым миром. И происходит это действительно из-за точности float: чем дальше мы удаляемся от центра локации, т.е. от нулевых координат, тем сильнее падает точность и начинается тряска.

Так вот почему у Кардана руки дрожат! Несите его к центру системы координат!
mortan
Zagolski, какие еще группы О_о?
cjayho
Цитата(Zagolski @ 04.02.2020, 17:23) *
И альтернатив я не вижу. Покажи мне игру с духом и габаритами Сталкера и при этом с полностью открытым функционалом для моддинга, включая исходники движка (что самое главное).


Unreal Tournament свежий, который в разработке.
Исходники двигла доступны.
Zagolski
Цитата(mortan @ 04.02.2020, 18:54) *
какие еще группы О_о?

То что ты в 3д редакторе выделяешь в отдельные группы.

Цитата(cjayho @ 04.02.2020, 19:00) *
Unreal Tournament свежий, который в разработке.

До свидания.
mortan
Zagolski, Material ID? При экспорте сдк объединяет все материалы с одинаковой текстурой в одну.
Trollz0r
Цитата(mortan @ 04.02.2020, 17:15) *
При экспорте сдк объединяет все материалы с одинаковой текстурой в одну.
Справедливо только для статик мешей.
Zagolski
Цитата(mortan @ 04.02.2020, 19:15) *
При экспорте сдк объединяет все материалы с одинаковой текстурой в одну.

Почему тогда при импорте этой ogf в милку группы опять разделены? Trollz0r пишет, что это только для статики. Хотя и статика тоже бьется по группам.

Вон на скрине для наглядности я выделил отдельную группу - бедро:

И каждая группа рендерится как отдельная модель, что увеличивает кол-во вызовов отрисовки (1 дроу колл на группу). Хотя в данном случае со скелетоном все 16 групп можно было объединить в одну, потому как там одна текстура и шейдер.
atanda
Цитата(mortan @ 04.02.2020, 19:15) *
При экспорте сдк объединяет все материалы с одинаковой текстурой в одну

Это же справедливо только для статичной геометрии. blink.gif
mortan
atanda, О_о ща попробую тогда, но я ни разу не видел чтобы в моделях были разные ссылки на одну и ту же текстуру внутри одного OGF.
Zagolski
Цитата(mortan @ 04.02.2020, 20:23) *
но я ни разу не видел чтобы в моделях были разные ссылки на одну и ту же текстуру внутри одного OGF.

Смотри в AXR Toolset (раздел editor OGF), у меня он корректно показывает.
mortan
Zagolski, скинь, плиз, пример такой модели.
ed_rez
Цитата(Дизель @ 04.02.2020, 15:23) *
пару палок дёгтя кинет

Нема дегтя. biggrin.gif Я вообще о таком впервые слышу. Я еще понимаю, когда скелеты, как у худ ЗП, там все понятно. Движковая какая недоработка. Если на одном скелете это происходит, вероятно к одним текстурам подключен параллакс, а к другим нет. Такое видел, знатное смещение происходит.

Цитата(Zagolski @ 04.02.2020, 15:29) *
так там модель скелета состоит из 16 групп, причем на всех одинаковый материал

Давай переведу на нормальные термины. Не скелет, а мешь, т.к. у динамической модели ТЧ только одна мешь. У статики может быть немерено мешей.
Есть кривой термин "меш", родился в моддинге на Шталкер, когда мешью стали называть материалы. Поэтому и сам использую это слово в моддинге, чтобы не вводить в ступор других участников. biggrin.gif

Цитата(mortan @ 04.02.2020, 18:15) *
Material ID?

Именно так.

Цитата(mortan @ 04.02.2020, 18:15) *
При экспорте сдк объединяет все материалы с одинаковой текстурой в одну

Дополню недописанное, чтобы не путать людей. Материалы должны иметь также идентичные настройки шейдера, компила и игрового материала. Модельный материал и игровой материал- разные вещи.
Цитата(Zagolski @ 04.02.2020, 18:32) *
Почему тогда при импорте этой ogf в милку группы опять разделены?

Потому, что разные настройки у всех материалов. Не группы, а материалы!
ed_rez
Цитата(mortan @ 04.02.2020, 19:48) *
скинь, плиз, пример такой модели.

Присоединяюсь, ибо ни фига не понятно. Юзать не собираюсь. Я чужого, окромя, ПЫС не юзаю. Мне проще самому сделать, чем исправлять.
ed_rez
Цитата(Zagolski @ 04.02.2020, 15:29) *
так там модель скелета состоит из 16 групп, причем на всех одинаковый материал

16 материалов, которые разнообразно настроены. Вот тебе пример. Берем модель ПЫС, создаем из, к примеру, 1 материала еще один материал, к примеру, пистолета, настраиваем его, что этот материал имеет шейдер weapon, компиль и игровой материал дефолтный.
Пример, http://sendfile.su/1543112
Должно быть 3 материала. Даже смотреть не буду, что у меня после компила ogf получилось, уверен!
Zagolski
Цитата(ed_rez @ 05.02.2020, 00:19) *
Не группы, а материалы!

Материалы в милке в другой закладке идут - там да, материалы. А то что у меня на скрине - это группы, там сверху на закладке написано Groups. Мне же не спорить с самой программой? Возможно в милке какие-то специфичные наименования, не как в более известных 3д редакторах. Не знаю, я не моделер.

Вот модель скелета. После скачивания переименовать в .7z
mortan
Zagolski, 15 костей с 15 сарфейсами, которые и есть Material ID biggrin.gif Зачем так делать - непонятно, в этом случае действительно все 15 сарфейсов попадают в OGF... Да и вообще судя по логу сплит идёт таки по костям.
Zagolski
Недавно встречал ванильную модель баржи на болотах, вот она:

Вроде это динамика, хотя может и статика. В ней ~28 групп (не помню точно). То есть эта баржа обрабатывается как 28 отдельных моделей. Куда это годится?
Завод нефтеперегонный в центре болот тоже около того.
ed_rez
Цитата(mortan @ 05.02.2020, 13:09) *
Зачем так делать - непонятно

Предположу, но не факт. Мне нужно разместить эту модель, как статику в разных позах и с разными разрушениями. Скелет позволяет быстро сделать. Затем скелет удаляется, а статическая модель остается. Годится для локаций. Иного применения разделения на столько материалов не вижу.

Цитата(Zagolski @ 05.02.2020, 13:23) *
Куда это годится?

Если статика, то очень даже годится, если модель разбита на множество мешей. Удобно работать в редакторе, а также создавать сектора,... на локациях.
Zagolski
Эти скелеты в игре функционируют таким образом: при спавне на локе он стоит в полный рост, но стоит к нему применить физ. воздействие, как скелет падает и рассыпается на части - череп и кости. Может быть разбитие на разные группы как раз и нужно для того, чтобы он рассыпался на отдельные модели. Если он будет цельный, вряд ли рассыплется.
Diesel
Zagolski, это батенька дестроябле-объект. рассыпается он по конфигу. Один удаляется, а два подспавниваются. Как у машины примерно.

Или просто динамический объект с переломом кости. Упал, потерял сознание....

Цитата(Zagolski @ 06.02.2020, 03:39) *
Может быть разбитие на разные группы как раз и нужно для того, чтобы он рассыпался на отдельные модели. Если он будет цельный, вряд ли рассыплется.

Это работает только у стёкл статики. И в движках типа Крайэнгина.
В Сталкере у динамики, такого нет. Никаких групп нет и не будет.

Под группой я уже понял что вы подразумеваете - это элементы по-нашему, и выше написано - ни как.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.