Модостроение. Общие вопросы и ответы
|
|
denis2000 | Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Помощь тем кто хочет знать больше о игре и модах Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7
Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML [cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл: 1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R]) 2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx" 3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо) Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#" Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut] [cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти? Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда. Для того чтоб найти LOG необходимо зайти вот сюда:
В Win хр лог находится:
C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs
Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.
В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs
Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка: ... $app_data_root$ = true | false| $fs_root$| users\(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx) ... $logs$ = true| false| $app_data_root$| logs\(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи) ... [/cut][cut=Получение более подробной информации о вылете (ХОВАН)] Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...) Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так: Код function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Код Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil) Второй: Код Expression : 0 Function : ErrorLog File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp Line : 49 Description : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic' [/cut]
Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы, статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста. Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими
[cut noguest=Первый юбилей нашей темы] Здравствуйте господа модостроители, и все так или иначе причастные к этому. Нашей теме исполнился 1 год. От души поздравляю Всех Вас дорогие друзья, творческих успехов. Хочу так же выразить отдельную благодарность denis2000 и ХОВАН. tracker 23.06.11
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 21.09.2014, 11:32 | Сообщение # 631 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата suhar_ ( ) Нужно ли где-то в конфигах\скриптах прописывать анимации нововведенного оружия? Только в конфиге нового ствола.
Цитата suhar_ ( ) Первый лежит по адресу - gamedata\meshes\dynamics\weapons\wpn_МоёОружие\wpn_МоёОружие_hud_animation.omf. Название файла по структуре совпадает с огф-моделью wpn_МоёОружие_hud.ogf в этой же папке. Возможно, что программа при поиске анимаций опирается на название модели, и прописывать его (этот файл с анимацией) не нужно. Поэтому и сомневаюсь. Да существуют два набора анимаций: для оружия (пример: wpn_abakan_hud_animation.omf) и для рук ГГ (пример: wpn_hand_abakan_hud_animation.omf). На один файл явно ссылается худ модель оружия (wpn_abakan_hud.ogf), на второй ВСЕ модели рук ГГ (wpn_hand_01.ogf .... wpn_hand_exo.ogf). Указанные вами анимации gamedata\anims\camera_effects\weapon\ - это анимации КАМЕРЫ ГГ, то есть во время некоторых анимаций с оружием проигрываются соответствующие анимации камеры. Это совершенно не обязательно просто разнообразит движения.
Лог с большой вероятностью говорит о том, что вы не прописали в модели рук ссылку на файл с внесенными анимациями оружия.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Дизель | Дата: Вс, 21.09.2014, 15:03 | Сообщение # 632 |
Сталкер
Разработчики
Сообщений: 260
| denis2000, вопрос такой: Как подключить созданные параллельно 4 кости ствола (Шилка), так что бы стреляла не одна, а еще и те три? Четыре кости исходят их одного сустава.
Древо на пулемёты:
root mashine_gun_tower mashine_gun mashine_gun_fire_point, mashine_gun_fire_point2, mashine_gun_fire_point3, mashine_gun_fire_point4
Башня поворачивает 4 кости, так как надо, а вот в конфигах не удалось прописать, через запятую кости. Вылета нет, но и не стреляют, те остальные. Возможно их надо упомянуть в скриптах бтр? Или это в dll делается?
andreyholkin
Сообщение отредактировал Дизель - Вс, 21.09.2014, 15:03 |
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 21.09.2014, 17:07 | Сообщение # 633 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Дизель, Движок скорее всего не подозревает о наличии нескольких суставов для стрельбы. Поэтому нужно делать так: сделать один стреляющий сустав (примерно посередине между стволами), а партиклами выстрела сделать четыре вспышки пламени в нужных местах.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Destroy | Дата: Вс, 21.09.2014, 19:20 | Сообщение # 634 |
Разработчик SGM
Вольные сталкеры
Сообщений: 308
| Возник необычный вопрос. Есть ли возможность через редактирование fsgame.ltx прописать возможность читать игре gamedata не из корня игры, а из другого произвольного каталога?
Дело в том, что синхронизируем работу над модом через облачный Yandex.Drive (нету нормального серверного компа-хоста, чтобы сделать это без облачного сервиса). И уже начинает надоедать копировать из папки Yandex.Drive измененные конфиги и прочие файлы в корень игры. Вот и думаю: может как-то смонтировать или прописать путь, чтобы игра читала геймдату оттуда?
Сообщение отредактировал Destroy - Вс, 21.09.2014, 19:22 |
|
|
Эти 0 пользователя(ей) поблагодарили Destroy за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 21.09.2014, 22:28 | Сообщение # 635 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Destroy, Такое реализовать можно, но средств fsgame.ltx оказывается недостаточно. Допустим гемдата находиться с папке D:\1\2\3\gamedata\ Папка с движком в C:\STALKER\bin\ папка с архивами в E:\arhivs\ Значит нужно прописать: 1. В ярлыке запускающем игру указать параметр Объект равным C:\STALKER\bin\xrengine.exe 2. В ярлыке запускающем игру указать параметр Рабочая папка равным D:\1\2\3\ 3. Скопировать fsgame.ltx в папку D:\1\2\3\ 4. Прописать в файле fsgame.ltx вместо $fs_root$ E:\arhivs\ во всех местах кроме $game_data$
Есть второй вариант отразить (В винде 2000 и XP называется Символьная связь англ. junction point в Vista,7,8 Символическая ссылка англ. symbolic links) папку gamedata из общего хранилища в папку с игрой. В этом случае данные реально находятся в общем хранилище, а папка gamedata в игре является неким порталом в структуру папок и файлов общего хранилища.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Destroy | Дата: Пн, 22.09.2014, 00:18 | Сообщение # 636 |
Разработчик SGM
Вольные сталкеры
Сообщений: 308
| denis2000, все несколько иначе: Каталог с игрой находится по пути, скажем: C:\S.T.A.L.K.E.R.\ Там же находится и игровая gamedata, в которую постоянно приходится закидывать обновленные другим человеком файлы, что ужасно неудобно. Серверного компа, как я уже сказал, для SVN и прочих нет.
На компе также существует папка, синхронизированная посредством облака с сервером: C:\Users\%username%\YandexDisk\ В этой папке хранится папка gamedata (и, соответственно, у нее путь — C:\Users\%username%\YandexDisk\gamedata\) Задача состоит в том, чтобы игра читала данные из этой самой gamedata, которая хранится в синхронизированной папке.
Первый раз услышал о симлинках. Сейчас пойду изучать. Хотелось бы, конечно, решить все на уровне fsgame.ltx. Попробуем...
*upd В общем, symlink — то, что нужно. Очень удобно. Казалось бы: столько пользуюсь Windows, что неизведанных функций не осталось — ан нет. Спасибо большое.
Сообщение отредактировал Destroy - Пн, 22.09.2014, 01:54 |
|
|
Эти 0 пользователя(ей) поблагодарили Destroy за это полезное сообщение: |
|
|
suhar_ | Дата: Вт, 23.09.2014, 05:16 | Сообщение # 637 |
Бывалый
Пользователи
Сообщений: 106
| Цитата denis2000 ( ) не прописали в модели рук ссылку на файл с внесенными анимациями оружия Ок, это уяснил. После добавления появился другой вылет. [cut=Лог]Expression : error handler is invoked! Function : handler_base File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp Line : 764 Description : application is aborting
[/cut] Здесь уже, в чём причина, не разобрался. Ещё такой вопрос. Если у меня не 8 худов (как в оригинале), а намного больше, есть ли возможность как-нибудь обойти эту процедуру прописывания? Дело в том, что каждый раз обрабатывать кучу моделей, по нескольку раз конвертировать в формат СДК и обратно довольно затруднительно. В нескольких оружейных модах видел, что у худов эти ссылки не прописаны в Motion'ах, хотя новых анимаций там очень много и все они работают.
|
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 23.09.2014, 07:30 | Сообщение # 638 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Такой вылет бывает от многих причин в частности если анимация не соответствует скелету модели. Ленивые проступают просто сваливают все анимации в один файл уже прописанный в моделях.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Kosha | Дата: Пт, 26.09.2014, 17:03 | Сообщение # 639 |
Отмычка
Пользователи
Сообщений: 32
| Подскажите: Принятие отряда монолита в ЗП (допустим в долг) это кат-сцена или что?
Она самая. denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
Дизель | Дата: Пт, 26.09.2014, 18:23 | Сообщение # 640 |
Сталкер
Разработчики
Сообщений: 260
| Вопрос: Существует ли возможность у движка ЗП подключить анимацию гусениц у танка? Анимация должна быть управляема с клавиатуры.
А у БТР-а разве колеса анимация вращает? denis2000Добавлено (26.09.2014, 18:23) --------------------------------------------- А у БТР-а разве колеса анимация вращает? denis2000
Мне надо что бы при нажатии на кнопки управления техникой подключалась анимация траков. Танк может ехать на шейпах и без гусениц и без колёс. Нажимая кнопку вперёд - крутятся две гусеницы в перёд. Назад - назад. И еще отдельно левая и правая, и также вперёд и назад. Итого 6 анимаций получается.? Тут я дуб. Как в танках WOT скорее не получится. Надо однако новый класс техники создать движке, а именно в dll?
Короче надо забросить эту идею.
andreyholkin
|
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 26.09.2014, 18:45 | Сообщение # 641 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Дизель, Я не просто так задал этот вопрос, ведь ответ на него автоматически отвечает и на ваш вопрос. А кто кроме вас на этом форуме знает больше о движущейся технике? Если хотите знать мое мнение то раз колеса в движении крутит не анимация, то никакую анимацию вы ее не прикрутите. А как они крутятся на остальной технике? Физика?
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Дизель | Дата: Пт, 26.09.2014, 19:18 | Сообщение # 642 |
Сталкер
Разработчики
Сообщений: 260
| Колеса на технике крутят, привязанные к обьектам колёс, шейпы. Физика. Видимые колёса всего лишь имитация физики. Они не являются движителем. Шейпы - это реактор ( причем ему необходим материал, для сцепления с грунтом, иначе ничего не будет происходить.
andreyholkin
Сообщение отредактировал Дизель - Пт, 26.09.2014, 19:23 |
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 26.09.2014, 19:31 | Сообщение # 643 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Дизель, Тогда получается единственный выход заменять гусеницы колесами с шейпами, иначе крутиться не будут.
Поскольку класс машины (CCar), не наследован от класса (CPhysicObject), то прикрутить анимацию (например idle) с движущимися гусиницами и проиграть ее командой: object:get_physics_object():run_anim_forward() не получиться.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Дизель | Дата: Пт, 26.09.2014, 19:39 | Сообщение # 644 |
Сталкер
Разработчики
Сообщений: 260
| Цитата denis2000 ( ) Тогда получается единственный выход заменять гусеницы колесами с шейпами, иначе крутиться не будут. Колеса можно заставить крутиться. С траками беда. Цепь траков имеет "овальную" форму движения, а актёр-эдитор не поддерживает такого вида физику, ему только круглую подавай.
andreyholkin
|
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
suhar_ | Дата: Сб, 27.09.2014, 21:38 | Сообщение # 645 |
Бывалый
Пользователи
Сообщений: 106
| Цитата denis2000 ( ) Дизель, ... А кто кроме вас на этом форуме знает больше о движущейся технике? Вот уж действительно, кто знает о технике больше, чем Дизель? Символичный ник
После обработки модели оружия в SDK (предположим, в моём случае это wpn_ares), в игре возникает вылет [cut=Лог]Expression : _valid( c ) Function : CPhysicsShellHolder::correct_spawn_pos File : D:\prog_repository\sources\trunk\xrGame\PhysicsShellHolder.cpp Line : 178 Description : object: wpn_ares1539 model: dynamics\weapons\wpn_ares\wpn_ares
[/cut] Причём, вылет только с моделью оружия на земле (wpn_ares.ogf), а не с моделью рук (wpn_ares_hud.ogf). Происходит, как только выбрасываю оружие на землю. Видимо, какие-то проблемы с самой моделью, но какие - не понятно. Редактировал адреса текстур, поставил другие шейдеры, установил галки напротив пунктов Make progressive и HQ geometry. Всё. Больше ничего не трогал. Никаких анимаций не добавлял. Тот же вылет возникает, если проделываю эти же процедуры, но уже с другими моделями. Что делаю не так?
Сообщение отредактировал suhar_ - Сб, 27.09.2014, 21:40 |
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
|