2016-10-06 17:21:02
Если вы окажетесь в деревне и станете объектом угроз агрессивно настроенной стаи гусей, сделайте так: повернитесь к ним боком, руку вытяните в их сторону и немного вниз, а кисть руки держите совсем горизонтально. И вы увидите, как птицы с тревожным гоготом торопятся убраться подальше от «разъяренного супергуся», которого вы собой изобразили.
2016-10-05 15:12:42
О прохождении сквозь стены и застревании в текстурах.
Ради экономии памяти в таких играх физика обычно сочеталась с геометрией. Поскольку смещение за игровой цикл нередко было больше одного пикселя, персонаж мог попасть внутрь стены (пола или потолка), поэтому такое непроходимые объекты программировали на так называемые коллайдеры, если персонаж внутри — его выталкивает, сообщая ему вектор скорости, если стоит впритык — обнуляет соответствующий вектор скорости (вертикальный для пола/потолка, горизонтальный для стен). Цимес в том, что игра не сохраняет путь персонажа, а потому не знает, откуда он влетел. Также ради той же экономии не делаются направленные коллайдеры стен (выталкивающие в определённые стороны). Персонажа просто выталкивает в сторону ближайшей границы. Обычно это работает корректно. Но если влететь достаточно глубоко в стену (или в коде коллайдера есть дополнительные баги), то выталкивать начинает в противоположную сторону и персонаж проходит сквозь стены.
Подобные баги не изжиты и в современных играх. Когда персонажа резко отбрасывает в космос (в скайриме, после удара гигантом в землю) или персонаж «застревает в текстурах» или после застревания его начинает колбасить, на самом деле он застревает в физической сетке. Физический движок сообщает (или нет, в зависимости от реализации) телу импульс, выталкивающий его из твёрдого тела. Если части тела обсчитываются более или менее отдельно (ragdoll), то часть может погрузиться слишком глубоко и части тела начнут получать разные импульсы. Поскольку разрыв 3d-модели не предусмотрен, персонажа начинает мотать из стороны в сторону. Разумеется, современные движки устроены куда сложнее и в отдельных случаях причины колбасенья могут радикально отличаться.
Познавательно.
клюкед: ну давай тогда уж всю историю, че мелочиться
https://geektimes.ru/post/281046/
(вот же хабра-пидоры, даже линк на оригинал уже не ставят)
Ради экономии памяти в таких играх физика обычно сочеталась с геометрией. Поскольку смещение за игровой цикл нередко было больше одного пикселя, персонаж мог попасть внутрь стены (пола или потолка), поэтому такое непроходимые объекты программировали на так называемые коллайдеры, если персонаж внутри — его выталкивает, сообщая ему вектор скорости, если стоит впритык — обнуляет соответствующий вектор скорости (вертикальный для пола/потолка, горизонтальный для стен). Цимес в том, что игра не сохраняет путь персонажа, а потому не знает, откуда он влетел. Также ради той же экономии не делаются направленные коллайдеры стен (выталкивающие в определённые стороны). Персонажа просто выталкивает в сторону ближайшей границы. Обычно это работает корректно. Но если влететь достаточно глубоко в стену (или в коде коллайдера есть дополнительные баги), то выталкивать начинает в противоположную сторону и персонаж проходит сквозь стены.
Подобные баги не изжиты и в современных играх. Когда персонажа резко отбрасывает в космос (в скайриме, после удара гигантом в землю) или персонаж «застревает в текстурах» или после застревания его начинает колбасить, на самом деле он застревает в физической сетке. Физический движок сообщает (или нет, в зависимости от реализации) телу импульс, выталкивающий его из твёрдого тела. Если части тела обсчитываются более или менее отдельно (ragdoll), то часть может погрузиться слишком глубоко и части тела начнут получать разные импульсы. Поскольку разрыв 3d-модели не предусмотрен, персонажа начинает мотать из стороны в сторону. Разумеется, современные движки устроены куда сложнее и в отдельных случаях причины колбасенья могут радикально отличаться.
Познавательно.
клюкед: ну давай тогда уж всю историю, че мелочиться
https://geektimes.ru/post/281046/
(вот же хабра-пидоры, даже линк на оригинал уже не ставят)