Перейти к содержанию

Modera

Сталкеры
  • Публикаций

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

  • Посещение

Весь контент Modera

  1. Мод с деревней анимэ-баб в зоне и набигающими туда задротами в балаклавах?))
  2. Да тут обе стороны неплохо так развлекаются. А откуда я должен про гамеру слышать? С админами я никогда не был особо близко знаком. Можешь конечно в вк написать олегатору, если интересно. Хотя я вообще не уверен что у гамеру есть какое-то будущее, там пользователей не так много было, щас пока он закрыт все остатки про него забудут и разбредутся, и даже если откроют там будет пустота.
  3. another а в какой мод ты играешь? Просто эту опцию добавили только в зове припяти, в чистом небе и тенях её и не было. В зове команда для включения такого режима g_crouch_toggle on.
  4. Вообще это возможно, просто делается немного (много) по хитрому. В общем надо в той папке где у тебя user.ltx создать два файла run_on.ltx и run_off.ltx с таким содержимым: g_always_run on bind_console cfg_load run_off.ltx kLSHIFT g_always_run off bind_console cfg_load run_on.ltx kLSHIFT Потом в user.ltx Убрать bind accel kLSHIFT, или в консоли выполнить unbind accel, и вместо этого написать bind_console cfg_load run_on.ltx kLSHIFT. И вауля! Теперь состояние бег/ходьба должно переключаться по нажатию левого шифта. Есть правда побочный эффект с тем что оно будет гадить в консоль сообщениями о загрузке конфигов при каждом нажатии шифта, не знаю сильно это страшно или нет.
  5. HollowKrueger ладно, исправил "Ух, давно я всяких странных переносов моделек из игры в игру не делал." на "Ух, давно я операций по пересадке головы не делал.", надеюсь так будет лучше.
  6. Ух, давно я операций по пересадке головы не делал. Вот вам Нико Беллич для чистого неба. https://drive.google.com/file/d/1v26Tnd7JDyQMEm248g-B_f33d-rUnNcr/view?usp=sharing Возможно подойдёт и для ЗП. Хотел сначала сделать в его стандартной куртке, но что-то сходу такую модель нигде не нашел на гта-сайтах, только в рубашке. Не качать же ГТА4 только ради одной модели? Поэтому сделал в костюмах из сталкера, в куртке, в костюме одиночек и в костюме наёмника, каждый вариант есть со снятым и одетым капюшоном.
  7. Modera

    АчивОЧКА

    Со вкусом лимона!
  8. Mervin62 да, я в него не играл правда. Но скриншот меню с наёмным убийцей в шмотках размером больше нужного мне запомнился.
  9. Значит в некоторых движках эту бяку исправили. Но в ванильном ТЧ и ЧН точно есть.
  10. С обычным шейдером будет вот такой вытянутый результат. Хотя с тем что я предложил тоже есть баг, модель может исчезать в стене если вплотную встать.
  11. Играю тут в НС 2010, там есть прозрачный аномальный бизон, которым вооружаются враги в невидимых экзоскелетах. Симпатичная штуковина. Однако если эту пушку взять в руки, то вместо прозрачного бизон станет просто блестящим, с текстурой воды. Дело в том что если просто назначить прозрачные шейдеры худовой модели оружия, то модель сильно уедет вперёд. Это связано с тем, что все худовые модели в сталкере рисуются с уменьшенным, в два раза примерно, углом обзора, для того чтобы нивелировать эффект рыбьего газа, который возникает если рисовать худ с полным углом обзора, что можно лицезреть в таких играх как крайзис и сурвариум, и это одна из причин почему я считаю их отстоем. Однако с прозрачными шейдерами уменьшение угла обзора почему-то не срабатывает, и получается то что можно видеть на скрине выше. Чтобы это пофиксить нужно создать специальный костыльный шейдер прозрачности для худа, который рисует всё с уменьшенным углом обзора. В модели аномального бизона для прозрачности используется шейдер models\pautina, на его основе и будем делать. Поэтому лезем в gamedata\shaders\r1 и находим там файл models_pautina.s. Если его открыть можно увидеть такой код: function normal (shader, t_base, t_second, t_detail) shader:begin ("model_distort4ghost","particle") -- particle_alphaonly : sorting (3, true) : blend (true,blend.srccolor,blend.invsrcalpha) : aref (true,0) : zb (true,false) : fog (false) : distort (false) shader:sampler ("s_base") :texture (t_base) end function l_special (shader, t_base, t_second, t_detail) shader:begin ("model_distort4ghost","particle_distort") : sorting (3, true) : blend (true,blend.srcalpha,blend.invsrcalpha) : zb (true,false) : fog (false) : distort (true) shader:sampler ("s_base") :texture (t_base) shader:sampler ("s_distort") :texture ("pfx\\pfx_dist_glass") //:texture (t_base) -- ("pfx\\pfx_dist_glass2" end function normal (shader, t_base, t_second, t_detail) shader:begin ("model_def_lplanes","base_lplanes") : fog (false) : zb (true,false) : blend (true,blend.srccolor,blend.one) : aref (true,0) : sorting (2, true) shader:sampler ("s_base") :texture (t_base) end Во первых, тут у нас две функции normal, что конечно является ошибкой разработчиков в самом деле используется только одна, вторая, поэтому первую лучше удалить чтобы не путаться. НО это нам с прозрачностью на худе не поможет. Дальше нужно поменять имя вершинного шейдера, которое идёт первым параметром функции shader:begin, ведь именно там применяются все транформации, в том числе и угол обзора. Я заменил model_distort4ghost и model_def_lplanes на model_distort4ghost_hud, в итоге получился такой файл: function l_special (shader, t_base, t_second, t_detail) shader:begin ("model_distort4ghost_hud","particle_distort") : sorting (3, true) : blend (true,blend.srcalpha,blend.invsrcalpha) : zb (true,false) : fog (false) : distort (true) shader:sampler ("s_base") :texture (t_base) shader:sampler ("s_distort") :texture ("pfx\\pfx_dist_glass") //:texture (t_base) -- ("pfx\\pfx_dist_glass2" end function normal (shader, t_base, t_second, t_detail) shader:begin ("model_distort4ghost_hud","base_lplanes") : fog (false) : zb (true,false) : blend (true,blend.srccolor,blend.one) : aref (true,0) : sorting (2, true) shader:sampler ("s_base") :texture (t_base) end Сохраняю его под именем gamedata\shaders\r1\models_pauhuda.s, имя нового шейдера прозрачности для худа будет models\pauhuda. Обратите внимание что в оригинале использовалось два разных вершинных шейдера (model_def_lplanes и model_distort4ghost), но я буду использовать только один, т.к. они всё-ровно не сильно отличаются. Дальше самое интересное, нужно создать вершинный шейдер. Делать его будем на основе model_distort4ghost, поэтому копируем model_distort4ghost.vs и переименовываем его как model_distort4ghost_hud.vs, и смотрим что у него внутри: #include "common.h" #include "skin.h" struct vf { float4 hpos : POSITION; float2 tc0 : TEXCOORD0; // base float4 c0 : COLOR0; // color }; vf _main (v_model v) { vf o; o.hpos = mul (m_WVP, v.pos); // xform, input in world coords o.tc0 = v.tc.xy; // copy tc // calculate fade float3 dir_v = normalize (mul(m_WV,v.pos)); float3 norm_v = normalize (mul(m_WV,v.norm)); float fade = 0.9*abs (dot(dir_v,norm_v)); o.c0 = fade; return o; } ///////////////////////////////////////////////////////////////////////// #ifdef SKIN_NONE vf main(v_model v) { return _main(v); } #endif #ifdef SKIN_0 vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } #endif #ifdef SKIN_1 vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } #endif #ifdef SKIN_2 vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } #endif И где же здесь применяется угол обзора? А вот в этой строчке: o.hpos = mul (m_WVP, v.pos); // xform, input in world coords Тут нужно немного пояснить что к чему. Угол обзора заключен в матрице m_WVP, которая на самом деле является комбинацией трёх основных матриц m_W, m_V, и m_P. Так же в шейдерах доступны и другие комбинации этих матриц, m_WV к примеру. Буквы W, V, P это первые буквы от слов World, View, Projection. Не буду сильно вдаваться в подробности того как это работает и для чего нужно, скажу только что угол обзора находится в m_P. Если взглянуть на функцию создания такой матрицы, то можно узнать что: a) для конструирования матрицы на нужен угол обзора, соотношение сторон екрана, а так же дистанция ближней и дальней отсекающих плоскостей б) угол обзора и соотношение сторон можно получить обратно из готовой матрицы путём нехитрым математических вычислений ( отношение сторон как m_P[1][1] / m_P[0][0], а угол как atan( 1.0 / m_P[1][1] ) ) С этими знаниями уже можно выцарапать угол и соотношение сторон из готовой матрицы m_P, поделить угол на два и сконструировать новую матрицу m_P_fix с исправленным углом обзора, а плоскости отсечения можно не трогать. Чтож, меньше слов, больше дела. Модифицируем наш вершинный шейдер model_distort4ghost_hud таким образом: #include "common.h" #include "skin.h" struct vf { float4 hpos : POSITION; float2 tc0 : TEXCOORD0; // base float4 c0 : COLOR0; // color }; vf _main (v_model v) { vf o; float hud_fov = 0.45; float aspect_ratio = m_P[1][1] / m_P[0][0]; float half_fovy = atan( 1.0 / m_P[1][1] ); float4x4 m_P_fix = m_P; m_P_fix[1][1] = 1.0 / tan(half_fovy * hud_fov); m_P_fix[0][0] = m_P_fix[1][1] / aspect_ratio; float3 view_pos = mul(m_WV, v.pos); o.hpos = mul (m_P_fix, float4(view_pos, 1)); // xform, input in world coords o.tc0 = v.tc.xy; // copy tc // calculate fade float3 dir_v = normalize (mul(m_WV,v.pos)); float3 norm_v = normalize (mul(m_WV,v.norm)); float fade = 0.9*abs (dot(dir_v,norm_v)); o.c0 = fade; return o; } ///////////////////////////////////////////////////////////////////////// #ifdef SKIN_NONE vf main(v_model v) { return _main(v); } #endif #ifdef SKIN_0 vf main(v_model_skinned_0 v) { return _main(skinning_0(v)); } #endif #ifdef SKIN_1 vf main(v_model_skinned_1 v) { return _main(skinning_1(v)); } #endif #ifdef SKIN_2 vf main(v_model_skinned_2 v) { return _main(skinning_2(v)); } #endif Тут конструируется матрица m_P_fix с уменьшенным до 45% углом обзора, потом точка из модели (v.pos) трансформируется сначала стандартной матрицей m_WV (комбинацией m_W и m_V), а уже потом исправленной матрицей m_P_fix. Строго говоря значение переменной hud_fov (0.45) должно быть равным значению одноимённой консольной команды hud_fov. В финальной версии игры эта команда заблокирована, а значение константно и никогда не меняется. Впрочем, всякие движковые моды типа FOV switcher могут его менять. Ну всё, шейдер готов, осталось только указать его в модели. Лезем в геймдату, открываем gamedata\meshes\weapons\bizo1\wpn_bizon_hud1.ogf через СДК, или по старинке через хекс-редактор, меняем все шейдеры models\pautina на models\pauhuda, а потом смотрим на результат: А вот так эта модель выглядит с родными текстурами оружия, вместо текстуры воды: Короче вот готовый пример прозрачного шейдера для худа + модель аномального бизона которая его использует (для Народной Солянки 2010): https://drive.google.com/file/d/1W4R28ON2x8z1u_xlw2ACOdfi-9YEYGra/view?usp=sharing А задачу создания такого шейдера для R2 рендера я оставляю вам в качестве домашнего задания, гегеге.
  12. Надо исправленный .exe с флагом LARGE_ADDRESS_AWARE, чтобы LE мог 4 гига памяти откушать. Оригинальный больше 2 не могёт.
  13. Ну значит он умер только в некоторых определённых регионах/провайдерах, лол.
  14. А у тебя сайт https://images.gameru.net открывается? Если да, то это неудивительно. Но у меня там висит ошибка подключения к серверу.
  15. Гамеру.нет помер вместе с его картинкохостингом и унёс с собой в могилу скриншоты.
  16. Понятно... Дополнено 59 минуты спустя А, всё. Я нашел в ВК, эта удалённая песня называется "Я Ем Кровь". Ну или "Уважайте женщин". Или VAPORWAVE. Или ещё что нибудь. Короче, там стоит поискать по запросу Alexdarkstalker98.
  17. Пони совместимы со всем на свете помоему, трудно найти сколь-нибудь популярную франшизу которую ещё никто не совместил с понями)