фон
Вставьте скелет в 3D модели программно
Я работаю над проектом, в котором пользователь получает отсканированного с помощью Kinect (v2). Результатом будет созданная 3D-модель, которая подходит для использования в играх.
Сканирующий аспект идет неплохо, и я создал несколько хороших моделей пользователей.
Пример: Примечание: Это только ранняя тестовая модель. Его все еще нужно очистить, и необходимо изменить положение, чтобы правильно считывать скелетные данные.
Проблема
Проблема я в настоящее время сталкивается в том, что я не уверен, как поместить скелетные данные внутри сгенерированной 3D модели. Я не могу найти программу, которая позволит мне вставить скелет в 3D-модель программно. Я хотел бы сделать это либо с помощью программы, которую я могу контролировать программно, либо отрегулировать файл 3D-модели таким образом, чтобы скелетные данные включались в файл.
Что есть я пытался
Я искал вокруг подобных вопросов на Google и StackOverflow, но они, как правило, относятся либо захвата движения или скелетной анимации. Я знаю, что Майя имеет возможность вставлять скелеты в 3D-модели, но насколько я мог найти, это всегда делается вручную. Может быть, есть более технический термин для проблемы, которую я пытаюсь решить, но я этого не знаю.
У меня есть ход мыслей о том, как достичь вставки скелета. Я предполагаю, что это должно выглядеть так:
Сканирование пользователя и создание 3D-модели с Kinect;
1.2. Очистить модель пользователя, избавиться от любых деформаций или ненужной информации. Закройте отверстия, оставшиеся в процессе очистки.
Сканировать скелетные данные с помощью Kinect.
2.2. Извлеките данные скелета.
2.3. Получите совместные местоположения и храните их как координаты xyz для 3D-пространства. Сохраните длину и направления костей.Прочитать данные 3D-скелета в программе, которая может создавать скелеты.
Сохраните новую модель с вставленным скелетом.
Вопрос
Может кто-нибудь порекомендовать (я знаю, что это, возможно, «мнение, основанное») программа для чтения скелетные данные и вставить его к 3D-модели? Можно ли использовать майю для этой цели?
Заранее спасибо.
Примечание: Я решил разместить этот вопрос здесь, а не в разделе «Обмен файлами графических конструкций» (или других сайтах Exchange), потому что я считаю, что это больше связано с кодированием и, возможно, более полезно для людей, которые будут искать здесь в будущем. Извините, если он опубликован на неправильном сайте.
Спасибо, что ваш ответ дал хорошее представление о том, что мне нужно было знать. Ссылка на объемную диффузию тепла диффузии очень полезна (люблю волка). К сожалению, я сейчас в стадии программной очистки 3d модели, и после этого продолжит вставлять скелет. Поэтому до тех пор я не буду уверен, что это «ответ».Я обязательно вернусь и приму его, как только я еще немного его изучил и попытался реализовать его. Заранее спасибо! – Bono
Одна вещь, которую вы, возможно, захотите сделать, это выбрать формат для экспорта этих игровых активов. FBX довольно популярен и широко поддерживается (Unity, Unreal Engine и т. Д.), Так как это от AutoDesk (своего рода монополизатор 3D-индустрии). После этого нужно понимать формат (в случае FBX у них есть SDK, который вы можете использовать, чтобы не иметь дело с данными формата файла). Тогда вы можете бесплатно экспортировать этот сфальсифицированный актив без помощи другого программного обеспечения - основная часть работы тогда сводится к тому, чтобы приступить к хорошей реализации назначения веса. –
Другое дело, если вы, возможно, не знаете (хотя вы уже упоминали что-то о позе), так это то, что вы обычно хотите сканировать в этих персонажах в виде Т-позы (например, да Винчи) - руки, ноги раздвинуты. Основная причина заключается в том, что эти назначения весовых карт больше всего срабатывают над этими суставными областями, соединяющими конечности с туловищем - так как вершины расположены так близко к туловищу (верхняя часть грудной клетки, таз, например), что трудно создать весовое назначение для снятия шкурки если они не разбросаны. Вы также можете сделать что-то более расслабленное и естественное, но T-поза полезна, если вы ... –