2016-09-24 9 views
0

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

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

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

Основываясь на этом учебном наборе, возможно ли, чтобы NN генерировал движения для персонажей (силы, применяемые к конечностям), чтобы имитировать движения, которые я сделал с моей рукой?

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

ответ

1

Не совсем ответ, но не подходит для комментариев

Я не уверен, что стратегия, которую вы хотите применить для тренировки модели является правильным.

Я бы хотел использовать методы обучения подкрепления (вы можете проверить this question для получения дополнительной информации об этом), используя, например, расстояние, пройденное центром массы существа по оси x в качестве пригодности. Если это приводит к странным поведением (like this well known robot), вы можете, например, подумать о стратегиях, таких как наказание ваших людей, учитывая расстояние, пройденное по оси y и z (все еще на CoM), чтобы попытаться найти парней, которые будут держать CoM на одной плоскости.

Не зная точно, чего вы хотите достичь, сложно дать вам больше советов. Хотя, если вы не ищете только для методов, основанных на нейронных сетях, есть this really great paper, вы можете посмотреть (- это видео их результатов).

+0

Это замечательно, спасибо за предложение! Я займусь изучением подкрепления. – Miles