Работа механизма ппш в 3d анимации. Скелетная анимация в играх

Канадский дизайнер Гаррет Фоулер, фанат 3D-анимации, создал интересные анимированные модели - схемы работы старого огнестрельного оружия. Внутри подборка гифок и описания принципов работы механизмов.

Запирание канала ствола коленчатой парой рычагов (кривошипно-шатунное). Пример - пистолет Георга Люгера Luger P08

При использовании данного принципа запирания затвор фиксируется у казённого среза ствола парой сочлененных рычагов. Свободный конец одного из рычагов шарнирно закреплен на затворе, другого - на неподвижных деталях оружия. Рычаги находятся в мёртвой точке, то есть угол между их плечами близок к 180 градусам, так, что при откате подвижных частей автоматики рычаги не складываются в сторону, а сохраняют это положение до тех пор, пока их сочленение не встретит специальный уступ на неподвижной ствольной коробке. После этого рычаги могут сложиться, а затвор - самостоятельно отойти назад.

Роликовое запирание при автоматике, работавшей от отдачи ствола с коротким ходом. Пример - винтовка F-42

Использовалось в винтовке Fallschirmjägergewehr 42 - винтовке парашютиста образца 1942 года. FG-42 разрабатывалась специально для десантников люфтваффе.
Ударный механизм - куркового типа, работающий от возвратно-боевой и дополнительной пружины. Затвор пулемёта состоит из двух частей: боевой личинки, на которой выполнены зеркало затвора и направляющие для роликов, и стебля затвора, в передней части которого имеется клин. Между скосами клина и боевой личинкой находится пара роликов. При запирании клин раздвигает ролики, заводя их в пазы на муфте ствола и фиксируя боевую личинку у казенного среза. После выстрела ствол некоторое время отходит назад в запертом состоянии, после чего ролики сводятся наклонными пазами ствольной коробки, попутно выталкивая назад стебель затвора. В определенный момент ролики выходят из пазов на муфте ствола, и боевая личинка может отойти назад вместе со стеблем затвора.

Запирание коленчатой парой рычагов (кривошипно-шатунное). Пример - пулемёты "Виккерс" и "Максим"

"Виккерс" - английский вариант станкового пулемёта "Максим".
Работа этого оружия основана на автоматике с отдачей ствола (короткий ход). По мере выстрела пороховые газы отправляют ствол назад, тем самым начинает работать механизм перезарядки - он извлекает из матерчатой патронной ленты патрон, досылает его в казённик и при этом одновременно взводит затвор. После произведения выстрела операция повторяется заново.

Запирание канала ствола поворотом затвора (боевой личинки, муфты). Пример - пулемёт "Туpe-92 Heavy Machine Gun"

"Тип 92" - японский авиационный пулемёт 1930-х годов. Лицензионная копия британского пулемёта "Льюис". Широко использовался на самолётах морской авиации Японии в 1930-е годы, но к началу Второй мировой войны устарел и был заменён более мощными образцам.
Запирание канала ствола производится поворотом затвора, боевые упоры которого входят в поперечные пазы ствольной коробки. Поворот затвора при запирании осуществляется криволинейным пазом на затворе и основанием стойки затворной рамы.

Запирание канала ствола перекосом затвора. Пример - винтовка StG 44

Sturmgewehr 44 - штурмовая винтовка 1944 года.
При запирании перекосом затворная рама в крайней передней точке перемещает всё тело затвора в продольной плоскости (в то время как при запирании поворотом затвора - в поперечной), при этом задний конец затвора заходит за опорную плоскость ствольной коробки. Зеркало затвора после запирания принимает положение, перпендикулярное каналу ствола, и, соответственно, донцу гильзы.

Запирание качающейся личинкой (рычагом). Пример - Пулемет "Браунинг М2"

При запирании качающейся личинкой (рычагом) фиксация затвора у казенного среза ствола обеспечивается с помощью промежуточной детали, подвижной в плоскости, перпендикулярной оси ствола.
При использовании автоматики на основе отдачи ствола запирание осуществляется за опорные поверхности на стволе либо на затворе. После выстрела подвижный ствол проходит некоторый путь в запертом состоянии, после чего личинка встречает уступ ствольной коробки (рамы пистолета), сдвигается в плоскости, перпендикулярной оси ствола, отпирая его и давая отойти затвору.

Итак, Адамс - это конкурент Кольта, а наряду с ним "звезда" Крымской войны.

Причем в конструкцию револьвера были заложены несколько иные идеи в сравнении с теми, что предложил Кольт.
Так, револьвер - самовзводный. Вернее, как теперь говорят, DAO -стрельба с предварительным взведением курка вообще не предусматривалась. Кольт, как известно, система одинарного действия.
Казалось бы, Адамс обогнал конкурента: вторая рука для стрельбы не нужна, хват менять не нужно. Достаточно просто давить на спуск до израсходования зарядов в барабане. Но не так все просто. Спуск у "Адамса" был еще тот: тугой и резкий, тогда УСМ подобного типа еще не научились проектировать оптимально. В общем, кто ругал "Наган" за усилие и длинну спуска самовзодом из "Адамса" не стрелял. Там еще веселее.
Как результат, этот сокрострельный револьвер был намного менее точен, чем "Кольт", у которого все усилия прилагались при взведении курка, а спуск был легким и коротким. И если при стрельбе в упор это не чувствовалось, то с ростом дистанции преимущество становилось недостатком.
Кроме того, в горячке боя часто стрелок выстреливал все заряды, а капсюльник заряжать - как сигарету выкурить. Впрочем, Адамс пошел чуть ли не впереди прогресса, разработав полуунитарные патроны с частично металлической гильзой (!), которая выстреливалась вместе с пулей. Ну, в теории... как когда... На пару барабанов хватало, даже если ошметки гильзы оставались в каморе.

Причем в составе патрона был и пыж-просальник, который кроме смазки ствола, еще и оберегал заряд от подмокания и воспламенения от выстрела в соседней каморе. А перед заряжанием с "мусорного бака" (похож, правда?) снимали колпачок, закрывавший затравочное отверстие в донце гильзы.

В итоге сокрострельность возрастала довольно солидно, и, кстати, такие патроны можно было применять в любом револьвере аналогичного калибра, в т.ч. и "Кольте". Патрон был дороговат, но Британия в то время была мировым лидером чуть ли не во всем, так что могла себе позволить...

Сам револьвер был полегче и покомпактнее "Кольта", правда, пользователи жаловались на довольно хлипкий рычаг-пыжеватель, который был явно слабее монументальных конструкций Кольта и Ремингтона. Кроме того, отсутствие "щитка" позади барабана хоть и сильно облегчало револьвер, но создавало теоретическую угрозу воспламенения капсюля от удара при ношении револьвера, а при воспламенении зарядов в каморах, соседних со стреляющей, ошметки капсюлей могли поранить стрелка. У "Кольта" это было невозможно, и щиток такие ситуации предотвращал. Правда, о него же часто рваный капсюль и клинило...
В общем, и тут не все так просто.

"Адамсы" завоевали популярность не только у себя на родине, но и много где еще. Даже русские оружейники, например, Гольтяков, делали копии "Адамсов" наряду с "Кольтами". Популярность револьвера Адамса даже заставила Кольта закрыть завод в Лондоне, причем он и десяти лет не проработал. Так что конкуренция была жесточайшая.

Еще во время Крымской войны спусковой механизм "Адамса" вызвал нарекания, мол, нужно бы добавить и режим работы с предварительным взведением курка, как у "Кольта". Резонное мнение!
И конструкция УСМ револьвера претерпевает изменения... так появился "Бомон-Адамс", который еще долгие годы будут воспроизводить, правда, уже в варианте револьвера под унитарный патрон.

Не сказал бы, что конструкция сильно усложнена. Добавилось шептало, позволявшее стрелять как с предварительным взведением курка, так и самовзводом. Револьвер стал намного лучше. Впрочем, спуск самовзводом способен повергнуть в ужас современного стрелка, но надо ведь делать скидку на эпоху, когда револьверы только начинали свой путь к совершенству. А вызывающие улыбку пластинчатые пружины, которых там масса и все ломучие, тоже дань времени. Универсальные решения и многофункциональные детали еще только следовало разработать, и "нормальные револьверы" в понимании современного стрелка появились чуть ли не спустя полвека после "Кольтов" и "Адамсов", пройдя отбор среди сотен тупиковых и вычурных конструкций.

Португальская армия в ближайшее время получит современные винтовки, гранатометы и пулеметы в рамках недавнего контракта с бельгийским FN Herstal. Агентство НАТО по поддержке и закупкам (NSPA) объявило о контракте с бельгийской компанией FN Herstal на поставку португальской армии штурмовых винтовок и легких пулеметов для португальской армии.Согласно...

Легендарная винтовка Мосина замечена у ополченцев в Венесуэле

Легендарные винтовки системы Мосина замечены у ополчения, выступающего на стороне законного президента Венесуэлы Николаса Мадуро. Добровольцы применяли их для совершенствования навыков стрелковой подготовки во время проходивших недавно на территории Боливарианской Республики широкомасштабных учений "Ангостура-200".На вооружении силовых структур этого лат...

Батальоны просят патроны: Зачем армии менять калибр 5,45 мм

Между нами, мальчиками, говоря, калибр 5,45 мм для АК-74 все же слабоват. При том, что он более кучный и точный при стрельбе, обладает меньшей отдачей, но против «убойного» патрона 7,62 мм, использовавшегося большей частью в АК-47, не устоит - тут вес тоже имеет значение. Так что новость о том, что Минобороны планирует в перспективе отказаться от меньшего автоматного...

Пуля - дура, штык - молодец

Штыковая атака вообще и штык, тот самый, граненый, знаменитый - это в представлении многих людей "визитная карточка" русской армии. Той самой, с которой к соседям с ответными визитами ходили (фото штыка трехлинейки ниже). Граненый штык, применительно к армиям XIX и начала XX веков, считается в определенных кругах не очень грамотных людей таким же супер-оружием, как та...

Филиппины перевооружаются: РПГ-7 вытесняет американские гранатомёты

Филиппинские военные провели испытания российских гранатометов РПГ-7, поступивших на вооружение местных сухопутных сил. Видеозапись испытаний выложил на своем аккаунте в Facebook командир 33-й пехотного батальона подполковник Гарольд Кабунок.Российский РПГ идет на замену М67 – безоткатного 90-мм орудия образца 50-х годов, которое относится к классу гранатомётов. Его в...

«Калаш» - бренд планеты Земля

Автомат Калашникова давно стал самым популярным и массовым стрелковым оружием землян - 100 млн. выпущено только официально до 1974 года, когда появилась версия 5,45 мм. Еще больше выпущено после - в разных странах и версиях. АК красуется на гербах и флагах, солдаты охотно меняют штатные М16 (о которых поговорим ниже) и прочие стрелялки в реальном бою на АК. За 80 лет...

Есть все признаки, что Минобороны США готовы провести радикальную реформу по замене стрелкового вооружения. Связано это с военным провалом в Афганистане, в котором в 2017 году произошел перелом в пользу Талибана. «Афганцы устали хоронить», - констатирует CNN. В свою очередь и «американцам надоело получать упреки от кабульских властей, что «янки - плохие солдаты».Пента...

Анонсирован прототип новейшей американской штурмовой «сверхвинтовки»

12 декабря 2018 года в британской прессе был представлен обзор новейшей штурмовой «сверхвинтовки» следующего поколения, которая разрабатывается для армии США и вместе с аналогичным лёгким пулемётом должна заменить как созданные более 50 лет назад М16/М4, так и лёгкий пулемёт М249.Как известно, в течение многих десятилетий господства М16 американскими ор...

Пулемёты: с чего всё начиналось

В мире существует огромное количество всевозможного оружия. По ходу истории оно развивалось, совершенствовалось, приобретало все новые формы. Такой путь развития прошли и пулеметы. Самым древним предком современного пулемета, в принципе, можно считать рибадекин, который появился еще в XIV столетия. Внешне он очень напоминал орган, по...

Перспективный переносной ракетный комплекс для бундесвера

Конфликты на востоке Украины и в Сирии обозначили необходимость оснащения пехоты бундесвера более современным вооружением для поражения противника в укрытиях и в бронированной технике на близкой и средней дистанции. По оценкам командования бундесвера, состоящие на вооружении системы уже не гарантируют огневого превосходства против значительного спектра целей. В этой с...

Семейство гранатомётов на основе РПГ-7

Старый добрый гранатомёт РПГ-7, ровесник полёта Гагарина в космос, заслуженно снискал себе славу одного из самых распространенных в мире гранатомётов. РПГ-7 любим и регулярными войсками, и отрядами боевиков. О военной биографии этого гранатомёта, изрядно повоевавшего в самых разных странах, можно написать очень объёмистую книгу.На мой взгляд, его военна...

Оружие. Самое мощное стрелковое оружие. Часть 2. Пистолет-пулемёт UMP45 под патрон.45 ACP

Пистолет-пулемет UMP (Universal Machinen Pistole) производства знаменитой немецкой оружейной компании Heckler & Koch мог бы и не попасть в рейтинг самого мощного стрелкового оружия, если бы не выпускался под патроны различных калибров. Самый мощный вариант данного универсального пистолета-пулемета UMP45 выпускается под патрон.45 ACP (11,43х23 милли...

Новая штурмовая винтовка сил специального назначения бундесвера

По итогам проведенного конкурса с начала 2019 г. в части сил специального назначения сухопутных войск и ВМС Германии начнет поступать новая штурмовая винтовка. Модель получила обозначение G95K с приставкой "легкая". Новая штурмовая винтовка G95KКонкурс, объявленный 11 января 2017 г. Федеральным ведомством по вооружению, информационным технологиям и испол...

M16 во Вьетнаме: почему американская винтовка не стреляла?

Споры о том, чья штурмовая винтовка лучше: американская M16 или советский АК, пожалуй, вечны. Причем, главный аргумент противников американской конструкции основывается на мифе о ее ненадежности. Так ли это было на самом деле? Сегодня мы рассмотрим опыт использования M16 в ее первом конфликте – Вьетнамской войне. Десантник из 101-й ВДД чистит будущую M1...

Anima - это душа, отличающая живое от мертвого. Аристотелевская душа - это принцип движения, проявляющегося в четырёх видах: перемещение, превращение, убывание и возрастание. Спустя почти две с половиной тысячи лет мы используем те же категории в компьютерной графике. Скелетная анимация определяет перемещение, морфинг служит для превращений, а убывание и возрастание это обычное масштабирование. Анимированная графика оживляет образ, вдыхает в картинку душу, и это, на мой взгляд, даже важнее, чем достоверная игра света и тени.

Создание качественных скелетных 3D анимаций сегодня, пожалуй, самая труднодоступная для инди разработчиков задача. Вероятно поэтому так мало инди игр в 3D, и так много проектов в стилях пиксель арта или примитивизма, а также бродилок без персонажей в кадре. Но теперь это соотношение может измениться…

Попробуйте сосчитать количество разнообразных анимаций в Uncharted 4. По моим оценкам там около часа уникальных движений, не считая лицевой анимации (850 выражений по словам авторов). Подобные игры задают фантастическую планку качества.

Примеры анимации Uncharted 4 (>40мб GIF)



Если физический рендеринг и создание качественно освещенных статичных сцен становятся доступны энтузиастам благодаря мощным бесплатным игровым движкам и инструментам 3D моделирования, то создание хорошей анимации требует оборудования для захвата движений и длительной кропотливой работы по их внедрению. Одна из самых доступных систем это костюм neuronmocap стоимостью порядка $1.5к без учета доставки.

Мне не удалось отыскать примеров создания хотя-бы близкой по уровню анимации при помощи ручного кадрового подхода или какой-либо процедурной анимации. Максимум что возможно сделать вручную, на мой взгляд, - это простые удары, быстрые движения и стилизованная мультяшная анимация. Но как сделать реалистичную ходьбу по лестнице, где очень много деталей, связанных с переносном центра тяжести и балансом тела? Невозможно их все воспроизвести вручную. Может быть я ошибаюсь, и кто-нибудь покажет работы специалистов такого уровня?..

Все это я вспоминаю для того, чтобы оценить по достоинству щедрый подарок от Mixamo . Он буквально открывает дверь на новый уровень для независимых разработчиков: компания Adobe купила Mixamo, и теперь 2.5 тысячи скелетных анимаций для персонажей они отдают совершенно бесплатно "for unlimited commercial or non commercial use ":
www.mixamo.com

Еще пол года назад можно было их получить только выложив порядка $36 000 (ну или спиратив в сети). Помимо анимаций компания также предлагает бесплатную версию инструмента для ригинга и скининга персонажей, инструмент для создания множественных уровней детализации с минимальными потерями качества (LOD), генератор персонажей и плагин для захвата лицевой анимации.

Получить качественные и разнообразные анимационные клипы это только первая часть задачи.
Вторая часть заключается в том, чтобы корректно использовать полученные анимации при управлении персонажем. Для этого сначала нужно решить, как вообще сдвигать персонажа в сцене: на основании данных самой анимации (1), либо на основании каких-то иных соображений (например физики твердого тела) (2). То есть, либо анимация будет вычисляться исходя из произвольного (физического) движения объекта в пространстве (2), либо само смещение в пространстве будет исходить из записанной анимации, игнорируя иные вмешательства (1).

У обоих подходов есть достоинства и недостатки. В прежние времена, до массового использования захвата движений, вопрос об этом почти не стоял - персонажи двигались процедурно, на основании каких-то простых принципов, а анимационные клипы просто проигрывались для некоторого соответствия этому движению. Но чем лучше становилась анимация и графика в целом, тем заметнее становилось несоответствие движения ног и смещения персонажа, а также неестветсвенность динамики движения.

Одним из ярких примеров может быть игра Guild Wars 2 где анимация движений и графика уже достаточно хороши, но вот большой диапазон возможных скоростей и направлений движения персонажа не обеспечен столь же большим набором анимаций, и персонажи либо буксуют на месте, либо проскальзывают вперед как по льду. Та же проблема долгое время преследует и игры на движке Gamebryo (серия TES: Morrowind, Skyrim), да и многие другие.

Настоящее движение человека нелинейно - сначала мы наклоняемся вперед, затем выбрасываем ногу, и только потом начинаем движение, быстро ускоряясь после соприкосновения стопы с землей, и двигаемся по инерции до следующего шага. Подобрать функцию, точно описывающую подобное движение, сложно, и редко кто вообще об этом задумывается. Что уж говорить о более сложных движениях - стрейфе, переходах между направлениями, торможением и поворотами.

Поэтому для достижения реализма нам в любом случае потребуется гигантский набор разнообразных клипов с движениями в различных направлениях, с различной скоростью, и т.п… Кроме того, анимационные клипы редко можно использовать изолированно, воспроизводя один за другим. Чаще всего в игре присутствует множество анимаций, между которыми не заготовлено специальных анимированных переходов. Поэтому для их симуляции применяется плавное смешивание через линейную интерполяцию поворотов костей. Для удобной настройки таких переходов используется т.н. конечный автомат или машина состояний (State machine). В UE и Unity для этого есть специальные инструменты: Persona и Mecanim . Каждый узел там это некоторое состояние скелетной модели (заготовленный анимационный клип или результат их смешения - Blend Tree). Когда выполнены некоторые заданные условия, осуществляется плавный переход из одного состояния в другое, во время которого оба оказывают пропорциональное времени влияние на повороты костей и смещение объекта. Таким образом достигается иллюзия непрерывности движения.

Состояние может быть не одиночным клипом, а смешанным по тому же принципу набором клипов (Blend Tree / Blend Space). Например из клипов движений персонажа в стороны можно выбрать несколько, смешав их пропорционально вектору желаемого движения, и получить движение под любым произвольным углом. Однако существуют такие анимации, для которых смешивание оборачивается некорректными позами. Например когда одна анимация двигает ноги персонажа вперед, а другая вбок, линейное смешивание может привести к пересечению ног друг с другом. Чтобы этого избежать нужно тщательно подбирать анимационные клипы, синхронизировать их фазу, длину и скорость, либо добавлять отдельный клип специально для данного вида движений. Все это сложная и кропотливая работа. И чем больше возможных состояний и переходов между ними, тем сложнее привести их в согласие друг с другом, и проследить за тем, чтобы все нужные переходы срабатывали когда это требуется.

1) Самым очевидным решением является захват движений реального актера при помощи Motion Capture и привязка смещения персонажа в игре к смещению «корневой кости» в самой анимации - принцип Root Motion. Тогда персонаж будет двигаться ровно так, как двигался актер во время записи.

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

Но этот подход несет в себе и очевидные проблемы.

Допустим, персонаж хочет подвинуться к краю обрыва: актер на записи наклоняется, поднимает ногу и делает смелый широкий шаг по сцене. А персонаж шагает прямо в пропасть… Чтобы этого избежать, нужно прервать шаг где-то посередине, но это не только выглядит неестественно, но и затрудняет игроку выбор нужного момента из-за нелинейности движения, в котором может быть долгая подготовка (наклон), а затем резкое уверенное движение (шаг). Можно записать несколько вариантов движений. Допустим: осторожные маленькие шаги, нормальные, и бег. А затем смешать их по параметру требуемой скорости, который можно увеличивать линейно и предсказуемо. Но что если нам нужны движения в стороны? Значит для каждого варианта ширины шага нам нужны еще три-четыре варианта (за вычетом зеркальных). А еще персонаж должен уметь поворачивать во время движения. Значит для каждого варианта нам нужны движения с поворотом. А если поворот может быть быстрым и медленным? Значит еще раз умножаем число необходимых клипов на два. А теперь нам нужно движение по наклонной поверхности! А потом нам захочется, чтобы персонаж умел делать тоже самое вприсяди. Итого - просто сотни и тысячи вариантов анимации которые нужно смешивать и следить за тем, чтобы это происходило корректно и приводило к движениям с нужной скоростью. И все равно, во многих случаях управление будет ощущаться как «ватное», поскольку инерция актера и наша невозможность предусмотреть все возможные человеческие маневры будет лишать игрока контроля над персонажем. Эту проблему, к слову, прочувствовали на себе игроки в The Witcher 3, поэтому в одном из крупных обновлений разработчики внедрили альтернативный вариант управления, где анимация быстрее отзывается на управление в ущерб реализму. В шутерах же проблема нелинейности движения обретает особенно выраженный характер: игроку часто приходится выглядывать из-за угла и быстро уходить обратно, и момент резкой смены направления может очень отличаться - игроку требуется как можно скорее вернуться обратно за укрытие, а у нас нет возможности предсказать заранее, какой ширины шаг он планировал и проиграть соответствующую анимацию. Игроку, в свою очередь, будет трудно привыкнуть к ширине шага, которую делает его персонаж, и к скорости этого шага, чтобы прервать его вовремя.

Во-вторых, Root Motion плохо годится для сетевых игр. Нелинейность движения не только затрудняет игроку предсказание скорости, но и лишает нас возможности интерполировать и экстраполировать движение чтобы компенсировать сетевую задержку, что является очень важным и сложным аспектом в быстрых сетевых играх. Если смещение персонажа задается только анимацией, то трудно аналитически подобрать нужные параметры машины состояний (смешивающей разные анимации), которые приведут к движению персонажа в точно нужном нам направлении и с точно нужной нам скоростью (выбранных для компенсации расхождения). Если же сделать наоборот, так, что анимация будет ориентироваться на фактическое движение, то при коррекции расхождения между сервером и клиентом легко можно будет подобрать наиболее подходящую анимацию, и даже если она будет чуточку несоответствовать фактическому смещению, этого почти никто не заметит.

Поэтому техника Root Motion используется часто в одиночных играх от третьего лица, где управление осуществляется контекстуально - в зависимости от наличия укрытия, препятствия, режима движения или других обстоятельств, и редко применяется в сетевом режиме и MMOG.

Из последних заметных проектов, использующих Root Motion, можно выделить The Witcher 3 . Трудно переоценить усилия, вложенные в производство всех его движений.

Пример анимации The Witcher 3 и ее съемки



2) Другое решение обратно принципу Root Motion - нужно приводить анимацию в наиболее точное соответствие с произошедшим или планируемым движением. Тогда многие описанные выше проблемы решаются - движение персонажа можно сделать равноускоренным и предсказуемым с возможностью сколь угодно быстрой смены направления. Но как привести нелинейную и инерционную анимацию в соответствие с таким движением? Интересный комплексный подход описали разработчики игры Paragon. Суть его заключается в том, чтобы находить и проигрывать только нужную серию кадров анимации для достижения требуемого смещения/поворота, пропуская лишние. И использовать инверсную кинематику для модификации ширины шага.

Первая очевидная трудность при приведении анимации в соответствие с движением, в том, что движение уже произошло, а анимация еще не проиграна. Поэтому очень пригодится система предсказания движения, вычисляющая положение персонажа для следующего кадра. Затем, зная смещение, которое должен осуществить персонаж за следующий кадр, нужно пропустить столько кадров анимационного клипа движения, сколько будет нужно чтобы достичь требуемого смещения, и проиграть тот кадр, на котором требуемое смещение достигнуто. В таком случае анимация станет воспроизводиться с измененной скоростью, так, чтобы точно соответствовать фактическому смещению, и эта скорость может быть быстрее или медленнее оригинальной, поскольку невозможно заставить реального актера поддерживать постоянное ускорение или скорость. Данный подход позволит сгладить анимацию и привести в соответствие с любой сложной процедурной моделью движения, меняющейся во время игры (персонаж может выпить какое-нибудь ускоряющее зелье или оказаться замедлен противником). Недостатком, разумеется, является то, что анимация может стать менее реалистичной из-за сильных изменений в скорости. Однако на практике это дает очень хорошее окно доступных вариаций в котором нарушения скорости незаметны. А вкупе с поправками ширины шага при помощи инверсной кинематики, покрывает еще больший диапазон.

Но, к сожалению, этот метод довольно сильно нарушает привычный подход к анимированию, и поэтому я не смог найти простого способа реализовать его, например, с использованием стандартного анимационного компонента Unity. В Unreal Engine также пока нет необходимого функционала, однако разработчики обещают когда-нибудь перенести низкоуровневые наработки, сделанные для Paragon, в общедоступную версию движка. Основной сложностью является поиск и воспроизведение нужного кадра на основании данных о фактическом смещении и повороте. Для этого авторы предлагают делать пре-процессинг анимационных клипов и генерировать для каждого из них дополнительный блок данных: Distance Curve, в котором будут покадрово сохранены значения смещения и поворота корневой кости относительно начала или конца анимации. Затем, в ходе выборки, можно производить быстрый бинарный поиск нужного кадра, где достигнуты соответствующие параметры смещения и поворота, и воспроизводить его.

Пока же можно ограничиться прежним подходом, и делать менее точную подгонку скорости анимации к скорости планируемого движения, ориентируясь только на скорость персонажа за последний кадр. Самое главное - неплохой набор душ для экспериментов теперь имеется!

Теги: Добавить метки



Читайте также: