Энтити падают сквозь Displacement'ы

From Valve Developer Community
< Ru
Jump to: navigation, search
English (en)한국어 (ko)Русский (ru)Translate (Translate)

Проблема

Физические ентити падают сквозь деформируемые поверхности(displacements)(en). Это prop physics(en), оружие(en), prop ragdoll(en) и средства передвижения(en). NPC(en) и игрок остаются на месте.

Эта проблема появляется, если используешь HL2 (appid 220(en)) для игры на картах, компилированных после обновления SDK в Августе 2006 года. Карты, компилированные раньше этой даты, работают нормально. Эта ошибка появляется во всех картах, компилированных в Hammer, вне зависимости от мода, выбранного в меню Source SDK.

Решение проблемы

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

Face Edit Disp.png


Если параметр "No Physics Collision" не отмечен, а проблема осталась, попробуйте следующее:

  • Используйте Эпизод 1 (appid 240(en)) или Source SDK base (appid 215(en)) для вашей карты или мода. Это лучшее решение.
  • Если вы вынуждены использовать HL2 (appid 220(en)) или ваш мод построен на appid 220(en) базе и не может быть обновлен, вы должны добавить -novirtualmesh в дополнительных опциях компилирования. Компилируйте карту в expert mode(en) и добавьте -novirtualmesh в опции компилирования как показано на картинке.


Novirtualmesh command.jpg

Это увеличит размер BSP, но столкновения будут отработаны правильно.

Примеры

Displacement test0000.jpg

Displacement Test 1 На этой карте используются дисплейсменты. Заметьте что карта скомпилирована с 220 appid в Hammer, она играется нормально в Эпизод 1. Если запустить ее в HL2, лодка, гранаты и предметы проходят сквозь дисплейсмент.

Displacement test0001.jpg

Displacement Test 2 Та же карта, скомпилированная с командой -novirtualmesh . Карта работает правильно в Эпизод 1 и HL2, но размер увеличился с 235 kb до 573 kb.

Displacement Source VMF

Запомните:

Tip.pngСовет:Как только вы компилировали карту, она будет не совместима с предыдущими версиями движка.
Tip.pngСовет:Лучше всего обновить движок, чем обеспечить совместимость со старыми версиями.