Admin → 28. September 2008 14:52
Привет всем, кто заглянул на эту страничку! А раз уж вы здесь, то значит, в современных компьютерных играх вас интересует не только потрясающей красоты картинка и завораживающий звук, но и суть происходящих (а вернее, имитируемых) явлений вам также любопытна. Что ж, это отрадно! И коль скоро у вас есть живой интерес к познанию «устройства Мира», нашедшего отражение в игровой физике – я, со своей стороны, почту за честь поддержать вашу любознательность небольшими заметками в этом разделе. А начнём мы с рассказа, пожалуй, о самом «вкусном», что только может быть в игре-симуляторе, имитирующей боевой самолёт. И, конечно же, это модель повреждений!
Чтобы понять, насколько нетривиальной является модель повреждений самолётов в «Rise of Flight» необходимо, прежде всего, сказать, что конструкция каждого нашего самолёта разделена на довольно большое количество частей (например, планер самолёта Fokker D7 состоит из 27 элементов). Каждый из этих элементов имеет свои уникальные свойства, т.е. представлен собственными инерционно-массовыми, габаритными, аэродинамическими и прочими характеристиками. Все вместе, объединённые в одном самолёте, эти элементы подчинены общим законам «динамики систем твёрдых тел переменного состава» (это очень страшное название, но поверьте, оно перестаёт пугать на фоне знакомства с кодом). В сумме все эти элементы складываются в общую картину характеристик целого самолёта. То есть в итоге наш самолёт обладает всеми необходимыми инерционно-массовыми, лётно-тактическими и другими характеристиками, которыми обладал его реальный прототип, летавший в небе над Метцем 90 лет назад.
Соответственно, если какая-либо часть нашего самолёта, например, кусок крыла, изменит своё положение относительно других частей или вообще оторвётся, то вследствие изменения положения центра масс и тензора инерции самолёта, а также углов обтекания этой части воздушным потоком, у нас есть все основания говорить о довольно достоверном моделировании последствий такого рода повреждений и их влияния на дальнейшую траекторию полёта. Более того, сам оторвавшийся от самолёта кусок продолжает падение в соответствии со всеми законами физики и с учётом уникальных свойств именно этого куска!
Зачем такие сложности, спросите вы? Не проще ли было просто отнимать от самолёта часть подъёмной силы, аэродинамического сопротивления и массы, если он потерял половину крыла или нечто подобное, как это делается в большинстве подобных игр? Наверное, это был бы самый простой и надёжный способ моделировать повреждения, если бы мы однажды не решили делать авиасимулятор на тему Первой мировой войны. Ведь для самолётов той эпохи основным, характерным видом повреждений было не разламывание конструкции (потеря отдельных частей), а её деформация! Ну как мы могли упустить столь «кинематографическую» фитчу, делающую из столкновения двух самолётов на экране настоящий экшн?! А здесь без представления самолёта, как системы связанных друг с другом элементов, увы, не обойтись. Зато такой подход позволил сымитировать целую палитру возможных вариантов разломать аэроплан: начиная от кувыркания по земле кучи того, что осталось после падения, или предательски шатающегося в полёте надломленного крыла, которое вот-вот сорвёт и унесёт воздушным потоком, и заканчивая разрыванием самолёта на искореженные части под воздействием взрывной волны.
Конечно, я ещё забыл упомянуть гибкую систему настроек модели повреждений, которую потребовалось создать для придания многочисленным типам самолётов уникальных свойств. Так, для каждого элемента конструкции каждого самолёта задаются свои пределы прочности, причём в различных направлениях действия нагрузки. Они, в свою очередь, зависят от ранее полученных повреждений, скажем, при попадании пули в силовой элемент. Это даёт возможность имитировать так называемые «отложенные отказы», когда, например, крыло ломается не сразу в момент попадания пули в лонжерон, а спустя какое-то время, когда игрок совершит очередной головокружительный манёвр, и крыло не выдерживает нагрузки. Так же, каждый элемент самолёта имеет свою «выносливость» к воздействию на него различных средств поражения, и несколько настроек «доламываемости» в повреждённом состоянии.
Безусловно, отдельного рассказа заслуживают модели повреждений винтомоторной группы – двигателя, а также других систем самолёта. О них, я думаю, мы ещё не раз поговорим в нашем блоге!