Перейти к контенту
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

Ссылка на комментарий
только что, 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
Ссылка на комментарий
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

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