Модель MonoGameПроцессор

Есть ли в MonoGame аналог XNA ModelProcessor?

Я использую собственный класс AnimatorProcessor, производный от ModelProcessor, аналогичный тому, что сделано в "образце с улучшенной кожей. ":

[ContentProcessor(DisplayName = "Animation Processor")]
public class AnimationProcessor : ModelProcessor
{
    // custom stuff
}

Сейчас я пытаюсь перенести этот код в MonoGame, но кажется, что (хотя у MonoGame недавно появился собственный конвейер) в проектах конвейера MonoGame нет класса ModelProcessor.

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

(Обновить)

Я понял, что MonoGame действительно имеет ModelProcessor внутри своей MonoGame.Framework.Content.Pipeline сборки, но есть дополнительная MonoGame.ContentPipeline сборка (для которой я не уверен, что она устарела или все еще должна использоваться в конвейере).

Но если я перестрою свой AnimationProcessor для использования ModelProcessor MonoGame, Visual Studio не сможет использовать его для импорта / обработки моего файла fbx. Создание проекта содержимого с "Cannot find content processor 'AnimationProcessor'" завершается неудачно, и он даже не предлагается в качестве опции в раскрывающемся списке для файла .fbx (вероятно, потому, что Visual Studio ищет классы, производные от процессоров XNA, и не заботится о MonoGame).

Кто-нибудь знает, как мне импортировать содержимое fbx с помощью специального процессора и при этом иметь классы MonoGame вместо XNA?


person Groo    schedule 19.04.2015    source источник
comment
Я думаю, это следует переместить на gamedev.stackexchange.com.   -  person Groo    schedule 26.04.2015


Ответы (1)


Теперь у MonoGame есть собственный конвейер контента. Итак, что вам действительно нужно сделать, так это перенести пользовательские процессоры в новую библиотеку, которая ссылается на сборку MonoGame.Framework.Content.Pipeline. Затем эта библиотека будет совместима с инструментом Pipeline.

Вы можете найти документацию по этому поводу на http://www.monogame.net/documentation/?page=Using_The_Pipeline_Tool. В частности, обратите внимание на раздел «Пользовательские обработчики содержимого».

person Dean Ellis    schedule 20.11.2015
comment
Спасибо за информацию, так как мы торопились завершить проект, в итоге мы скопировали файлы из наших предыдущих проектов, ориентированных на XNA, в новый проект. Но проблема в том, что если мы перестроим пользовательский AnimationProcessor для использования ModelProcessor MonoGame, я не смогу выбрать его в качестве процессора для файлов fbx в Visual Studio. - person Groo; 20.11.2015