我一直想知道,游戏程序员如何将在外部 3d 建模软件(如 maya 或 3d max)中完成的游戏角色与用最喜欢的编程语言(例如 c 或 c++)完成的实际游戏逻辑联系在一起。
你如何将这两件事结合在一起,从角色建模到编程构建游戏的实际过程是什么?
一些让我想知道的事情是,你是从代码还是从 3d 模型编写角色动作?
例子会很高兴看到。
我一直想知道,游戏程序员如何将在外部 3d 建模软件(如 maya 或 3d max)中完成的游戏角色与用最喜欢的编程语言(例如 c 或 c++)完成的实际游戏逻辑联系在一起。
你如何将这两件事结合在一起,从角色建模到编程构建游戏的实际过程是什么?
一些让我想知道的事情是,你是从代码还是从 3d 模型编写角色动作?
例子会很高兴看到。
大多数信息,如角色移动,实际上都存储在代码之外。这实际上是一个非常简单的过程:
事实证明,游戏中的所有内容最终都与代码分开存储,而代码只是读取它并在游戏运行时将它们组合在一起。当我说一切时 - 我的意思是一切!所有文本、生命值和武器伤害量的统计数据、菜单屏幕图像,甚至人工智能都与脚本中的程序代码分开存储。程序代码最终做的很少。
您可能听说过有人为游戏制作模组。修改者是编辑位于程序代码之外的数据的人,这反过来会改变游戏以使其适合他们。他们只是利用了这样一个事实,即基本上关于游戏的所有内容(除了一些核心内容)都没有写入程序代码中。
与最喜欢的答案不同,我敢说,如果您指的是拥有一个有动画的角色,这实际上是一项艰巨的任务。
最终结果将是启用通过脚本和配置文件绑定的大部分功能(换句话说 - 数据驱动),但构建这样一个系统的过程并不简单。
通常,您从外部建模器开始执行以下操作: 1. 构建皮肤模型。2. 构建骨架并根据权重等附加到皮肤上。 3. 根据需要应用所有纹理和材料。4. 导出到您的引擎。
现在您可以开始为这个角色骨架或任何类似的骨架构建动画库,如果您将其关联到多个(通常是骨架足够接近或模块化的情况)。一些动画将仅包含部分层次结构(以便能够仅混合部分动画 - 例如,下半身正在跑步,而上半身可以使用不同的动画或反向运动学 - 在跑步期间向敌人射击是一种很好的例子)。
现在终于到了代码部分。您需要构建一个系统,将动画与骨架相关联并正确渲染它。该系统还需要能够在动画和 IK 之间进行混合(例如 - 在站立和跑步之间转换),并且能够结合多个动画和部分动画 - 例如,行走(全身动画)、看着某人(IK对于上半身),同时挥手(IK 部分动画)和呼吸(部分动画)将结合 4 种不同的部分或全部混合。
我没有提到您需要构建导入器这一事实,并且动作和动作的动画之间也存在差异。动作可以有多个动画组合或随机选择 - 它们将通过数据映射文件关联。
我建议看一下 XNA——它有很多示例、导入器等等,并且包含很多库中的基本内容,因此您不必从头开始。正如人们还提到的 - Blender3D 是编辑器+的不错选择,因此 Torque 可能只是为了体验游戏引擎。
最后一句话-如果您要尝试一下,那不会是在公园里散步,但是嘿-非常有趣,结果会让您为自己感到自豪。
查看Blender 游戏引擎教程,以及他们的Project Apricot,这是一个使用 Blender 游戏引擎创建 3D 游戏的开放项目。
3D 角色创建和 3D 游戏编程是两个不同的过程。
通常您在 3D 建模器(Blender、Maya、3D Studio Max 等)中雕刻您的 3D 角色,然后将该角色导出到文件(.obj、.md2 等),然后按顺序将代码写入您的 3D 游戏处理引擎中角色的导入。
虽然这听起来很困难,但3D 游戏引擎确实支持所有这些东西,而无需编写数百万行代码并重新发明轮子。
以 Ogre3D 为例,这是一个 3D 开源游戏引擎。您不必成为编程大师就可以在几分钟内启动并运行一个简单的示例。我建议你看看他们的wiki和他们的 教程。
例如,这是一个简单的教程,用于从 3D Studio Max 创建和导出简单模型并将它们导入 Ogre 3D
我自己没有很多游戏编程经验,但我发现 XNA 框架和资源非常有启发性。你可以在这里找到大量的例子和方法以及一个非常有用的论坛http://creators.xna.com/en-US/
动画可以在 3D 建模软件中完成,然后由代码根据游戏逻辑“运行”不同的动画。模型通过通用格式从建模软件进入游戏。例如,XNA 框架可以原生读取一些最常见的模型格式。
您应该使用 3D 渲染引擎。其中很多都是免费的(Ogre3D是一个不错的选择),并且通常它们可以导入从通用建模软件创建的几乎任何类型的网格。
访问 Unity3d.com,您将立即制作您的游戏。动画是在建模软件 Maya 等中完成的,但有些是在引擎中完成的。Unity 使物理学变得简单,您或多或少地创建了自己的世界并链接了对象的交互方式。
示例 - 您有一个相机 -> 您可以从 UI 设置相机以跟随主角和相机放置位置的 XYZ 变换。它也可以在视觉上完成。
看看它很有趣,而且代码比你想象的要少。从那里你当然可以编写自己的代码来做你自己独特的游戏。它很容易解释为编写脚本并将其拖到您希望脚本运行的对象上。
这是我所能得到的外行人。干杯。
由于这个话题正在看到新的生命,我想我会做出贡献。我已经使用 Autodesk 3Ds Max 制作 3D 产品超过 12 年,并且更多地关注动画方面,但我知道 Autodesk 提供了一个广泛的类库,其中包含高级脚本模块和内置功能,其中包含编写 3D 的所有工具这个程序中的游戏。当然,您必须学习“Max Script”以及如何与诸如“Biped”、“Particle Flow”、“Havoc”现实模拟引擎等名称的此类内置包交互,更不用说渲染引擎(通常是默认的扫描线、Mental Ray、VRay)需要很多参数。
如果您没有预算或喜欢开源,请查看 Blender! 这个开源 3D 软件和社区提供的东西令人惊叹。他们甚至有一个“游戏引擎”也可以加入其中:http: //www.blender.org/features/他们有资源可以帮助您入门。
我想补充一点,虚幻看起来很有前途,因为他们是“免费”发布的,如果你的游戏真正起飞,只需阅读大约 5% 版税的细则! https://www.unrealengine.com/what-is-unreal-engine-4
我发现有这么多学习特定工具的链接很奇怪。如果我要学习游戏开发,我会想要一个为此目的的通用论坛/站点。比如GameDev.net。
PS: This is intended as a complementary answer, not a full one.
想一想你是如何在 2D 中完成这一切的,这与 3D 几乎相同,只是算法不同,需要关注的方面也不同。
你问的其余问题是一个设计问题,取决于游戏和程序员。一个人可能会编写一个复杂的模拟来移动他们的角色,而其他人可能只依赖于骨骼动画。有人可能会沿着 3d 模型存储游戏逻辑,而其他人则不会。
例子?也许地震源代码是一个很好的研究来源。
编写游戏引擎是一项复杂的任务,我的建议是使用现有引擎之一(从列表中选择:http: //www.devmaster.net/engines/)。
选择发动机时,您需要考虑以下几点:
您的问题与最后一项更相关,您应该选择一个可以将您在 3DS、Maya 中生成的资产导入引擎的引擎,而您不必担心文件格式,因为这将使您更有效率因为你只专注于游戏。
我没有注意到太多关于要寻找什么的回应。近年来,发布了更多关于如何更容易但仍然相当复杂的信息。
自由
有薪酬的