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

Редактирование движка X-Ray

Рекомендуемые сообщения

Всем привет! Нужна помощь, касательно оружейных слотов. Подскажите, как сделать, чтобы при перемещении оружия (бинокля, гранаты в т.ч) в слот при открытом инвентаре, этот предмет не брался в руки автоматически ? Т.е, чтобы пушка просто легла в слот, но сама не доставалась. Реально ли сделать такое ?

jpwsa5byp73nyaufrbis15dcci1y.png
 

Ссылка на комментарий

Подскажите людей, причастных к написанию рендера в OGSR.

Буду в личку стучаться, раз на форуме никто помочь не может/не хочет.

KRodin-а знаю...

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
1 час назад, Zander_driver сказал:

не хочет

:) Токсичность она такая.

 

Не надо никого искать и ни к кому стучаться. Вот репозиторий OGSR-Engine: https://github.com/OGSR/OGSR-Engine. А здесь(https://github.com/OGSR/OGSR-Engine/issues) описываешь свою проблему.

  • Согласен 1

Подарки

  • Ссылка на комментарий
    В 16.11.2019 в 15:25, abramcumner сказал:

    Токсичность она такая.

    Кто бы говорил :)

     

    По теме вышеозначенной проблемы. Добавил в проблемном файле выводов в лог, чтоб посмотреть, какой именно вызов ест столько времени. Нашел, посмотрел, что же именно делает этот вызов. К этому времени и KRodin в личке ответил, подтвердив мои предположения. Можно сказать, он и я к решению пришли одновременно и независимо.

    Исправление бага движка OGSR (сверхдолгий запуск)
     

    Скрытый текст

     

    iGPUNum = GetGpuNum();
    
    iGPUNum = GetGpuNum();

    заменить на

    // iGPUNum = GetGpuNum(); iGPUNum = 1;
    
    //	iGPUNum = GetGpuNum();
    	iGPUNum = 1;

    В двух местах в файле HWCaps.cpp

     

    Для машин, обладающих одной видеокартой, скорее всего проблем быть не должно. Для агрегатов, у которых видеокарты две, наверное, проблемы будут. Понятия не имею, какие, вероятно будет использовать одну все равно.

    Изменено пользователем Zander_driver
    • Полезно 3

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

    Ссылка на комментарий
    1 час назад, Zander_driver сказал:

    у которых видеокарты две, наверное, проблемы будут.

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

    ed_rez.gif

    c1f11b67ff360413e81b4e4dcf21eb41.jpg


    Подарки

  • 2
  • Ссылка на комментарий
    только что, ed_rez сказал:

    можно насильно заставить запускать нужную и только ее

    Можно то ладно. gpu_id нужной видеокарты, это меняет?

    Соль тут именно в этом.

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

    Ссылка на комментарий

    А вот у меня НА6.0 на средних настройках хорошо идёт, а здесь на самых минимальных долго грузится  и частенько тормозит. В чём тут дело не пойму, ведь движки похожие.

    Ссылка на комментарий

    Всем привет, возможно вопрос странный. Пилил функцию сокрытия худовых костей ЗП, и столкнулся с такой вот штукой:

    Во-первых не работает функция (мне нужно было вывести ее в скрипты) ну а во-вторых, ломался апдейт, при вызове функции (грубо говоря бьется сейв).Вот что делал для создания:

    1. Файлы ...\xrGame\HudItem.cpp и HudItem.h 

    Создал функцию:

    void CHudItem::SetBoneVisible		(const shared_str& bone_name, BOOL bVisibility)
    {	
    	if( !GetHUDmode()) return;
    	HudItemData()-> set_bone_visible(bone_name,bVisibility,FALSE);
    }

    Зарегистрировал ее в HudItem.h (после регистрации PlayHUDMotion)

    void				SetBoneVisible		(const shared_str& bone_name, BOOL bVisibility);

    2. Файлы ...\xrGame\script_game_object_inventory_owner.cpp и ...\xrGame\script_game_object.h

    Создал функцию:

    void CScriptGameObject::SetBoneVisible(const shared_str& bone_name, BOOL bVisibility)
    {
    CHudItem *hud_item = smart_cast<CHudItem*>(&object());
    hud_item -> SetBoneVisible (bone_name, bVisibility);
    }

    Зарегистрировал по-аналогии с остальными. Ну и в ...\xrGame\script_game_object_script3.cpp

    		.def("set_bone_visible",			&CScriptGameObject::SetBoneVisible)

    Произвожу вызов функции ( из скрипта wpn:set_bone_visible("magazin", false)) но оно не работает, и ломает скрипты как описал выше, при этом не приводя к вылету. Если кто шарит, может подскажите в каком направлении двигаться. Если что-то не правильно описал, или наделал миллион ошибок, то не бейте сильно)

    Спасибо!

    Изменено пользователем _ХоЗаР_
    Если что-то не правильно описал, или наделал миллион ошибок, то не бейте сильно)
    • Смешно 1
    Скрытый текст

    6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

    Процессор Intel Xeon E5420 4/4 2.5 ГГц

    Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

     

    Ссылка на комментарий

    @_ХоЗаР_, с++ конечно разрешает кастить что угодно к чему угодно, типа CGameObject к CHudItem, но думать приходится программисту.

     

    К сожалению так писать нельзя. Нужен какой-нибудь более длинный путь, типа object().cast_inventory_item()->cast_hud_item(), и на каждом шаге проверяй, что не получил nullptr.

    Изменено пользователем abramcumner
    • Спасибо 1

    Подарки

  • Ссылка на комментарий

    @abramcumner, Сейчас проверю. 

    9 минут назад, abramcumner сказал:

    К сожалению так писать нельзя.

    До этого выводил функцию проигрывания анимации в скрипты, и оно работало

    	CHudItem		*hud_item = smart_cast<CHudItem*>(&object());
    	if (!hud_item)
    		return;
    	hud_item -> PlayHUDMotion (anim, FALSE, hud_item, hud_item -> GetState());

     

    Оффтоп оно заработало. Заменил обьявление 

    const shared_str& bone_name

    на 

    LPCSTR bone_name

    Если не трудно, кто сможет обьяснить разницу?

    • Нравится 1
    Скрытый текст

    6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

    Процессор Intel Xeon E5420 4/4 2.5 ГГц

    Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

     

    Ссылка на комментарий

    Скорее всего эти вопросы примут за оффтоп, но: 1. В каких файлах хранится информация о слоте для брони? и 2. Где можно узнать побольше о том, как устроен и работает X-Ray?

    Ссылка на комментарий

    @STRЕLOK1, Во-первых, настройка материала. Во-вторых, строка 

    allow_ricochet = bool (true/false) (конфиг патрона)
    По этой строчке ищите файл исходного кода, а дальше как пойдет.

    Актуально для ЗП (CoP)

    Изменено пользователем _ХоЗаР_
    А вообще по хорошему нужна статейка по всем параметрам амуниции. В свое время не нашел такую.
    • Спасибо 1
    Скрытый текст

    6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

    Процессор Intel Xeon E5420 4/4 2.5 ГГц

    Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

     

    Ссылка на комментарий

    А реально вообще сделать анимации для гг, как у нпс? Например, с переключением режима, типо. Ну там, с боевого режимп на какой нибудь режим idle, когда пушка за спиной или в руках, спокойная прогулочная походка, анимация приседа, как у ботов, когда они за костром. Потом кнопочку нажал и переключился в "боевой", пушка на готове, анимации стандартные, скорость бега тоже. Ну и все в таком духе. Видал такое в каком то разрабатывающемся мп моде. 

    Изменено пользователем Helgi
    • Нравится 1
    Ссылка на комментарий
    13 часов назад, Helgi сказал:

    А реально вообще сделать анимации для гг, как у нпс? <...> Видал такое в каком то разрабатывающемся мп моде. 

    Реально, кто-то же сделал.

    • Согласен 1
    Скрытый текст

    6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

    Процессор Intel Xeon E5420 4/4 2.5 ГГц

    Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

     

    Ссылка на комментарий
    4 часа назад, _ХоЗаР_ сказал:

    Реально, кто-то же сделал.

    Сделать то сделал, а вот как бы это отдельной фичей реализовать? В тот же CoC запихнуть. В идеале ещё и на рельсы ЧН поставить. А то и для ТЧ. Уверен, многим этого в сингле очень не хватает. Хочется рпшить. Сидеть у костра нормально. Просто гулять по зоне с отрядом сталкеров. Как в fallout. Тоже шутан, но разрабы хотя бы удосужились сделать анимации взаимодействия ГГ с внешним миром. А в столкере бегает, как дегенерат с двумя вёдрами. Бюджетный вариант наруто. Какое тут погружение может быть? 

    • Не согласен 1
    • Сомнительно 1
    Ссылка на комментарий

    Добра! Имеется вопрос, правил ли кто ограничение по количество костей скелета в сталкере? Если правили, то можно ссылочку или наводачку. Буду благодарен.

    Изменено пользователем _ХоЗаР_
    Исправил
    Скрытый текст

    6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

    Процессор Intel Xeon E5420 4/4 2.5 ГГц

    Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

     

    Ссылка на комментарий

    @_ХоЗаР_, Размер как я понял подразумевает количество костей у модели?

     

    P.S Если я прав, то кто то из разрабов OGSE делал чтобы модель поддерживала 128 костей, но модель вроде как то корёжило из за этого.

    Изменено пользователем I am Dead
    • Спасибо 1

    Подарки

  • 2
  • Ссылка на комментарий
    1 час назад, _ХоЗаР_ сказал:

    правил ли кто ограничение по количество костей скелета в сталкере?

    1. По костям прямо сейчас есть запас. В моделях используется 45 костей вроде, можно 64 - итого можно добавить 19 костей ничего не меняя.

    2. Количество костей ограничивается при проверке видимости. Сейчас 64, можно увеличить до 128, как в ОГСЕ. Или сразу перейти на безграничные vector<bool>/bitset.

    ОГСЕ 128 костей: https://github.com/OGSR/OGSR-Engine/blob/255ad3c48f3f73de05227f015fa1e35eea1dfe7a/ogsr_engine/xr_3da/vismask.h#L6

     

    3. Еще есть ограничение при передаче положения костей в шейдер. Сейчас вроде 71 кость. Можно увеличить на треть передавая в шейдеры не матрицы кости, а кватернионы. Опять же есть в ОГСЕ, именно в этом были какие-то баги, если были. Вроде в oxy отладили этот момент. Ну и dx10+ c константными буферами позволяет реализовать неограниченное число костей.

    Передача костей в шейдер: https://github.com/OGSR/OGSR-Engine/blob/main/ogsr_engine/Layers/xrRender/SkeletonX.cpp#L75

    Изменено пользователем abramcumner
    • Нравится 2
    • Полезно 2

    Подарки

  • Ссылка на комментарий

    @abramcumner, а анимации из библиотеки OMF не корёжит?

    Я с этими разобраться не могу, а вы еще больше просите. !!!:dash2:

    • Сочувствую 1

    andreyholkin.gif

    rod_cccp.gif

     

    Ссылка на комментарий

    Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

    Комментарии могут оставлять только зарегистрированные пользователи

    Создать аккаунт

    Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

    Зарегистрировать новый аккаунт

    Войти

    Есть аккаунт? Войти.

    Войти
    • Недавно просматривали   0 пользователей

      Ни один зарегистрированный пользователь не просматривает эту страницу.

    AMK-Team.ru

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