全部资源
  • 全部资源
  • - 交通工具
  • - 动物昆虫
  • - 场景模型
  • - 建筑模型
  • - 植物模型
  • - 武器模型
  • - 独家资源库
  • - 科幻模型
  • - 角色动画库
  • - 角色模型
  • 知识干货

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库
    

星球大战项目

战斗机器人

我在2015年开始这个项目,当时计划在当年晚些时候申请进入电子游戏行业的一个职位。由于我追求的是硬表面艺术家的角色,尤其是科幻类游戏方向,而《星球大战》一直是我童年时期的挚爱,所以我选择了制作《星球大战》前传中的战斗机器人作为起点。

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

控制舰飞船

当我完成了战斗机器人的建模后,我认为重现这些机器人首次出现在电影中的环境是自然而然的下一步。我希望借此机会学习虚幻引擎4,因为这对我简历来说是一个很好的加分项。考虑到那个环境在3D中看起来相对简单——只需要重复几个模块就能构建走廊——我以为自己能快速完成。哎呀,我错了……

(以下为电影参考资料)

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

初步布局

首先,我通过观看电影的开场场景,并截取所有需要作为参考的细节。然后开始在Maya中搭建所有体积结构并进行定位,先是在Maya中重构我将要制作的那一部分地图模型,然后在虚幻引擎中参照3D模型再次进行模块化布局,这样每次更新一个组件时,所有其他实例都会相应地自动更新。

(以下为Maya中的初步布局截图)

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

在初步布局阶段,我不得不多次调整弯曲走廊的直径,直到找到合适尺寸。即便如此,后来我发现(但那时已经来不及修改了)它与参考相比仍有些许偏差。此外,我还遇到了关于相机焦距选择的困扰,因为这会对整个场景布局产生重大影响——电影中的镜头似乎使用了不同的焦距拍摄,导致我的场景在某些镜头下与参考匹配,在另一些镜头下却又出现偏差。所以,这里我要给出的第一个建议是:在初步布局阶段花尽可能多的时间,甚至更多;你永远不能低估这一阶段的重要性。

这并不是我环境中唯一没有做得很到位的地方;还有一些地方存在匹配问题,给我带来了不少头疼的挑战。例如,为了实现同心圆状的走廊,外圈的模块必须比内圈的稍大一些。虽然差别很小,但足以导致模块之间出现间隙(或相反,模块相互交叉)。实际上在电影中我们可以注意到至少有两种不同类型的墙体模块:

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

(电影中有不同类型的墙体模块——请注意右边模块上缺失这些元素)

因此,因为我有四圈同心墙模块,最终不得不制作四个版本的部件,而不是像我之前预期那样只做一个,目的是避免任何间隙或几何体交叉的问题。

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

(为了防止墙体间出现间隙或几何体交叉,必须创建四种不同版本的墙体模块——右侧是从上方夸张表示墙壁随着接近圆心而变短的情况)

这就意味着连接这些墙体的天花板模块也需要三种版本:一种连接A至B,一种连接C至D,第三种用于直走廊,即A与A之间的连接。同时,与天花板模块配套的所有地板模块也需有所不同。这样一来,工作量比我最初预计的大得多!

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

(早期虚幻引擎内的初步布局截图)

此外,我在Polycount论坛上发起了一个线程,记录我的进度并与愿意提供反馈的人保持交流。让不同人对我们项目提出意见十分重要,因为我们有时会失去客观性,或者忽视别人可能发现的方面。我也经常向几位朋友展示我的进展,他们通常会给出非常有用的建议,帮助我保持动力!

(以下是参考与虚幻引擎内初步布局的早期对比截图)

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

星球与星空 – 初期照明设置

当初步布局完成后,我创建了会议室窗户可见的星空以及行星及其光照效果。灯光与纹理需要同步配合工作,因为如果我们先全力关注其中之一,那么另一个可能需要变得更暗或更亮,颜色也可能与实际所需不符,所以这只是第一遍灯光调整,旨在开始营造该区域的基本氛围。

对于星空,我使用了一款便捷的软件Spacescape,而对于行星,则遵循YouTube上的一个教程(现在找不到了),该教程教授如何让云层以不同于行星自身旋转速度的速度移动。

(以下是在建模阶段初期测试会议室内发光材质的灯光效果截图)

建模

在创建环境的最终模型时,我没有制作任何高精度模型(因此无需烘焙贴图),因为我认为为每个模块都准备大量纹理并不高效——如果想要获得良好的烘焙贴图像素密度,由于模块很大,每个模块都需要很多套纹理贴图——所以我决定使用可平铺纹理,并采用自定义法线技术建模,即倒角和平滑原本硬边的边缘,然后设置顶点法线指向较大的面的方向。这意味着网格面数较高,但却大大减少了游戏中需要加载和实时流送的纹理数量。

我还尽量将所有内容模块化,使所有模块在几何结构上保持最低限度,例如,每个墙体模块实际上是由更小的模块组成的。

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

纹理处理

如前所述,由于未为每个模块单独制作独特纹理,我的纹理工作并没有做到尽善尽美。我需要纹理能在大面积表面上使用,并且在不同模块上尽可能复用,因此它们必须是可平铺的,并且不含过于明显的细节特征。电影中的这个场景在纹理方面也不包含太多细节,这使我工作起来更为轻松。

尽管如此,我还是希望确保纹理不会显得太平淡无奇,因此我在纹理上添加了一些细微划痕和污渍变化,赋予其一定的质感差异。大部分纹理使用Substance Painter制作,少数基础材质则使用Substance Designer制作,之后我会在Unreal引擎内部仅改变颜色和粗糙度级别,从而得到不同的纹理变化。

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

(墙壁上使用的面板材质,白色和蓝色两种变体均在Substance Painter中制作,并在Unreal引擎内微调以获得最终效果及多种变体)

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

地面材质是在Substance Designer中制作的——颜色和粗糙度级别在Unreal引擎内进行了调整以达到最终效果及多种变体。

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

材质与光线追踪

当我终于开始着手制作材质时,光线追踪技术尚未在Unreal Engine中发布,甚至还未被宣布。因此,我当时并未考虑将其融入我的项目中。幸运的是,由于我的项目耗时相当长,光线追踪技术正好在我完工前及时推出。我确实需要调整纹理和光照以适应这种变化,但这一切都是值得的,因为光线追踪使得整体效果远超屏幕空间反射(SSR),特别是考虑到SSR只能精确反映当前屏幕上渲染的场景元素:

(下图展示了屏幕空间反射的局限性:不在屏幕中渲染的元素无法被准确反射出来)

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

切换到光线追踪意味着对显卡性能要求大大提高。实际上,我不得不购买了一块新的显卡(NVIDIA GeForce RTX 2070,当时刚上市),因为我的GTX 1070无法胜任。在研究过程中,我发现了一个非常有用的技巧,可以帮助减少显卡需要处理的反射数量:

我为每种材质创建了一个简化版,用于光线追踪而不是原始版本;这些简化版材质使用数值而非实际纹理文件。例如,如果墙体材质包含了带有色彩变化和轻微污渍的基础色纹理,与其对应的光线追踪材质只会包含主导颜色的值。粗糙度、法线贴图和金属度贴图也是如此处理:

(每种材质都被调整以包含RayTracingQualitySwitchReplace节点,允许有一个较轻量级的版本进行光线追踪)

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

光照贴图

光照贴图对我来说是噩梦般的存在。场景中有如此多的光源,以至于每次我想调整某个东西时,都需要等待两个小时才能看到结果,即使是在预览模式下烘焙,主要是由于计算二次光照反弹所需时间较长,而这在实时渲染中无法显示。不幸的是,Unreal引擎目前没有让用户指定区域单独烘焙的选项,所以如果有条件的话,可以创建项目副本并删除不必要的内容来进行光照贴图测试。

当你最终对所有设置感到满意时,你需要记住所更改过的每一项参数,以便将其应用到主场景中,因此记录每次更改的文档简直就是救星。

即使使用了光线追踪技术,现阶段仍需要烘焙许多光源,因为当前RTX显卡的能力有限。因此,我在静态光和动态光之间做了折衷。期待在不久的将来,光照贴图将成为历史(让我们翘首期盼)!

最后,在我的最终产品中,由于引擎崩溃,我甚至无法以高于中等质量烘焙光照贴图——整个过程需要数天时间才能达到100%,而且看似即将完成时就会崩溃。

这些可能都是新手Unreal用户容易犯的错误,但坦白讲,我发现Unreal引擎并没有我最初期望的那么友好或直观,我在官方论坛上发现有很多用户提出了同样的简单问题,却没有得到有效的解决方案或根本无人回应。

动画

 

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

关于门开启和关闭的动画制作,我采用了Unreal引擎的蓝图系统。然而,这同样是一场噩梦,因为我不仅希望当角色接近时门能自动开启、离开后自动关闭,还希望在门正在关闭过程中,只要角色再次接近,门就能中断关闭动画并反向开启。

我原以为这个功能实现起来会比实际情况要简单得多——蓝图系统看起来用户友好,但实际上你需要清楚哪些节点能实现你的需求。我发现很多时候,预期能协同工作的节点之间存在不兼容性,而我需要的功能似乎找不到相应的节点来实现。

为了使自己的系统正常工作,我不得不跟随大量的教程学习。尽管如此,最终我的实现并不完美。一个典型的例子就是控制机器人发射爆能枪时遇到的一个未解决的bug。我已经成功编程让机器人通过右键瞄准,左键射击,但在未瞄准状态下,机器人仍然可以从待机姿势发射爆能枪,此时武器并未向前瞄准。我始终无法直观地找出如何以理想方式解决这个问题,即允许仅用左键射击,同时在不按右键的情况下也能使用瞄准姿势。尝试按照逻辑编程时,机器人会在姿势间出现故障。最终,经过艰难努力,我设法让机器人只有在按下右键瞄准时才能射击……

因此,我个人感觉整个系统对于不太专业的用户来说需要更加简化一些,比如预先提供这类功能的预设,用户只需替换自己的模型、动画等即可。

遗憾的是,我在使用Unreal内部录制游戏画面时也遇到了问题,遵循教程操作时总会遇到某种奇怪的bug,所以我放弃了在Unreal内录制,转而使用OBS Studio。我认为除了我设置了超出电脑处理能力的每像素光线追踪采样数之外,这也是导致明显低帧率的主要原因。

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

我已经在[]发布了可玩演示版本,其中包含了光线追踪版和SSR版,这样即使没有RTX显卡的玩家也能体验。

该演示中可能存在一些你可能会发现的bug——我已经尽力修复,但有些未能解决。

结论

这是一个非常有野心的项目,我确保即使在找到现在的工作后也不会让它尘封于抽屉之中。项目进程中,由于光照贴图和蓝图带来的种种问题,我曾多次失去动力,数月未继续工作。但我想要证明自己能够克服任何遇到的障碍,最终发布这款游戏,哪怕存在一些瑕疵。任务已完成!现在是时候转向新项目了。

如果你阅读至此,非常感谢!如果你试玩了我的游戏demo,请告诉我你的想法!

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

愿原力与你同在!

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

《星球大战》前传中战斗机器人与飞船环境创作幕后揭秘次世代模型库

标签

评论