Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
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
atanda
Кто там редактор щупал?

Собрал первые три дллки. На всех остальных ловлю это:
Zagolski
Цитата(buffy @ 21.12.2018, 17:16) *
Собрал первые три дллки. На всех остальных ловлю это:

Да, там на elpack какая-то засада. Не могу никак вспомнить, что именно я делал (что-то банальное), и после этого все три редактора (ТЧ-ЗП) без проблем скомпилились.


Не понимаю, откуда берется еще один источник света на динамике. К примеру, у нас есть лампа установленная в СДК. Там установлены сам свет и глоу. Свет точечный с тенями, т.е. разбивается затем на шесть omni, но кроме них обрабатывается еще что-то как light на той же самой позиции. Сначала думал, что это статический, но нет. Глоу тоже отсекается. Что там может еще быть?
atanda
Цитата(Zagolski @ 24.12.2018, 09:56) *
elpack

Я короче тупо закомментировал ту строчку, а потом началась засада с xrECore там почему-то подключался файл render.h ИЗ xr_3da(я собираю движок из репо KD & alpet)[Вряд ли это из-за комментирования]. Я уже все включения файла render.h переписал на xrECore. Он откуда-то всё равно берётся(ЗЫ: ошибка возникает при билде BlenderDefault.cpp)
abramcumner
Цитата(buffy @ 24.12.2018, 15:19) *
Я уже все включения файла render.h переписал на xrECore. Он откуда-то всё равно берётся(ЗЫ: ошибка возникает при билде BlenderDefault.cpp)

В свойствах BlenderDefault.cpp в разделе препроцессор укажи создавать файл после препроцессирования, скомпилируй BlenderDefault.cpp, должен создасться файл что-то вроде BlenderDefault.i, в нем ищешь render.h и смотришь из какого заголовочного файла он приходит.

Ну и посмотри: https://www.gameru.net/forum/index.php?showtopic=70710
Там собирающийся СДК, хоть и для ЧН. И исходники перенесены под RAD Studio 2007.
Zagolski
Не нужно там ничего отключать, никакие Render.h и прочее, о чем где-то в соседней теме писали. Там все для сборки настроено. Исходники я брал чистые из соседних шапок. Только компоненты SDK нужны правильные и версия DirectX.
atanda
Так-так-так. Спасибо за советы! Вечером покопаюсь.
atanda
Цитата(Zagolski @ 24.12.2018, 09:56) *
после этого все три редактора

У меня такая засада возникает ещё на этапе сборки xrEPropsB
NanoBot-AMK
В 15-ой ревизии сделал правку "Новая баллистика".
Вот исходник этой правки.
Level_Bullet_Manager.cpp
CODE

void SBullet::Init(const Fvector& position,
const Fvector& direction,
float starting_speed,
float power,
float impulse,
u16 sender_id,
u16 sendersweapon_id,
ALife::EHitType e_hit_type,
float maximum_distance,
const CCartridge& cartridge,
bool SendHit,
CBulletManager* manager)
{
flags._storage = 0;
pos = position;
speed = max_speed = starting_speed * cartridge.m_kSpeed;
VERIFY (speed>0);

VERIFY(direction.magnitude()>0);
dir.normalize (direction);

hit_power = power * cartridge.m_kHit;
hit_impulse = impulse * cartridge.m_kImpulse;

max_dist = maximum_distance * cartridge.m_kDist;
fly_dist = 0;

parent_id = sender_id;
flags.allow_sendhit = SendHit;
weapon_id = sendersweapon_id;
hit_type = e_hit_type;

pierce = cartridge.m_kPierce;
ap = cartridge.m_kAP;
air_resistance = cartridge.m_kAirRes;
wallmark_size = cartridge.fWallmarkSize;
m_u8ColorID = cartridge.m_u8ColorID;

bullet_material_idx = cartridge.bullet_material_idx;
VERIFY (u16(-1)!=bullet_material_idx);

flags.allow_tracer = !!cartridge.m_flags.test(CCartridge::cfTracer);
flags.allow_ricochet = !!cartridge.m_flags.test(CCartridge::cfRicochet);
flags.explosive = !!cartridge.m_flags.test(CCartridge::cfExplosive);
flags.skipped_frame = 0;

targetID = 0;
//Новая баллистика!
u8 type = manager.m_type_ballistic
if (GameID()!=GAME_SINGLE || type==1){
air_resistance /= max_speed;
manager.m_type_ballistic = 1;
}else if(type==0)
air_resistance = manager.m_fAirResistanceK;
else
air_resistance *= 0.001f;
}

void CBulletManager::Load ()
{
m_fTracerWidth = pSettings->r_float(BULLET_MANAGER_SECTION, "tracer_width");
m_fTracerLengthMax = pSettings->r_float(BULLET_MANAGER_SECTION, "tracer_length_max");
m_fTracerLengthMin = pSettings->r_float(BULLET_MANAGER_SECTION, "tracer_length_min");

m_fGravityConst = pSettings->r_float(BULLET_MANAGER_SECTION, "gravity_const");
m_fAirResistanceK = pSettings->r_float(BULLET_MANAGER_SECTION, "air_resistance_k");

m_dwStepTime = pSettings->r_u32 (BULLET_MANAGER_SECTION, "time_step");
m_fMinBulletSpeed = pSettings->r_float(BULLET_MANAGER_SECTION, "min_bullet_speed");
m_fCollisionEnergyMin = pSettings->r_float(BULLET_MANAGER_SECTION, "collision_energy_min");
m_fCollisionEnergyMax = pSettings->r_float(BULLET_MANAGER_SECTION, "collision_energy_max");

m_fHPMaxDist = pSettings->r_float(BULLET_MANAGER_SECTION, "hit_probability_max_dist");

LPCSTR whine_sounds = pSettings->r_string(BULLET_MANAGER_SECTION, "whine_sounds");
int cnt = _GetItemCount(whine_sounds);
xr_string tmp;
for (int k=0; k<cnt; ++k){
m_WhineSounds.push_back (ref_sound());
m_WhineSounds.back().create(_GetItem(whine_sounds,k,tmp),st_Effect,sg_SourceType
);
}

LPCSTR explode_particles= pSettings->r_string(BULLET_MANAGER_SECTION, "explode_particles");
cnt = _GetItemCount(explode_particles);
for (int k=0; k<cnt; ++k)
m_ExplodeParticles.push_back (_GetItem(explode_particles,k,tmp));
m_type_ballistic = READ_IF_EXISTS(pSettings, r_u8, BULLET_MANAGER_SECTION, "type_ballistic", 0);
}

bool CBulletManager::CalcBullet(collide::rq_results& rq_storage, xr_vector<ISpatial*>& rq_spatial, SBullet* bullet, u32 delta_time)
{
float delta_time_sec = float(delta_time)/1000.f;
float range = bullet->speed*delta_time_sec;

float max_range = bullet->max_dist - bullet->fly_dist;
range = _min(range, max_range);

//запомнить текущую скорость пули, т.к. в
//RayQuery() она может поменяться из-за рикошетов
//и столкновений с объектами
Fvector cur_dir = bullet->dir;
bullet_test_callback_data bullet_data;
bullet_data.pBullet = bullet;
bullet_data.bStopTracing = true;

bullet->flags.ricochet_was = 0;
collide::ray_defs RD(bullet->pos, bullet->dir, range, CDB::OPT_CULL, collide::rqtBoth);

BOOL result = Level().ObjectSpace.RayQuery(rq_storage, RD, firetrace_callback, &bullet_data, test_callback, NULL);

if (result & bullet_data.bStopTracing) {
range = (rq_storage.r_begin()+rq_storage.r_count()-1)->range;
}
bullet->flags.skipped_frame = (Device.dwFrame >= bullet->frame_num);
if(!bullet->flags.ricochet_was) {
range = _max(EPS_L, range);
//изменить положение пули
bullet->pos.mad(bullet->pos, cur_dir, range);
bullet->fly_dist += range;
if(bullet->fly_dist>=bullet->max_dist)
return false;
//определим вылет за уровень
if(!Fbox4::point_in_box(m_BoundingVolume, bullet->pos))
return false;
//изменить скорость и направление ее полета и с учетом гравитации
float k_speed = bullet->air_resistance*delta_time_sec;
if (m_type_ballistic != 0)
k_speed *= bullet->speed;
bullet->dir.mul(bullet->speed*(1.0-k_speed)); //получим вектор скорости
bullet->dir.y -= m_fGravityConst*delta_time_sec;
bullet->speed = bullet->dir.magnitude();
bullet->dir.mul(1.0/bullet->speed); //в место normalize()
}
return (m_fMinBulletSpeed < bullet->speed);
}

Требуется самостоятельно определить метод point_in_box, точка_в_боксе возвращает тру если точка внутри бокса.
NanoBot-AMK
Забыл указать.
Параметр type_ballistic в секции bullet_manager: 0 - оригинальная баллистика, 1 - из мультиплеера, 2 - немного изменённый вариант №1.
BlackHARD
Цитата(macron @ 07.06.2014, 11:57) *
Исправленный экзешник v4 для S.T.A.L.K.E.R ТЧ 1.0006:
http://yadi.sk/d/At9Tw0ueSaDyS


Спасибо Братан, ты лучший! Игра вообще перестала запускаться totstalkir.gif

FATAL ERROR
Код

[error]Expression    : I
[error]Function      : CInifile::Load
[error]File          : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp
[error]Line          : 166
[error]Description   : Can't find include file:
[error]Arguments     : weather_default2.ltx


stack trace:


Если что, то моды на погоду не ставил

Цитата(Shadows @ 01.08.2014, 23:24) *
Хоть сейчас это уже не так актуально, но всё же...
Залил новую ревизию для Xray-Extensions (ТЧ 6 патч):
1. Восстановлены консольные команды:


О, вот это то что нужно!
Жаль только гугл сломался...
xrModder
Цитата(BlackHARD @ 05.01.2019, 16:03) *
Цитата(macron @ 07.06.2014, 11:57) *
Исправленный экзешник v4 для S.T.A.L.K.E.R ТЧ 1.0006:
http://yadi.sk/d/At9Tw0ueSaDyS

Игра вообще перестала запускаться totstalkir.gif
Код
[error]Description : Can't find include file
[error]Argument    : weather_default2.ltx

Если что, то моды на погоду не ставил

weather_default2.ltx — такой погоды нет в оригинале.
BlackHARD
Цитата(xrModder @ 05.01.2019, 12:22) *
weather_default2.ltx — такой погоды нет в оригинале.


Возможно, нужно без геймдаты попробовать, стоит еще оружейный пак Alternative Weapon Pack 1.4 beta
Может конфликтует из-за мода на текстурки Photo Realistic Zone 2.1.. без правок всё нормально игралось.
P.s. если это мой просчет извиняюсь.
xrModder
BlackHARD, скорее всего проблема с Photo Realistic Zone 2.1. Проверь в weathers конфиги и инклуды к ним.
RayTwitty
Цитата(BlackHARD @ 05.01.2019, 13:03) *
О, вот это то что нужно!
Жаль только гугл сломался...

Переехали на гитхаб: https://github.com/KD87/xray-extensions
Вики: https://xray-engine.org/index.php?title=X-Ray_extensions

З.Ы. Погода не инклудится в движке. Явно что-то в геймдате.
BlackHARD
Цитата(RayTwitty @ 05.01.2019, 18:35) *
З.Ы. Погода не инклудится в движке. Явно что-то в геймдате.


Переустановил по чистому, оружейный пак последним поставил, теперь всё норм)+ поставил движок rc1 1.0007 . Но из-за крутой графики появились редкие фризы на 1-5 секунд.
Никто случайно не в курсе для Тч есть x64 движок? Ну или хотя бы чтобы нормально все было на многоядерных процах и больше оперативы использовалось.
ForserX
Цитата(BlackHARD @ 06.01.2019, 22:41) *
Никто случайно не в курсе для Тч есть x64 движок? Ну или хотя бы чтобы нормально все было на многоядерных процах и больше оперативы использовалось.

ТЧ мёртв. А вообще, новые OGSR x64. Но там нет многопоточности. Из открытых единственный x64 с (хоть каким-то) многопотоком - Окси
BlackHARD
Цитата(ForserX @ 06.01.2019, 22:45) *
Цитата(BlackHARD @ 06.01.2019, 22:41) *
Никто случайно не в курсе для Тч есть x64 движок? Ну или хотя бы чтобы нормально все было на многоядерных процах и больше оперативы использовалось.

ТЧ мёртв. А вообще, новые OGSR x64. Но там нет многопоточности. Из открытых единственный x64 с (хоть каким-то) многопотоком - Окси


А что такое ogsr x64? Я только огсе видел) Ну в принципе движок у игр то один(3 частей) насколько трудно будет адаптировать Тч под оксиген?
Zagolski
Цитата(BlackHARD @ 07.01.2019, 12:16) *
насколько трудно будет адаптировать Тч под оксиген?

Задача трудоемкая, не советую связываться. По сути это перенос ТЧ на движок ЗП. С кучей проблем столкнешься, от несовместимости UI до оружия и вообще моделей, и перекомпиляции локаций.
ForserX
Zagolski, окси зп сам по себе с трудом поддерживает...

Цитата(BlackHARD @ 07.01.2019, 12:16) *
А что такое ogsr

Проект по редаксу ОГСЕ. Ссылка на репо есть в шапке.
RayTwitty
Вопрос по поводу диалогов и UI.
В ЗП есть хоткеи на каждый пункт диалога, кнопки 1, 2 ... 9 выбирают соответствующую фразу. А что если фраз будет больше 9? Ведь кнопки "10" на клаве нет. Какой номер тогда будет у этой фразы? У меня два варианта -
1) не рисовать у следующих фраз номера вообще, но визуально это будет выглядеть странно
2) рисовать номера, но без хоткеев, но тогда создается неоднозначное поведение с точки зрения UX

В принципе, тот же вопрос к тем, кто перетягивал эту фичу из ЗП в свои движки, например видел в OGSR. Как-то прорабатывался этот вопрос?
https://github.com/OGSR/OGSR-Engine/wiki/По...-in-the-dialogs
abramcumner
Цитата(RayTwitty @ 19.01.2019, 00:42) *
А что если фраз будет больше 9? Ведь кнопки "10" на клаве нет. Какой номер тогда будет у этой фразы?

Можно дальше нумеровать буквами: a,b..z.
Еще можно попробовать добавить небольшой таймаут на активацию фразы после нажатия кнопки. Если в этот таймаут нажали еще кнопку, то собирать из двух нажатий двузначное число.
Или переработать диалог. Больше десяти вариантов ответа не перебор?
Trollz0r
RayTwitty, ты там викторины устраивать собрался, что ли?
atanda
А можно просто вылет вызвать, сославшись на какую-нибудь несуразицу cool.gif
RayTwitty
Цитата(abramcumner @ 19.01.2019, 12:03) *
Или переработать диалог. Больше десяти вариантов ответа не перебор?

Поди объясни это "сценаристам"/"конфигерам" biggrin.gif
xrModder
Цитата(RayTwitty @ 19.01.2019, 03:42) *
А что если фраз будет больше 9? Ведь кнопки "10" на клаве нет. Какой номер тогда будет у этой фразы?

Мало кто из моддеров (если таковые вообще есть) используют более 5 и даже 7-8 вариантов ответов. Ещё меньше игроков, использующих клаву для выбора ответа. Всё таки это "разговор" в игре, даже в экзаменах не более 5 ответов.
RedMagic
Цитата(RayTwitty @ 19.01.2019, 00:42) *
А что если фраз будет больше 9?

It's "By design ©".
Issue closed.
Reason: not a bug.

PS:

abramcumner
Цитата(RayTwitty @ 19.01.2019, 18:55) *
Поди объясни это "сценаристам"/"конфигерам" biggrin.gif

Ну так им надо дать нормальные средства. Больше 5 ответов это или бартер какой-нибудь, ремонт или еще что-то, требующее нормального отдельного интерфейса.
Influx
Господа, кто-нибудь может подсказать что именно делает "Измененная анимация безоружного гг" в 3 паке Cut X-Ray? Наивно предположил что кто-то заморочился анимировать пустые руки при беге, но в игре изменений заметить не смог.
RayTwitty
Influx, без правки, ГГ ходит так, как будто швабру проглотил. Проверить можно как минимум, взяв в руки болт и переключить вид от 3 лица.
Influx
Мда действительно, спасибо. Бег голубком смотрится так коряво что фикс легко упустить из виду. Глупый вопрос, но стремиться понять не постыдно: почему никто за года так и не сумел анимировать бег гг без оружия? Руки двигаются при беге и наличии в руках пистолета/ножа, я понимаю что это скорее всего исключительно сложно, но почему именно оказалось невозможным выдрать анимацию рук бега с мелкими предметами и приладить её к пустым рукам?
NanoBot-AMK
Influx, там просто надо имя анимации поменять, и делов то. Это легко сделать и в исходниках, и в XRayExt.
RayTwitty
Цитата(Influx @ 22.01.2019, 20:42) *
почему никто за года так и не сумел анимировать бег гг без оружия?

Потому что аниматоры на сталкер занесены в красную книгу, их почти нет.
Influx
NanoBot-AMK серьезно? Это я тут сталкер вспомнил и решил потвикать. Слегка увлекся и просто обалдел какой огромный для своего времени у движка функционал и как многим можно нагрузить современную систему. Практически все что можно представить, люди за столько лет уже сделали своими работами, и траву тебе до горизонта, и графику за обычные пределы анлокнули.

Вот и до бега дошел, либо плохо искал, но не смотря на то что это видимо не так сложно (для тех кто в теме) исправить, мода так и не нашел. В сети люди об этом почти ничего не пишут или пишут открытым текстом что готового фикса не существует в сети. Это на самом деле возможно сделать или эта та ситуация когда легко до тех пор пока не берешься? Коментарии других экспертов приветсвуются.
macron
Цитата(Influx @ 22.01.2019, 20:42) *
Глупый вопрос, но стремиться понять не постыдно: почему никто за года так и не сумел анимировать бег гг без оружия?

Ну как бы, подобные вопросы решались еще в 2007, и частично уже успели забыться. В крупных модах всё давно и так решено. Вот немного ништяков из 2007, можешь поковыряться если скучно:
https://yadi.sk/d/8cKCw7Mb55QpWw
Influx
Цитата(macron @ 22.01.2019, 21:25) *
В крупных модах всё давно и так решено.

Не подскажешь из какого мода можно пофикшеный бег выдрать? За ссылку спасибо, занятные раритеты. Жаль анимация экипирования как и многое другое без дела осталась.
macron
Цитата(Influx @ 22.01.2019, 22:13) *
Не подскажешь из какого мода можно пофикшеный бег выдрать?

Пофикшеный бег (с внешней камеры, ТЧ). Сделал на основе наработок для OLR. Работает только вместе с подправленными моделями (в составе).
https://yadi.sk/d/NTOmAJyE_gBV2g

Еще движково-скриптовые фиксы спринтов от первого лица (ТЧ).
https://yadi.sk/d/nlZsIkmyj3CNX

Фиксы рендеров (ТЧ).
https://yadi.sk/d/jD9fMmDo3LwV4x
Influx
Спасибо, macron! Выручил хоть и мог пройти мимо, спасибо!
RayTwitty

Кто-нибудь в курсе, почему машины (скорее всего не только они) при быстром перемещении дергаются? Где-то апдейт визуала не успевает?

NanoBot-AMK, ты вроде физику ковырял, наверняка в курсе biggrin.gif
Diesel
Цитата(RayTwitty @ 28.01.2019, 03:34) *
Кто-нибудь в курсе, почему машины (скорее всего не только они) при быстром перемещении дергаются? Где-то апдейт визуала не успевает?

Баговая мешь это. Если грамотно делать - ничего не дёргается.

И еще такое дёргание напрямую связано с количеством полигонов. Для ТЧ это оптимально ниже 12к, для ЗП ниже 80к.

У той Нивы одни диски весят больше самой машины.
RayTwitty
Цитата(Дизель @ 28.01.2019, 01:47) *
Баговая мешь это. Если грамотно делать - ничего не дёргается.

И еще такое дёргание напрямую связано с количеством полигонов. Для ТЧ это оптимально ниже 12к, для ЗП ниже 80к.

У той Нивы одни диски весят больше самой машины.

Бред.

Во 1) эта Нива меньше 12к полигонов
Во 2) скелет новый, диски весят ровно столько, сколько нужно, вся машина не больше 1500 кг.
В 3) "баговая мешь" - ответ в стиле "понос? переустанови винду!". Что именно там может глючить?

Как по мне, слишком медленный апдейт у Физикс Шелл Холдера какого-нибудь, но это просто предположение, ничего не дебажил ещё.
Zagolski
Я помнится в ОГСЕ на Ниве ездил, там ничего не дергалось. Да и в других модах ни разу подобного не видел. Может из-за
Цитата(RayTwitty @ 28.01.2019, 02:31) *
Во 2) скелет новый

RedMagic
Цитата(RayTwitty @ 28.01.2019, 01:34) *
Кто-нибудь в курсе, почему машины (скорее всего не только они) при быстром перемещении дергаются? Где-то апдейт визуала не успевает?

По опыту работы с Unity скажу что конкретной такой баг физики возникают из-за выключенной интерполяции твердого тела.

Что такое интерполяция. Интерполяция и Экстраполяция.

Как это реализовано в xray не подскажу.
RayTwitty
Цитата(Zagolski @ 28.01.2019, 03:50) *
Я помнится в ОГСЕ на Ниве ездил, там ничего не дергалось. Да и в других модах ни разу подобного не видел. Может из-за

Нет, дело не в модели, 99%.

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

RedMagic, вот это, я думаю, уже ближе.

Пока выявил что:
1) чем выше скорость, тем выше скачки (начинают наблюдаться от 40 км/ч и выше)
2) изменение ph_timefactor не влияет на результат

upd2: Я похоже прав, с отключенным vsyns, при взгляде в небо через машину, счетчик улетает за 400 кадров и машину начинает колбасить.
Modera
Дёргание убирается повышением значения консольной команды ph_frequency, если кто не понял из нашего разговора.
stalkergoshawk
Здравствуйте. Собираюсь заняться впервые правками движка ЗП, метод сборки движка ЗП от Shoker что описан в теме Закрома Родины, еще актуален или есть уже способы по лучше?
И еще указанные там исходники engine.vc2008.fixed и stasvn близки к релизной версии игры 1.6.02 и подойдут для правок или лудше взять другие исходники?
ForserX
Пили Окси!

Пили Окси!
stalkergoshawk
ForserX, если я правильно понел то Окси это https://github.com/xrOxygen/xray-oxygen? Но там исходники уже с правками вроде?
ForserX
stalkergoshawk, а чем это плохо? Или хочешь с ноля?
stalkergoshawk
ForserX, хочу начать с чистых исходников, близких к оригинальной игре. Планирую пока попробовать сделать лишь несколько небольших правок, например убрать авто перезарядку, вылет по mp_ranks, изменить fov и еще несколько. Конечно можно просто взять уже готовые исходники например oxygen или shoker, но полный список правок в них мне не известен, да и что делать с лишними правками которые мне не нужны, вырезать-долго. хотелось бы иметь только нужные мне правки и нечего лишнего.
Zagolski
Юзай двиг от abramcumner, он наиболее приближен к чистому 1.602 (собсно стороннего там вообще ничего нет, только правки багов). И собирается "под ключ".
https://github.com/abramcumner
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.