• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в оценке работ на конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

Не стесняюсь спросить....

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.854
Благодарности
5.284
Баллы
910
Очень интересно было бы узнать, какое состояние хочет движок назначить C_NPC при ударах
Warn: 0 U:NPC: Unknown BodyState :127 .... <oNpc.cpp,#15759>

Определенной константы BS_ с 127 нет в скриптах, возможно огрызок от старых версии, возможно что-то другое, в общем интересно.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.282
Благодарности
4.581
Баллы
625
Определенной константы BS_ с 127 нет в скриптах, возможно огрызок от старых версии, возможно что-то другое, в общем интересно.
Ну в движке есть просто состояния (BS) и они лежат тупо перечислением в пределах от 0 до 30. А есть модификаторы (BS_MOD), они уже идут как побитовые маски начиная со 128, 256 и тд.
И помимо всего этого есть еще некий BS_ONLY_STATE со значением 127 (специально на 1 меньше, чем младший модификатор), который играет роль фильтра, чтобы отделять BS от BS_MOD в поле bodyState, так как и перечисление, и побитовые маски запихиваются в одну кучу.
К примеру bodyState = BS_WALK(1) | BS_MOD_DRUNK(256) будет равен 257. Чтобы из этой помойки получить чистое состояние, можем использовать выражение bodyState & BS_ONLY_STATE, тогда все что больше 127 будет удалено из результата и мы получим чистый BS_WALK(1) без модификатора. А если наоборот надо проверить наличие модификатора drunk, то используем выражение bodyState & BS_MOD_DRUNK(256) == BS_MOD_DRUNK.

Очень интересно было бы узнать, какое состояние хочет движок назначить C_NPC при ударах
Скорее всего никакое. Валидное значение BS, как следует из портянки выше, находится в пределах от 0 до 30, то есть от BS_STAND до BS_CONTROLLING соответсвенно. Варнинг срабатывает тогда, когда происходит выход за пределы этого диапазона, как бы отменяя попытку изменить состояние персонажа. Единственный на мой взгляд выход за диапазон может происходит в том случае, когда вызывается проигрывание какой-либо анимации, а одновременно с этим там еще переназначается состояние персонажа. Очевидно, что переназначать что-либо каждый раз нет необходимости, поэтому значение по умолчанию равно -1, то есть такому значению, которое лежит вне диапазона перечисления и отменяет эту операцию с дебильным варнингом.

ЗЫ так почему же ругается на 127, а не -1? Потому что -1 в бинарнике будет равен тридцати двум единицам. А при использовании фильтра BS_ONLY_STATE побитовым сложением произойдет то самое усечение значения до семи единиц, что и соответствует константе 127 в десятичной системе.
 
Последнее редактирование:

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.854
Благодарности
5.284
Баллы
910
Варнинг срабатывает тогда, когда происходит выход за пределы этого диапазона, как бы отменяя попытку изменить состояние персонажа. Единственный на мой взгляд выход за диапазон может происходит в том случае, когда вызывается проигрывание какой-либо анимации, а одновременно с этим там еще переназначается состояние персонажа.
Видимо, так и есть, вместе с варнингом иногда бывает
Warn: 0 D: zModel.cpp(zCModel::StartAni): Ani not found: T_GOTHIT .... <zModel.cpp,#2581>
Warn: 0 U:NPC: Unknown BodyState :127 .... <oNpc.cpp,#15759>

Вот только эта анимация в humans есть, почему не проигрывается, это уже другой вопрос.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.127
Благодарности
3.218
Баллы
485
Model Hits Level - модель ударяется об меш (не путать с атакой)


А что вызывается при падении предмета в воду?
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
228
Благодарности
29
Баллы
190
Подскажите, кто редактировал мир готики (New World), как загрузить отредактированный мир из .max в .zen?
Из туториалов я понял, что в Spaser 2 надо грузить .3ds но в нем стоит ограничение на 54.000 полигонов, а New World занимает около 480.000 полигонов.
Должно быть какое-то решение.
мне пока в голову пришел только вариант разбить весь мир на куски по 50.000 полигонов и подгружать их по-очереди, но это выглядит, как не правильный вариант, предчувствую кучу потерянных кусков.
Подгрузить только переделанную поляну тоже так себе вариант будут торчать "старые" полигоны. Тем более моя поляна чуть ниже по высоте. Только если вы подскажите, как в Спейсере удалять полигоны "мира"
 
Последнее редактирование:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.190
Благодарности
6.166
Баллы
1.565
Oxbow, разрезай мир на куски, потом каждый кусок экспортируй как 3дс, и в спакере их мержи.
А вообще лучше брать отдельный кусок, который находится в _work\data\Meshes\Level и там правь как тебе нужно. Потом уже в спакере компилишь полный NewWorld
 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.900
Благодарности
536
Баллы
275
Подскажите, кто редактировал мир готики (New World), как загрузить отредактированный мир из .max в .zen?
Из туториалов я понял, что в Spaser 2 надо грузить .3ds но в нем стоит ограничение на 54.000 полигонов, а New World занимает около 480.000 полигонов.
Должно быть какое-то решение.
мне пока в голову пришел только вариант разбить весь мир на куски по 50.000 полигонов и подгружать их по-очереди, но это выглядит, как не правильный вариант, предчувствую кучу потерянных кусков.
Подгрузить только переделанную поляну тоже так себе вариант будут торчать "старые" полигоны. Тем более моя поляна чуть ниже по высоте. Только если вы подскажите, как в Спейсере удалять полигоны "мира"
Рекомендую через Spacer.net, по описанному алгоритму.
 

Den4ik

Участник форума
Регистрация
14 Ноя 2020
Сообщения
51
Благодарности
1
Баллы
65
Всех приветствую. Товарищи, нужна помощь. Ранее этот вопрос уже здесь обсуждался. Касается он перевода музыки в формат готики через direct music producer. Один человек поделился видео гайдом, но на тот момент у меня ещё не было в наличии необходимых композиций, поэтому я это дело отложил. А теперь, когда композиции есть, нет гайдов, так как они были удалены и теперь не знаю как быть, надеюсь, что кто нибудь сможет помочь с этим вопросом
 

Mantrid

Участник форума
Регистрация
31 Янв 2009
Сообщения
199
Благодарности
126
Баллы
200
так как они были удалены
Отсюда?

А я ведь скачивал эти видева. Могу поделиться. :)
1697659598345.jpeg
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.845
Благодарности
1.209
Баллы
380
Mantrid, если поделишься, будет хорошо.
Я сам думал их схоронить, но благополучно упустил момент
 

Den4ik

Участник форума
Регистрация
14 Ноя 2020
Сообщения
51
Благодарности
1
Баллы
65
А ты пробовал по этому гайду делать? Я все повторил, но только для фоновой композиции и проблема такая, саундтрек начинается много раз и затем просто заканчивается и не повторяется. Не знаю в чем проблема, может кто нибудь подскажет
Пост автоматически объединён:

И ещё играет настолько тихо в игре, что если герой бежит, тот звук громче музыки. Можно ли в программе как то звук увеличить?
 
Последнее редактирование:

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.845
Благодарности
1.209
Баллы
380
Сверху Снизу