无法将 .fbx 从搅拌机正确加载到 Monogame
Posted
技术标签:
【中文标题】无法将 .fbx 从搅拌机正确加载到 Monogame【英文标题】:Can’t Load .fbx from blender to Monogame correctly 【发布时间】:2015-03-24 21:31:32 【问题描述】:我正在使用pipeline.exe
工具,将我使用 Blender 制作的 .fbx 文件(使用默认的 Blender 2.73a 导出设置)转换为 .xnb,然后在我的内容目录中使用 manually copy and paste it
(这是正确转换它的正确方法?)。
观看此视频https://www.youtube.com/watch?v=u7tLYMPC828 后,我看到您必须使用名为fbx converter 2013
的工具将使用搅拌机创建的.fbx 文件转换为新的.fbx 文件,然后然后在pipeline.exe
工具中使用该文件来生成最终的.xnb 文件。如果不这样做,在屏幕上绘制时我什至看不到我的模型。
通过上述步骤,我设法在屏幕上看到了 .xnb 文件,但它与我制作的原始模型不完全一样。例如:
如您所见,我得到的真实模型(使用fbx converter 2013
转换后)要长得多,而左侧的模型(我在游戏中绘制的模型)就像装在一个小方块。
如果您使用的是搅拌机,请告诉我如何将 .fbx 导入您的 Monogame 项目。 (或者您可以向我推荐您用来制作模型的其他软件,并告诉我您将模型导入 Monogame 的方法)
这就是我绘制模型的方式:
protected override void Draw(GameTime gameTime)
GraphicsDevice.Clear(Color.Black);
Vector3 modelPosition = new Vector3(-25, 0, 0);
float modelRotation = 0;
float aspectRatio = graphics.GraphicsDevice.Viewport.AspectRatio;
// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in Brick.Meshes)
Vector3 cameraPosition = new Vector3(0.0f, 0.0f, 50.0f);
foreach (BasicEffect effect in mesh.Effects)
effect.EnableDefaultLighting();
effect.World = Matrix.CreateRotationZ(modelRotation)*
Matrix.CreateTranslation(modelPosition);
effect.View = Matrix.CreateLookAt(cameraPosition,
Vector3.Zero, Vector3.Up);
effect.Projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(45.0f), aspectRatio, 1.0f, 10000.0f);
// Draw the mesh, using the effects set above.
mesh.Draw();
base.Draw(gameTime);
编辑:我还尝试从搅拌机导出到 .X,当我转换为 .xnb 时,加载模型并绘制它,没有任何显示。
【问题讨论】:
【参考方案1】:好的,我终于意识到问题所在了……我的绘图代码不正确。我尝试了来自 msdn 网站的 https://msdn.microsoft.com/en-us/library/bb197293(v=xnagamestudio.31).aspx 代码,一切都成功了。我很蠢。此外,下载https://msxna.codeplex.com/releases/view/117230 并以正确的顺序安装所有文件(按照说明 .txt)修复了我无法创建项目的单一游戏内容项目错误(error missing project subtype 6D335F3A-9D43-41b4-9D22-F6F17C4BE596
),显然是因为我没有t 正确安装了东西。
【讨论】:
以上是关于无法将 .fbx 从搅拌机正确加载到 Monogame的主要内容,如果未能解决你的问题,请参考以下文章