【问题标题】:MonoGame ModelProcessorMonoGame 模型处理器
【发布时间】:2015-06-26 00:28:18
【问题描述】:

有没有一个 MonoGame 相当于 XNA 的ModelProcessor

我正在使用自定义 AnimatorProcessor 类,派生自 ModelProcessor,类似于 "better skinned sample" 中所做的:

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

我现在正在尝试将此代码移植到 MonoGame,但似乎(尽管 MonoGame 最近有了自己的管道)在 MonoGame 管道项目中没有 ModelProcessor 类。

我可以使用 XNA 管道,但问题是所有模型内容类都使用实际的 XNA 类/结构(向量、四元数),它们位于与 MonoGame 完全相同的命名空间中,从而在我的主项目中产生编译时冲突.这意味着我应该将这些类从一个程序集 (XNA) 映射到另一个程序集 (MonoGame),即 rather fugly

(更新)

我意识到 MonoGame 在其 MonoGame.Framework.Content.Pipeline 程序集中确实有一个 ModelProcessor,但是还有一个额外的 MonoGame.ContentPipeline 程序集(我不确定它是否已经过时,或者仍然必须在管​​道中使用)。

但是,如果我重建我的 AnimationProcessor 以使用 MonoGame 的 ModelProcessor,那么 Visual Studio 将无法使用它来导入/处理我的 fbx 文件。构建内容项目失败并显示"Cannot find content processor 'AnimationProcessor'",并且它甚至没有作为 .fbx 文件的下拉框中的选项提供(可能是因为 Visual Studio 查找派生自 XNA 处理器的类,并且它不关心 MonoGame)。

有谁知道我应该如何使用自定义处理器导入 fbx 内容,并且仍然使用 MonoGame 类而不是 XNA 类?

【问题讨论】:

标签: c# xna monogame content-pipeline


【解决方案1】:

MonoGame 现在拥有自己的内容管道。因此,您真正需要做的是将自定义处理器移植到引用 MonoGame.Framework.Content.Pipeline 程序集的新库。该库随后将与 Pipeline 工具兼容。

您可以在http://www.monogame.net/documentation/?page=Using_The_Pipeline_Tool 找到有关此的文档。具体查看自定义内容处理器部分。

【讨论】:

  • 感谢您的信息,因为我们急于结束该项目,所以我们最终将以前针对 XNA 的项目中的文件复制到了新项目中。但问题是,如果我们重新构建自定义AnimationProcessor 以使用MonoGame 的ModelProcessor,那么我无法选择它作为Visual Studio 中fbx 文件的处理器。
猜你喜欢
  • 2018-07-23
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
相关资源
最近更新 更多