Вы сказали, что это 2D-игра, поэтому я предполагаю, что ваши персонажи - это плоские полигоны, к которым вы применяете карту текстуры.Пожалуйста, добавьте больше деталей к вашему вопросу, если это не так.
Что касается части C ++, я думаю, что те же самые принципы, которые используются для трехмерной анимации формы смешивания, могут быть применены к этому случаю.Для каждого персонажа у вас будет список возможных «морфируемых целей» или поз, каждая из которых будет иметь форму многоугольника с одинаковым количеством вершин.ИИ персонажа будет определять, когда переходить от одного к другому и сколько времени занимает переход.Таким образом, в любой момент времени ваш персонаж может находиться либо в фиксированном состоянии, совпадая с одной из ваших целей морфа, либо он может находиться в переходном состоянии между двумя позами.Первый не имеет проблем, второй случай обрабатывается путем интерполяции вершин двух многоугольников один за другим, чтобы прийти к преобразованному многоугольнику.Вы можете начать с линейной интерполяции и посмотреть, достаточно ли этого, я подозреваю, что вы можете по крайней мере применить функцию замедления к началу и концу переходов, возможно, функцию smoothstep .
Что касается создания этих персонажей, вы рассматривали возможность использования Blender ?Вы можете создавать и тестировать своих персонажей целиком в этом пакете, а затем экспортировать сетки в виде файлов .obj, которые вы можете легко импортировать в свою игру.