Найти тему
Григорий Дядиченко

Инверсная кинематика

Инверсная кинематика

Ещё одна очень полезная штука, которую "знать надо". В ней нет концептуально ничего сложного. Это набор математических правил, которые позволяют предсказать как будут расположены связанные между собой объекты при движении отдельных. Частный пример в играх — это персонажи. Часто необходимо взяться за трубу, и так как анимацией это не всегда удобно (да и возможно сделать), то в пару к анимациям идёт инвёрсная кинематика. Назначается целевая позиция кисти руки и пальцам, а локоть и плечо уже движутся в соответствии с инвёрсной кинематикой)

В Unity есть встроенная инвёрсная кинематика и для 2д и для 3д. Правда инвёрсную кинематику встроенную в Unity удобно использовать только для персонажки, для 3д она вообще работает только для гуманоидов. Хотя скажем делать ловушки с "агрессивными растениями" и щупальцами с помощью ИК очень удобно, и выглядят они интереснее, так как могут реагировать на произвольную позицию пользователя (просто при входе в триггер выставляется таргет на кость персонажа, чтобы его "схватить") Скажем если растение не убивает пользователя сразу, а хватает его за ногу, бьёт несколько раз и отпускает. Например подобным образом :)

Алгоритмы и реализации ИК бывают разные, одну из самых крутых, как я вчера говорил купил Apple. Поэтому она больше недоступна для покупки. Пожалуй для 2д, я бы использовал кинематику в пакете Unity, а для 3д сейчас оставшийся Final IK. С помощью ИК как можно делать анимации (хотя зачем это делать в Unity, если для этого есть специализированный софт, но ничто не мешает), но основное — это реакция на препятствия и объекты)

Ну и конечно же нельзя не вспомнить главное применение ИК — это VR. Чаще всего пользователь в VR представлен несколькими точками. Голова и два контроллера. А при этом аватар очень сильно помогает погружению и восприятию себя в VR. Инвёрсная кинематика позволяет сделать по трём точкам движение целого скелета (правда в паре с технологией Locomotion, которая так же теперь есть в виде Unity пакета)