Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Закрома Родины
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
RayTwitty
Аналогичным образом вылечил CWeaponStatMgun (до этого alpet поправил CWeaponMounted)



Отличия между ними в игре можно назвать такие:
1) у CWeaponStatMgun ствол подвижен при движениях камеры, у CWeaponMounted статичен;
2) у CWeaponStatMgun нет лимитов по поворотам, т.е. можно сделать полный оборот вокруг своей оси. Но в то же время лаги, когда сильно задираем ствол вверх или вниз;

После правки, у обоих вырубается коллизия. Без правки 100% есть.

P.S. я кстати заметил, что без правки визуал тоже появляется там где надо, но только на доли секунды.
alpet
Цитата(Vampir35 @ 15.07.2014, 19:39) *
Alpet, а кроме компиляции новой ревизии что-то нужно? Просто не работает пулемет, опять визуал торчит в центре локации.

По идее не нужно. Убедись, что ревизия загружена самая последняя и пересборка xrGame.dll произошла именно с ней. В отладчике должны нормально ставиться бряки на функции класса CWeaponMounted при загруженной игре.
aVo
K.D.

Нет ли планов прикрутить R3 и R4 рендеры из ЗП? Если это вообще возможно конечно
Modera
Сорцев ЧН/ЗП нет же ведь.
Tron
Цитата(aVo @ 15.07.2014, 20:21) *
K.D.

Нет ли планов прикрутить R3 и R4 рендеры из ЗП? Если это вообще возможно конечно

Слишком много работы,да и исходников R3,R4 нет в сети
aVo
Получается что у ЛА они все-таки есть? Подождем, может выложит кто, раз уж пошла такая пьянка.
Tron
Цитата(aVo @ 15.07.2014, 20:31) *
Получается что у ЛА они все-таки есть? Подождем, может выложит кто, раз уж пошла такая пьянка.

Так это уже давно было сказано,что у ЛА они есть.
Не думаю,что дезовейв будет их выкладывать
aVo
Не знал, думал только ТЧ есть. Чего же они не использовали последний движок? Как-то не логично получается столько времени сношаться с устаревшим ТЧ да еще и учить его использовать новые рендеры.

П.С. Так они и этот вроде не собирались выкладывать, или я что-то упустил?
Kontro-zzz
Не народ, а можно ли как-то прикрутить какие-нибудь фишечки на другие платформы(чн/зп), которые вы тут наработали, путем MASMa к примеру как в xray-extensions? Или все-таки без их исходников дело никуда не сдвинется.
Tron
Цитата(aVo @ 15.07.2014, 20:44) *
П.С. Так они и этот вроде не собирались выкладывать, или я что-то упустил?
Так это не от них утечка,кто-то левый выложил.
По-моему Diablo выложил,но тут я могу ошибаться.
alpet
Ещё одну правку пулемета выложил. Теперь вроде более правильно, но сама логика функционирования классов в целом остается непонятной smile.gif
Примерное описание: для каждого визуала имеется набор костей прототипов (bones - загружено из модели), и костей экземпляров (bone_instances). Для экземпляров костей движок осуществляет иерархические пересчеты их матриц трансформации, для чего у костей бывают колбеки обсчета. В случае пулемета эти колбеки тянутся к шеллу (CPhysicsShell), обработчик которого применяет инвертированную матрицу, в результате чего получаются у костей отрицательные координаты (центр объекта со знаком минус). Где-то в недрах рендера эти отрицательные координаты взаимно анигилируют с центровыми, и получается позиционирование пулемета в точке [0, 0, 0]. У меня сложилось впечатление, что для других классов с отрицательными координатами никаких анигиляций не случается... Целью правки стало запрещение изменения координат по крайней мере двух костей пулемета.
krovosnork
Цитата(aVo @ 15.07.2014, 17:44) *
Так они и этот вроде не собирались выкладывать, или я что-то упустил

Они и не выкладывали
aVo
Kontro-zzz

Когда-то спрашивал об этом malandrinus-а и ответ был примерно такой: можно, но хлопотно так как нет отладочных файлов и очень много времени нужно потратить на поиск адресов, а со временем напряженка так как есть другие приоритеты. K.D. Вроде делал по маленьку правки на ЗП но не много, посмотри на X-ray Extensions SVN, там все что есть
alpet
Цитата(aVo @ 15.07.2014, 20:59) *
нет отладочных файлов и очень много времени нужно потратить на поиск адресов

С поиском адресов есть кое-какое решение, однако я думаю без исходников все равно бесперспективно ковырять рендер. Да и много-ли он вкусностей принесет в ТЧ?
aVo
Да нет, не много, больше как временное решение пока не выложат код ЗП. Лично для меня ТЧ не представляет ни какого интереса, кроме чисто академического
RayTwitty
Цитата(alpet @ 15.07.2014, 20:58) *
Ещё одну правку пулемета выложил. Теперь вроде более правильно, но сама логика функционирования классов в целом остается непонятной

Работу коллизии подтверждаю, вроде нормально теперь работает smile.gif
Tron
У кого-то из администрации бомбануло,и они потерли пост написанный по делу
Я хоть и не автор того поста,но восстановлю его,пусть и не дословно
Цитата(aVo @ 15.07.2014, 21:24) *
Да нет, не много, больше как временное решение пока не выложат код ЗП. Лично для меня ТЧ не представляет ни какого интереса, кроме чисто академического

Наивные..

От меня:

Цитата(Shadows @ 15.07.2014, 22:27) *
Цитата(alpet @ 15.07.2014, 20:58) *
Ещё одну правку пулемета выложил. Теперь вроде более правильно, но сама логика функционирования классов в целом остается непонятной

Работу коллизии подтверждаю, вроде нормально теперь работает smile.gif

Вот только смысла в муках я не вижу.

Зачем надо было фиксить этот пулемет?-он же нигде не используется
Modera
Цитата
Зачем надо было фиксить этот пулемет?

Для модов. Ваш К.О.
Tron
Цитата(Modera @ 15.07.2014, 23:48) *
Цитата
Зачем надо было фиксить этот пулемет?

Для модов. Ваш К.О.

Не,ну это не серьезно.Можно много чего сделать на будущее,но на текущий момент, по факту,зачем?-как было сказано,лучше бы с другими проблемами бы разобрались
RayTwitty
Цитата(Tron @ 15.07.2014, 23:55) *
Не,ну это не серьезно

Серьезно для тех, кто это будет использовать.

Цитата(Tron @ 15.07.2014, 23:55) *
лучше бы с другими проблемами бы разобрались

Например?
alpet
Цитата(Tron @ 15.07.2014, 23:41) *
Зачем надо было фиксить этот пулемет?-он же нигде не используется

Из упрямства только. Слишком уж хитрый баг оказался, поначалу думалось все элементарно. Механизм работы движка с костями я раньше только в ассемблере наблюдал, а тут хоть удалось живой код поковырять.
Между тем, в скриптах кажется ещё нет возможности задавать положения костей, а ведь это открывает доступ к скриптовой анимации чего-либо.
Tron
Ну хотя бы со звуком разобрались.
Например поменяли бы наконец на OpenAL Soft,да там надо выкинуть часть функционала,благо не все EFX перекрывает+отладить(у меня в свое время крашилось при переходе на другую локацию,но мне было лень дебажить).
Или на Fmod-это вообще очень крутая штука,особенно Fmod Studio,там можно и эхо настраивать
RayTwitty
Цитата(Tron @ 16.07.2014, 00:13) *
Например поменяли бы наконец на OpenAL Soft

Так почему бы тебе этим не заняться?
Tron
А я это сделал,в свое время,но недофиксил
molotilka
Tron
В своё время я немецкий язык учил, но недоучил! biggrin.gif
Tron
Суть в том,что тупо кидаем OpenAL Soft,собираем с ним,комментим части кода где юзается EAX,собираем...запускаем...видим сидора,все хорошо,переходим на свалку-вылет.
Содержание лога не помню.

Грузим сейв-все работает.Переходим на другой уровень-снова вылет.

=>Где то есть проверка,от результата которой зависит,будет ли вылет.
RayTwitty
Tron, snd_env-зоны работали?

З.Ы. без лога вылета вряд ли что-то придумаешь .
Tron
Цитата
З.Ы. без лога вылета вряд ли что-то придумаешь .

Я не говорил,что без лога,я говорил,что не помню содержание лога

Цитата
snd_env

так они же в вручную расставляются...
Да и на кордоне их вроде нет
RayTwitty
Цитата(Tron @ 16.07.2014, 02:34) *
так они же в вручную расставляются...
Да и на кордоне их вроде нет

Сходи на Склады, там есть подвал в деревне, где расположена зона с эхом.

Цитата(Tron @ 16.07.2014, 02:34) *
Я не говорил,что без лога,я говорил,что не помню содержание лога

Ну так в топике лога нет, я это имел ввиду.
Tron
Вопрос не по теме текущего обсуждения:
Я видел в фичлисте OGSM поддержку двух новых типов АА:SMAA и FXAA.
Как понимаю их реализация лежит на xp-dev?(ставить svn клиент и вытягивать все,что бы только посмотреть, не хочется)
HikeR
Цитата(alpet @ 15.07.2014, 20:58) *
Ещё одну правку пулемета выложил.

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

Цитата(alpet @ 16.07.2014, 00:12) *
Слишком уж хитрый баг оказался

вот как можно называть багом работающую реализацию AI-шного оружия, да еще и от транспорта?
K.D.
Цитата(Tron @ 16.07.2014, 02:48) *
OGSM

OGSE.

Цитата(Tron @ 16.07.2014, 02:48) *
Как понимаю их реализация лежит на xp-dev?

Нет. Там только уже существующее в паблике. Кроме того, шейдеры этих эффектов не раз выкладывалась их авторами.
Tron
Цитата(K.D. @ 16.07.2014, 08:19) *
Нет. Там только уже существующее в паблике. Кроме того, шейдеры этих эффектов не раз выкладывалась их авторами.

Шейдер написать не проблема.
Я не могу понять как мне его использовать
HikeR
Цитата(alpet @ 15.07.2014, 20:58) *
В случае пулемета эти колбеки тянутся к шеллу (CPhysicsShell), обработчик которого применяет инвертированную матрицу

вот это к инвертированию относится? (следите за руками сталкера)


MegaNub
Помогите, пожалуйста, из-за чего это может быть? Раньше xrSoundB собиралась нормально, а сейчас появляется этот еррор:
Код
[Linker Error] Unresolved external 'Sysinit::VclInit(bool, bool, int, bool)' referenced from K:\XRAY\3RD_TOOLS\CBUILDER6\LIB\RELEASE\VCLE.LIB|vclinit
[Linker Error] Unresolved external 'Sysinit::VclExit()' referenced from K:\XRAY\3RD_TOOLS\CBUILDER6\LIB\RELEASE\VCLE.LIB|vclinit

В проект никаких изменений не вносилось. Поиск в интернете результатов не дал, пробывал очищать intermediate директорию и пересобирать, выпиливать из проекта sysinit.obj, в ALLLIB проекта присутствует cp32mti.lib, пихал в препроцессор _NO_VCL (хотя это уже из разряда бреда), ничего не помогает. Уже отчаялся в какой-то степени, не знаю чем это вызвано и как это побороть. Если эта тема где-то здесь ранее обсуждалась, прошу меня направить на путь истинный..
HikeR
а выше строки "[C++] Including vcl2.h instead of vcl.h due to -Hr switch" не наблюдается?
umad
Цитата(HikeR @ 16.07.2014, 16:11) *
Цитата(alpet @ 15.07.2014, 20:58) *
В случае пулемета эти колбеки тянутся к шеллу (CPhysicsShell), обработчик которого применяет инвертированную матрицу

вот это к инвертированию относится? (следите за руками сталкера)



То есть инвертирование координат было необходимо для НПС, управляющих пулеметом?
alpet
Цитата(HikeR @ 16.07.2014, 09:11) *
вот это к инвертированию относится? (следите за руками сталкера)

Полагаю, что нет. Когда у стационарного оружия объявляется контроллер (гг или сталкер), то колбеки шелла просто отключаются и подключаются колбеки из класса CWeaponMounted. Возможно есть косяк в колбеке по одной оси или в CWeaponMounted::cam_Update.
Код
    m_pPhysicsShell->EnabledCallbacks(FALSE);
    // enable actor rotate callback
    CBoneInstance& biX        = smart_cast<CKinematics*>(Visual())->LL_GetBoneInstance(rotate_x_bone);    
    biX.set_callback        (bctCustom,BoneCallbackX,this);
    CBoneInstance& biY        = smart_cast<CKinematics*>(Visual())->LL_GetBoneInstance(rotate_y_bone);    
    biY.set_callback        (bctCustom,BoneCallbackY,this);

Инверсия полной матрицы, означает что и поворот, и координаты позиции становятся отрицательными (PHElement.cpp):
Код
        parent.invert        (m_shell->mXFORM);
        B->mTransform.mul_43(parent,mXFORM);

В других объектах с этим все нормально, не смотря на инверсию. У меня тем не менее нет догадок, зачем она нужна.
Кстати из недоработок стационарного оружия ещё остается фиксация света фонаря гг, что ночью скажем не естественно.
autistic
если mXFORM - матрица трансформации, то для инвертирования по какой-либо оси нужно умножить один из столбцов или строк (зависит от расположения элементов матрицы в памяти: row-major или column-major) на -1
ваш к.о.

з.ы. для col-major матрицы:
|xx |yx|zx|0|
|xy |yy|zy|0|
|xz |yz |zz|0|
|xw|yw|zw|1|
HikeR
Цитата(alpet @ 16.07.2014, 11:00) *
Инверсия полной матрицы, означает...

... еще и переход от мировых к модельным координатам, например. ф-ия invert делает не полное инвертирование, а только 3x3, то есть координаты (и отсутствующий масштаб) не затрагиваются совсем, ибо
Цитата
DirectX-compliant, ie row-column order, ie m[Row][Col].
...
Translation is (m41, m42, m43), (m14, m24, m34, m44) = (0, 0, 0, 1).


не в ту сторону копаете, да и сами обнаружили, что "В других объектах с этим все нормально, не смотря на инверсию" ;)
autistic
Цитата(HikeR @ 16.07.2014, 11:21) *
еще и переход от мировых к модельным координатам

обратная матрица это нечто иное, но для перехода от мировых к локальным координатам она таки используется.
локальное_пространство = полная_трансформация * мировое_пространство^-1
HikeR
p.s.
модели и конфиги этих пулеметов не менялись во всех трех играх (кроме добавления пары новых параметров), везде они внедрялись сразу в spawn-файл, рулил ими всегда скрипт (непись стоял рядом).

маленькое наблюдение, в чистой игре банально спавним пулемет в любом месте, бежим в центр локи, юзаем — перелетаем на место спавна.
вылезаем, ищем айдишник этого пулемета, меняем ему координаты через obj.position = vector():set(x,y,z). ессно, после этого ничего не меняется, летаем на старое место.
сохраняемся, загружаемся, вуаля — визуал остался в центре, но летаем мы уже по новым координатам.

тут банальный недоделанный класс, для неписей (вернее скриптов) его хватает, но не более. взять обычный пкм из ЧН, с анимациями/звуками, поиграться с выключением передвижения (кинуть тонну в инвентарь при активации, например), в худе координаты центра вращения подправить, треногу прикрутить для полного счастья.
не, слишком просто и неинтересно?

Цитата(refuse @ 16.07.2014, 11:33) *
обратная матрица это нечто иное

там не только один этот invert. в самом пулемете порядочно матричных операций для наведения на заданную вражину.
autistic
мужики, откуда можно запулить компилируемые исходники хрея со всеми зависимостями?
alpet
Цитата(HikeR @ 16.07.2014, 11:21) *
не в ту сторону копаете, да и сами обнаружили, что "В других объектах с этим все нормально, не смотря на инверсию" wink.gif

И ведь точно подмечено. Смотрите как различаются результаты инвертирования, для пулемета и для обычного монстра. Кое что в исходных матрицах различается, так что я ещё одну правку попробую.
Tron
Цитата(refuse @ 16.07.2014, 11:41) *
мужики, откуда можно запулить компилируемые исходники хрея со всеми зависимостями?

вроде как на битбакете все собираемо-оригинальный сорец
https://bitbucket.org/stalker/x-ray/commits/all
autistic
Цитата(Tron @ 16.07.2014, 12:28) *
вроде как на битбакете все собираемо-оригинальный сорец
https://bitbucket.org/stalker/x-ray/commits/all

спасибо, вечером запулю. а есть тут админы этого репо? хотелось бы веточку отдельную там заиметь.
abramcumner
Цитата(alpet @ 16.07.2014, 12:21) *
Смотрите как различаются результаты инвертирования, для пулемета и для обычного монстра. Кое что в исходных матрицах различается, так что я ещё одну правку попробую.

У пулемета нет поворота, а у обычного монстра есть. За исключением этого матрицы одинаковые.
Tron
Цитата(refuse @ 16.07.2014, 12:30) *
Цитата(Tron @ 16.07.2014, 12:28) *
вроде как на битбакете все собираемо-оригинальный сорец
https://bitbucket.org/stalker/x-ray/commits/all

спасибо, вечером запулю. а есть тут админы этого репо? хотелось бы веточку отдельную там заиметь.

да,я,redpython,nick7(кажется это lego)
autistic
ок, добавьте меня в коммитеры, если нет возражений. мой профиль: https://bitbucket.org/mkbkompas
Tron
Цитата(refuse @ 16.07.2014, 13:01) *
ок, добавьте меня в коммитеры, если нет возражений. мой профиль:
Ок,добавил.Надеюсь,никто не против-благо на портале,знаем тебя,уже не первый год.
Там есть ветка-mint,она подразумевает,оригинальные исходники,но собираемые под последней студией(там всем заправляет nick7(Lego(?)))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.