您需要 登录 才可以下载或查看,没有账号?注册
x
Introduction
Myrkur Games is an Icelandic video game studio, working on the development of a new third-person action-adventure game called Echoes of the End for both PC and consoles. The game will be published by Prime Matter (Koch Media/Embracer Group) and is an original IP created by the studio as well as being the first game the studio develops. We are also currently expanding our team, so if you’re interested in a position with us check out our open positions here.
介绍
Myrkur Games是一家冰岛视频游戏工作室,致力于为PC和游戏机开发一款名为Echoes of the End的新的第三人称动作冒险游戏。该游戏将由Prime Matter(Koch Media/Embracer Group)发布,是该工作室创建的原创IP,也是该工作室开发的第一款游戏。我们目前正在扩大我们的团队,因此,如果您对我们的职位感兴趣,请查看我们的空缺职位 请点击此处。.
Echoes is set in a new fantasy/sci-fi setting and has a realistic style, utilizing most of what Unreal Engine 5 and the new generation of consoles have to offer. For many of the characters in Echoes, we want to capture the likeness of our actors to a very high level of detail. Due to the size of the cast and production requirements of the game, we quickly realized this meant we were going to use photogrammetry.
To avoid disclosing any details about the game, we can’t actually show you details on the characters we’ve worked on for Echoes. So we grabbed one of our own level designers, Eirikur, and we put him through our pipeline and documented the steps along the way. For context, we spent roughly a single day of work in total making the scan from start to finish.
Echoes以新的幻想/科幻场景为背景,具有逼真的风格,利用了虚幻引擎5和新一代游戏机的大部分功能。对于《回声》中的许多角色,我们希望将演员的肖像捕捉到非常高的细节水平。由于游戏的演员阵容和制作要求,我们很快意识到这意味着我们将使用摄影测量。
为了避免透露有关游戏的任何细节,我们实际上无法向您展示我们为Echoes工作的角色的详细信息。因此,我们找了一位自己的关卡设计师 Eirikur,让他通过我们的流程,并记录了整个过程中的步骤。对于上下文,我们总共花了大约一天的工作,从头到尾进行扫描。
Scanning Humans
Photo scanning still objects can usually be achieved with a single camera, where hundreds of photos are taken over some period of time. The problem with scanning people this way is that, unlike inanimate objects, they will naturally move around, blink and change their expression ever so slightly. These subtle differences lower the quality of our data used to construct the 3D model, yielding inconsistent results. We need to capture a vast range of facial expressions, and during capture, it becomes nearly impossible for the actors to maintain that expression perfectly for anything over a few seconds. So for more reliable results, we opted to build our own in-house photogrammetry rig.
Let’s break this down and talk about the choices made along the way in building our rig and pipeline.
扫描人类
照片扫描静止物体通常可以使用单个相机实现,其中数百张照片是在一段时间内拍摄的。以这种方式扫描人的问题在于,与无生命的物体不同,它们会自然地四处移动,眨眼并稍微改变他们的表情。这些细微的差异降低了我们用于构建3D模型的数据的质量,从而产生了不一致的结果。我们需要捕捉各种各样的面部表情,在捕捉过程中,演员几乎不可能在几秒钟内完美地保持这种表情。因此,为了获得更可靠的结果,我们选择构建自己的内部摄影测量设备。
让我们对此进行分解,并讨论在构建我们的钻机和管道的过程中所做的选择。
Rig Setup
We initially experimented with 18 cameras mounted on tripods in various configurations to see if that would work and provide enough overlap for the software. We quickly found that 18 cameras did not produce strong overlap, so we opted to arrange them in a cone and rotate our subjects on a chair/electric turntable, taking a photo every 45° of rotation. This resulted in 8 photos for each camera or 144 photos in total.
钻机设置
我们最初试验了18台安装在各种配置的三脚架上的相机,看看这是否有效,并为软件提供足够的重叠。我们很快发现18台相机没有产生强烈的重叠,因此我们选择将它们排列成一个圆锥体,并在椅子/电动转盘上旋转我们的拍摄对象,每旋转45°拍摄一张照片。这导致每个相机有8张照片或总共144张照片。
Photogrammetry Rig with 18 Cameras:
带 18 台摄像机的摄影测量装备:
We achieved some pretty remarkable scans of both faces and bodies with 18 cameras this way, but we had a problem with consistency in the 3D reconstruction due to subtle changes in our subject's facial expression and posture, as well as inconsistent lighting due to the rotation of the subject. Since we are scanning multiple facial expressions (20-40) for each actor, we needed to improve our consistency.
We went back to the drawing board and came up with a layout to cover 360°, capturing only one photo for each camera – reducing all risk of inconsistency. Based on lots of trial and error with 18 cameras, we created a 3D layout plan for a 36 cameras configuration which we ended up going with. This time opting for a fixed frame layout instead of tripods, as we knew it would be easier to work with and provide more consistent results overall.
我们用18台摄像机对面部和身体进行了一些非常出色的扫描,但由于拍摄对象的面部表情和姿势发生了微妙的变化,以及由于主体的旋转而导致的照明不一致,我们在3D重建方面存在一致性问题。由于我们正在扫描每个演员的多个面部表情(20-40),因此我们需要提高一致性。
我们回到绘图板,想出了一个覆盖360°的布局,每个相机只拍摄一张照片 - 降低了所有不一致的风险。基于对18台摄像机的大量试验和错误,我们为36台摄像机配置创建了一个3D布局计划,最终我们最终选择了该计划。这次选择固定框架布局而不是三脚架,因为我们知道这样更容易使用,并提供更一致的整体结果。
3D Blockout of Our 36 Camera Rig:
我们的 36 个摄像机装备的 3D 封锁:
In total, we operate 36 cameras. We chose to go for a mix of Canon 750Ds and 2000Ds (about 50/50 split) since they offer high-resolution images in a full-frame camera while remaining a very cost-effective option.
We planned our rig very accurately in 3D using Maya, to understand the placement of all the cameras and gear in order to maximize camera overlap. The frame we built was a very lightweight aluminum system, which we got at the specialty hardware store and assembled on location.
我们总共运营着36台摄像机。我们选择佳能750D和2000Ds(约50/50分割)的混合,因为它们在全画幅相机中提供高分辨率图像,同时仍然是一个非常经济高效的选择。
我们使用 Maya 在 3D 模式下非常准确地规划了我们的装备,以了解所有摄像机和装备的位置,从而最大限度地增加摄像机重叠。我们制造的框架是一个非常轻巧的铝制系统,我们在专业五金店买了它,并在现场组装。
Our Updated 36 Camera Rig:
我们更新的36相机装备:
Lighting setup
To capture the likeness of an actor the texture capture is also extremely important, so you want to have somewhat neutral and even lighting. For our initial experiments, we worked with flash photography lights. However, upgrading to our 36 camera layout we chose to go with constant LEDs lights instead. While the LEDs generally produce less light, they are much easier to work with and occupy less space. With limited space in the room, this also allowed us to place more lights evenly around the subject to eliminate harsh shadows and highlights.
We’re shooting this in a relatively small room, so we painted the room white and used white sheets around the rig in order to maintain color neutrality and maximize bounced light. An important last step for us was to use polarizing filters, which we use on our camera lenses and lights, in order to remove specular highlights from our subject.
照明设置
要捕捉演员的肖像,纹理捕捉也非常重要,所以你想要有一些中性和均匀的照明。对于我们最初的实验,我们使用闪光灯摄影灯。但是,升级到我们的36相机布局时,我们选择使用恒定的LED灯。虽然LED通常产生的光较少,但它们更容易使用并且占用的空间更少。由于房间空间有限,这也使我们能够在拍摄对象周围均匀放置更多光线,以消除刺眼的阴影和高光。
我们在一个相对较小的房间内拍摄,因此我们将房间涂成白色,并在装备周围使用白色板材,以保持色彩中性并最大化反射光。对我们来说,重要的最后一步是使用偏振滤镜,我们在相机镜头和灯光上使用,以便从拍摄对象中删除镜面高光。
Operating the Cameras and Retrieving the Photos
To trigger all the cameras at the same time we use six Esper trigger boxes. These are devices specifically made to trigger many cameras at once with very high accuracy. From our experiments, trying to trigger all the cameras directly via USB instead of the Esper boxes introduced a pretty significant delay between cameras where the actor might move, blink or slouch a bit, any of which can have a negative impact on the results. We also learned that it is next to impossible to use flash photography without something like an Esper box to control the flash trigger, alongside the camera shutter.
操作相机和检索照片
为了同时触发所有摄像机,我们使用六个Esper触发盒。这些是专门用于以非常高的精度同时触发许多相机的设备。从我们的实验中,尝试直接通过USB而不是Esper盒触发所有摄像机,在摄像机之间引入了相当显着的延迟,演员可能会移动,眨眼或懒洋洋地移动,其中任何一个都可能对结果产生负面影响。我们还了解到,如果没有像Esper盒子这样的东西来控制闪光灯触发器以及相机快门,几乎不可能使用闪光灯摄影。
Esper Control Boxes:
幻兽控制箱:
To operate any settings on the cameras, as well as transfer photos to our computer in bulk - we use a program called Digicam control. To operate the cameras via Digicam, all of the cameras are connected to the computer via large USB 3.0 hubs.
For camera settings, it is most important to keep the ISO as low as possible at 100-400 to avoid unnecessary grain in the images. Avoid a shallow depth of field. Try to keep a minimum of F8.0 and 1/60 shutter speed. Aim for a consistent and neutral focal length (50mm, but may depend on your camera sensor and lens). And lastly, it is very important to color calibrate the cameras and ensure that you are capturing consistent and neutral colors for texturing purposes. Shoot everything in RAW format (or very high-quality settings).
要操作相机上的任何设置,以及将照片批量传输到我们的计算机 - 我们使用一种名为Digicam控件的程序。要通过Digicam操作相机,所有相机都通过大型USB 3.0集线器连接到计算机。
对于相机设置,最重要的是将ISO保持在尽可能低的100-400,以避免图像中出现不必要的颗粒。避免浅景深。尽量保持最低 F8.0 和 1/60 快门速度。瞄准一致且中性的焦距(50mm,但可能取决于您的相机传感器和镜头)。最后,对相机进行颜色校准并确保捕获一致和中性的颜色以进行纹理处理非常重要。以RAW格式(或非常高质量的设置)拍摄所有内容。
Processing the Scan
Once we have retrieved the photos, we bring them into Lightroom. Here, we flatten the lighting, even more. We bring highlights down and shadows up. This is done because from our experience, we’ve learned that this will generally help our software analyze the photos with more accuracy as less information is lost in under or over-exposed elements. It’s fine to go a bit wild to help the software achieve the best 3D results, as we can always replace the texture later with our preferred settings once we have the model ready.
We then bring the edited photos into Agisoft Metashape (any photogrammetry software will do). Through its magical algorithm, Metashape aligns all the cameras in 3D space and constructs a point cloud from the data.
处理扫描
一旦我们检索了照片,我们就把它们带入Lightroom。在这里,我们更加扁平化照明。我们降低高光,增加阴影。这样做是因为根据我们的经验,我们已经了解到,这通常有助于我们的软件更准确地分析照片,因为在曝光不足或过度曝光的元素中丢失的信息更少。为了帮助软件获得最佳的3D效果,这很好,因为一旦我们准备好了模型,我们可以随时用我们的首选设置替换纹理。
然后,我们将编辑后的照片带入Agisoft Metashape(任何摄影测量软件都可以)。通过其神奇的算法,Metashape将3D空间中的所有相机对齐,并从数据中构建点云。
3D Data Constructed from Photos in Agisoft Metashape:
从 Agisoft 元形状中的照片构建的 3D 数据:
Hair is something that really messes up this process so we have our subjects wear this stylish hair cap. We also make sure that the hair cap does not cover the hairline completely so we know where to place the hair. Usually, we also ask subjects to shave any beards before coming in for a scan – but a small stubble is easy to clean up in ZBrush later if needed.
头发是真正搞砸这个过程的东西,所以我们让我们的受试者戴上这个时尚的发帽。我们还确保发帽不会完全覆盖发际线,以便我们知道将头发放在哪里。通常,我们还要求受试者在进行扫描之前剃掉任何胡须 - 但是如果需要,以后在ZBrush中清理小胡茬很容易。
So this is the results we get from the neutral scan, a really nice base to build upon. We are not looking to capture pore details, as we add those in later ourselves. It’s worth noting that we actually forgot to adjust one of the lights for this scan. As a result, there is a bit of shadow being cast off the nose, but something like that is easy enough to clean up later.
As mentioned before, we also capture different expressions to use as blend shapes for our riggers and animators to work with when animating our digital double. This will mean that when our characters frown or smile, it is their smile that you see in the game and the nuances of their performance are not wasted.
因此,这是我们从中性扫描中获得的结果,这是一个非常好的基础。我们不打算捕捉毛孔细节,因为我们稍后会自己添加这些细节。值得注意的是,我们实际上忘记了为这次扫描调整其中一个灯。结果,鼻子上有一点阴影,但这样的东西很容易在以后清理。
如前所述,我们还捕获了不同的表达式,以用作混合形状,供我们的装配师和动画师在对数字替身进行动画处理时使用。这意味着当我们的角色皱眉或微笑时,你在游戏中看到的是他们的微笑,他们表演的细微差别不会浪费。
Retopology and Cleanup
Once we have a 3D scan the next step is to wrap our base mesh head topology around it using a program called wrap3d. All of our heads share the same topology and UV's to streamline things as much as possible, it also means you can swap textures between any character which really speeds up the process of making background characters.
重新拓扑和清理
一旦我们有了3D扫描,下一步就是使用一个名为wrap3d的程序将我们的基本网格头拓扑包裹在它周围。我们所有的头部都共享相同的拓扑和UV,以尽可能地简化事物,这也意味着您可以在任何角色之间交换纹理,这确实加快了制作背景角色的过程。
Next, we bring this wrapped topo into ZBrush, sculpt away the things we don’t want, like the beard, and put in any details like skin pores or scars. Here is where we add 3D eyes and other details.
接下来,我们将这种包裹好的topo带入ZBrush,雕刻掉我们不想要的东西,比如胡须,并放入任何细节,如皮肤毛孔或疤痕。在这里,我们添加了3D眼睛和其他细节。
We already have displacement maps for pores that fit our UV’s so barely any time goes into making those, it’s mostly just importing the maps. On top of that, we sculpt any wrinkles that may be unique to that person. Sometimes by importing the Color Map and tracing information from it. After cleaning the neutral expression we repeat the same process for the blend shapes.
Blendshape transition within ZBrush:
我们已经有适合我们UV的毛孔位移图,所以几乎没有时间去制作这些,它主要只是导入贴图。最重要的是,我们雕刻了可能是那个人独有的任何皱纹。有时通过导入色彩映射表并从中跟踪信息。清洁中性表达式后,我们对混合形状重复相同的过程。
ZBrush 中的 Blendshape 过渡:
Blendshapes can be added as additional layers to the neutral face in ZBrush. We then bake Normal Maps from the blendshapes and composite them into a wrinkle map which will overlay on the base normal in-engine depending on which expression is being triggered.
混合形状可以作为附加图层添加到ZBrush中的中性面。然后,我们从混合形状中烘焙法线贴图,并将它们合成一个褶皱贴图,该褶皱贴图将叠加在引擎内的基本法线贴图上,具体取决于触发的表达式。
The Textures
At this point, we usually clean up the color texture from the scan. This includes painting out any clothing the actor may have had on and getting rid of any lighting information that may remain. All the texture work is done in Substance 3D Painter.
To get rid of any shadows we make a layer with a light effect, put a black mask on it, and then paint in the mask where needed to lighten up the darker areas. Normally we would also paint out the haircap with a texture similar to the character's hair.
纹理
此时,我们通常会从扫描中清理颜色纹理。这包括画掉演员可能穿的任何衣服,并删除可能保留的任何照明信息。所有纹理工作都是在Substance 3D Painter中完成的。
为了消除任何阴影,我们制作了一个具有光效的图层,在其上放置一个黑色蒙版,然后在蒙版中绘制需要照亮较暗区域的地方。通常,我们还会用类似于角色头发的纹理来绘制发帽。
The only other textures we make for singular heads are a Normal Map and a Cavity Map that we bake from the high poly. The rest is mostly generated in the skin shader inside Unreal Engine or uses reusable maps that all characters share.
我们为单数头部制作的唯一其他纹理是我们从高多边形烘焙的法线贴图和腔体贴图。其余的大部分是在虚幻引擎内的皮肤着色器中生成的,或者使用所有角色共享的可重用贴图。
Results
So what we end up with at that stage is Eirikur’s head, cleaned up and imported into Unreal Engine with some very basic materials.
结果
因此,在那个阶段,我们最终得到的是Eirikur的头部,清理并导入到虚幻引擎中,其中包含一些非常基本的材质。
Scanned Model Inside Unreal Engie:
虚幻引擎中的扫描模型:
For main characters we spend more time than that getting things just right and finessing small details, making sure the character feels right and possibly exaggerating some features if we feel like it’s necessary, but for a secondary character, something like this would be just fine.
对于主要角色,我们花更多的时间让事情变得恰到好处,并细化小细节,确保角色感觉正确,如果我们认为有必要,可能会夸大一些特征,但对于次要角色来说,这样的事情会很好。
Texture Variation Using the Same Mesh:
使用相同网格的纹理变化:
And that's everything! If you’d like to see more of this process, we recently posted a vlog about this scan on our YouTube channel!
Also, the Myrkur Games team is expanding and we are looking for multiple new hires to join our team in the development of Echoes. Check out our page here to see all the openings.
这就是一切!如果您想了解更多有关此过程的信息,我们最近在YouTube频道上发布了有关此扫描的视频博客!
此外,Myrkur Games团队正在扩大,我们正在寻找多位新员工加入我们的团队,共同开发Echoes。查看我们的页面 请点击此处查看所有空缺职位。
https://youtu.be/mWQfZ0Zz79g
|