如何在视频游戏中创建3D模型?


15

游戏中的3D模型是如何设计和显示的?都是代码吗?画在纸上,然后在3D图形软件上,然后...什么?

当然,游戏程序员不会在代码中(无论是在Direct3D还是OpenGL中)都定义要绘制的每个形状(/对象)的每个顶点,因此,游戏设计师是否拥有可以使用的工具,例如Maya或类似的专有3D图形软件在那里;他们在该软件中“绘制”模型,以任何格式导出模型,然后程序员通过代码对其进行解析,并自动输入对象/模型的经解码/解析的原始顶点?

我在Google上搜索了很多东西,但是找不到可靠的东西来解释专业视频游戏的这一方面是如何工作的。


2
这是艺术过程的非常真实的文档:salvationprophecy.com/forum/viewtopic.php?
Blue Wizard

嗯...这可能被认为太宽泛而无法回答,或者不是建设性的。但是同时问一个从未接触过gamedev并想开始学习的人听起来很合理,并且可以给一个很好的答案。因此,不确定是否应将其关闭。
Laurent Couvidou 2013年

1
通常人们在做模型被称为艺术家,而不是设计师:人物画家,艺术家环境,动画......游戏设计师更多的是设计实际的游戏,其规则,等等
洛朗Couvidou

Answers:


16

在我从事过的所有游戏中,资产创建管道都是这样的:

  1. 概念美术师(用于关卡/背景/关卡模型)或角色美术师(用于模型)将为角色/关卡/等生成草图。通常会为创意总监/领导艺术提供多种选择,以决定他们更喜欢哪一种。
  2. 已将批准的概念/角色艺术提供给建模者以用作参考。有时,角色美术师会进行其他美术作品的创作/创作,以便为建模过程提供更简洁的框架或参考。我已经看到很多建模者将概念图贴在3d max / maya / etc中作为直接参考。
  3. 建模人员通常也会为模型生成基本纹理,通常会在运行时使用正确的着色器材质。着色器用于在游戏中渲染模型,并且可能具有特定的纹理/ uv /等要求,建模者或指定的纹理艺术家需要提供这些要求。
  4. 关卡设计人员的工作是将资产拼凑起来以自己“构建”关卡。

    将整个关卡构建为单个几何体是不寻常的。大多数关卡都是由片段或部分组成的。(例如:臭名昭著的使用了一组六角形“瓷砖” http://www.gamasutra.com/php-bin/news_index.php?story=118581,天际(以及许多其他)使用乐高风格的方法将各个关卡http ://www.gamasutra.com/blogs/JoelBurgess/20130501/191514/

    尽管许多游戏都使用3d建模器作为实例化先前创建的资产的“关卡编辑器”,但通常会在此过程中涉及到一些关卡编辑器。

  5. 完成所有这些操作后,资产通常由工具链处理,该工具链会将3D Modeler友好的文件转换为可用于游戏的数据,然后将其直接加载到运行时中。

    工具链(获取原始资产并将其转换为可用于游戏的数据的位)通常是游戏开发中最复杂的工程设计。他们需要与许多不同的应用程序交谈,了解许多不同的文件格式,还需要了解如何将数据转换为更有效且可立即使用的格式。工具链通常还执行照明前遍,顶点焊接,LOD生成等。通常,为大型AAA游戏构建整个数据集将花费很长时间,对于完全重建而言通常会花费8个小时以上。因此,工具链通常还包含分布式处理,以将负载分散到整个工作室中的所有PC上。

    运行时是游戏本身。在您的PC或控制台上运行的可执行文件。在运行时内部,将有一个称为资源管理器的系统。资源管理器的工作是加载游戏中其他系统请求的资产。

    例如:当您告知将游戏加载到关卡中时,关卡的元数据将为资源管理器提供需要加载哪些资产才能显示关卡的列表。同样,每个资产将包含需要加载的所有纹理,材质或子资产的列表。

  6. 将所有内容实际加载到内存中之后。游戏将向渲染器发送可见的内容,然后与用于实际在屏幕上绘制内容的API进行交互。

程序员可以(并且确实)手动生成顶点信息。通常将其称为“立即模式渲染”。它不是很有效,仅用于无法使用预生成或着色器操纵的顶点数据的情况。例如:UI渲染,全屏四边形。

通常,屏幕上99%的对象将是在“保留”模式下渲染的预先生成的顶点信息,并且着色器执行所需的任何操作。例如:蒙皮动画


7

这是一个简单的答案:它们在Maya或3DS Max等3D图形应用程序中都能完成。首先,他们做一些概念艺术(纸上作品),然后根据它们创建模型,纹理(在Photoshop中或类似的东西)。简单的动画也完全可以在软件中完成,更复​​杂的动画可以通过Motion Capture完成,然后映射到您的模型。对于动画,通常使用“骨骼动画”。

所有这些数据都保存在文件中。

游戏开始时,它将分析所有这些文件并加载模型,纹理和动画。并在需要时显示它们。


1
我认为需要一些编程才能将一个动画流畅地变形为下一个动画,因此,当您在跳跃中间拍摄时,看起来并不奇怪
Thomas

3
@托马斯,混合树木。我认为。但是这些就像“补间”系统一样,是作为游戏引擎的扩展而构建的。不一定在3D模型中创建。他们基本上劫持了动画数据,并使用魔术力量在数据之间进行插值。
2013年

是的 当然。您需要加载,解析并以某种方式表示模型。也以某种方式在屏幕上绘制。所以肯定-您必须在动画之间融合。您通常还会使用一些逆向运动学,但这是更具体的问题。
zacharmarz

2
如果仅混合树和动画变形就像“补间”一样简单。有多种高端昂贵的中间件解决方案可以解决这一特定领域的问题。
肖恩·米德迪奇

4

实际上,程序员可以根据需要单独定义每个顶点。当然,除非他们正在制作某种基本的多维数据集演示,否则绝不是这种情况。通常,保存在模型文件中的是沿着顶点列表的行,程序员可以毫不费力地轻松地将其插入到模型绘制代码中。显然还有更多,但是基本上模型格式给出了有关如何绘制特定模型的间接“指令”。

在许多情况下,对于许多模型文件格式,编码方面已经为您完成。甚至还有一些基于文本的模型格式以及随附的图形代码,这些代码使编写程序的编码人员可以很容易地遵循将模型转换为代码的方式。

不过,我从来都不是真正编写此代码的人,因此我的解释中的一些细节可能已被删除。


2

我一直在努力尝试将游戏组合在一起。我可以给您一个简单的程序清单。

建模:3D外套,模

索具:莫多

纹理:GIMP,Inkscape

游戏引擎:Unity

显然,这只是应用程序的一小部分,但对我来说,它们可以工作,并且对于业余爱好者和独立开发人员来说都是可以承受的。


2
-1给出使用的应用程序列表不会描述该过程。这个问题是不是特定的软件,它是关于如何他们做,而不仅仅是什么,他们正在与制造。
MichaelHouse
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.