XNA 3D RPG 编程继承

Posted

技术标签:

【中文标题】XNA 3D RPG 编程继承【英文标题】:XNA 3D RPG Programming Inheritance 【发布时间】:2014-09-14 20:24:06 【问题描述】:

我对高级游戏编程有点陌生,我正在开发一款 3D RPG 游戏。我在 fbx 文件中分别导出了角色和装备模型。目前我可以通过键盘输入使一个角色装备或取消装备几个盔甲武器,但这是在没有任何动画的情况下发生的,因为我对动画角色还不太了解。

我要问的是:我有一个角色模型和一些装备模型。我应该在编程环境中将这些项目模型添加到角色模型上,还是应该将它们添加到建模应用程序中并将它们全部导出到一个 fbx 文件中?哪种方法更明智,并且可以简化我未来在这些模型上的动画工作?

建模:3ds Max 编程:XNA for Visual Studio

【问题讨论】:

程序员的角度来看,我会说将它们应用到模型上,并相应地隐藏/显示每件盔甲。这样,当您制作动画时,您还将获得像胸甲之类的东西与角色的其余部分一起实际制作动画。虽然可以,但您可能希望将每件盔甲导出为单独的 FBX 文件。 【参考方案1】:

想想随着数字的增加而增加的数字:

如果您使用每种盔甲配置制作每个玩家的模型,您将获得players * armor models * armor slots 模型。如果您为每个玩家制作一个模型,为每件盔甲制作一个模型并以编程方式应用它们,您会得到 players + armor pieces 模型 - 当数字变高时(加法与乘法),这会少得多。

但是,您应该为每个玩家模型添加一个简单的网格,大致代表盔甲,这样您就可以对其进行动画处理(并使用代码在游戏中隐藏它/用实际选择的盔甲替换它。)

【讨论】:

【参考方案2】:

从我的角度和经验来看:

您可以将播放器及其所有设备模型放在一个源文件中。当您拥有数十个源文件时,这种方法可以大大减少混乱。 最好在不同的FBX文件中导出播放器和设备(主要是因为内存消耗和扩展性差)。蒙皮模型可以在运行时轻松附加到骨架。 尽管如果您的播放器没有多种设备,那么您可以将整套模型导出到一个 FBX 中(因为在这种情况下可扩展性较差,无法承受维护多个 FBX 文件所需的复杂代码)。

【讨论】:

以上是关于XNA 3D RPG 编程继承的主要内容,如果未能解决你的问题,请参考以下文章

如何使用XNA编程动画FBX模型

针对超类型编程:策略模式

[Unity] C#中级编程 - 05 - 构造函数/封装/继承

XNA 4.0 在 Windows 上加载外部 3D 对象

XNA中通常使用啥?

Unity3D 接口使用