1890年代的缝纫机-瑞安·哈尼-双语
本帖最后由 姑娘出息点 于 2022-8-24 17:47 编辑Introduction
Hello! I'm Ryan Honey, a Model and Lighting Artist at Ubisoft Toronto. My art journey started with an interest in Digital Concept Art. My focus was landscape environments and scene composition. I graduated from Durham College with an Advanced Diploma in Game Art. My focus was 3D Modelling, Texturing, and Environment Art. I went out of my way to participate in 3D art communities and challenges during school. I am now mostly working with Snowdrop at Ubisoft and Unreal Engine 5 in my personal work.
介绍
你好!我是Ryan Honey,育碧多伦多的模特和灯光艺术家。我的艺术之旅始于对数字概念艺术的兴趣。我的重点是景观环境和场景构图。我毕业于达勒姆学院,获得了游戏艺术高级文凭。我的重点是3D建模,纹理和环境艺术。我不厌其烦地参与3D艺术社区和学校期间的挑战。我现在主要在育碧和虚幻引擎5的Snowdrop工作。
A project I recently contributed to was the Ubisoft NEXT 2022 3D Art challenge which I ended up winning! Here are some clips from that:
我最近贡献的一个项目是育碧NEXT 2022 3D艺术挑战赛,我最终赢得了冠军!以下是其中的一些片段:
https://att.element3ds.com/data/attachment/upload_media/20220824/h2aiau98k2dz0okz.mp4?form=upload_media_8043https://att.element3ds.com/data/attachment/upload_media/20220824/ygeabnjak0b5tefn.mp4?form=upload_media_8044
You can find the whole project breakdown here on ArtStation.
Inspiration and References
After getting the written prompt about the challenge's environment from Ubisoft, I started making a 'mood board' with a bunch of eBay, Reddit, Pixabay, and Google image references. I like to start a reference board using PureRef.
你可以在ArtStation上找到整个项目的细分。
灵感和参考
在从育碧那里得到关于挑战环境的书面提示后,我开始用一堆eBay,Reddit,Pixabay和Google图像参考制作一个“情绪板”。我喜欢使用PureRef启动参考板。
I knew the "Singer 1892 Sewing Machine" prop needed to look antique. The body needed to show wear and clear use. Details like rust drips, scratches, roughness scuffing, and decals were going to be important. I even extracted some details from photographs provided by my friends (model #, metal brand badge). Their name is Clarissa Salati and you can find them on ArtStation as well.
我知道“歌手1892缝纫机”道具需要看起来很古色古香。身体需要表现出磨损和清晰的使用。铁锈滴落,划痕,粗糙划痕和贴花等细节将非常重要。我甚至从朋友提供的照片中提取了一些细节(型号#,金属品牌徽章)。他们的名字是Clarissa Salati,你也可以在ArtStation上找到他们。
Texture references can be used to generate grunge alphas as well. By bringing these into Photoshop and doing a black and white filter and levels crunch, we can generate some great alphas for sculpting and texturing.
纹理参考也可用于生成垃圾 alpha。通过将它们带入Photoshop并进行黑白滤镜和关卡处理,我们可以生成一些用于雕刻和纹理的出色alpha。
Modeling
I started with a low poly blockout of the main body that left out all of the little metal functional pieces in Maya. This is an important step to match the shape, volume, and silhouette of the original Singer sewing machine.
建 模
我从主体的低多边形块开始,省略了Maya中的所有小金属功能部件。这是匹配原版Singer缝纫机的形状,体积和轮廓的重要一步。
I use all of those gathered references to make sure the proportions match. I then brought the low poly of the body into ZBrush to do a high poly detail pass with all of the small-form details like lumps, metal extrusions, scratches, and dents.
I use a library of generated alphas to project and sculpt detail into the high poly. This was the only part that actually required any sculpting. Every other detail came in the texturing phase.
我使用所有这些收集的参考资料来确保比例匹配。然后,我将主体的低多边形带入ZBrush中,以完成所有小形状细节的高多边形细节传递,如块状,金属挤压,划痕和凹痕。
我使用生成的 Alpha 库将细节投影和雕刻到高多边形中。这是唯一真正需要任何雕刻的部分。所有其他细节都来自纹理化阶段。
https://att.element3ds.com/data/attachment/upload_media/20220824/asyiv9nvahfs9qxk.mp4?form=upload_media_8045
I then modeled all of the metal mechanical bits, a lot of which started as cylinder and gear primitives. I used a library of generated screws, bolts, and nuts to connect these bits to the body.
然后,我对所有金属机械位进行了建模,其中许多都是从气缸和齿轮基元开始的。我使用了一个生成的螺钉,螺栓和螺母库将这些钻头连接到主体。
The more complicated shapes were made using the Create Polygon tool in Maya and then doing a quick auto retopo in Maya for small objects. I used vert snap (V+drag) to center things on the model.
更复杂的形状是使用 Maya 中的“创建多边形”工具制作的,然后在 Maya 中对小对象执行快速自动重定。我使用垂直捕捉(V + drag)将事物集中在模型上。
https://att.element3ds.com/data/attachment/upload_media/20220824/zgtq2os0tci1usus.mp4?form=upload_media_8046
The wooden foundation was made using a cube with a series of bevels and extrusions. The wooden foundation is all one, watertight mesh. The wheel was modeled with a torus primitive, extruded inwards, and subdivided to add curved detail.
木制基础是用一个带有一系列斜面和挤压件的立方体制成的。木质地基全部为一体,水密网。车轮采用圆环体基元建模,向内挤压,然后进行细分以添加弯曲细节。
The thread was actually just simple cylinders with a generated string texture and a Normal map on it to fake the tiny details of the thread.
线程实际上只是简单的圆柱体,具有生成的字符串纹理和法线贴图,以伪造线程的微小细节。
Topology
The topology of the sewing machine body was the only thing that did not start from a primitive with proper, even, quad topology. After doing the high poly of the body in ZBrush, I drew ZRemesh guide loops all around the model to direct the edge loops for retopology.
拓扑学
缝纫机本体的拓扑结构是唯一没有从具有适当,均匀的四边形拓扑的原始开始的东西。在ZBrush中完成主体的高多边形之后,我在模型周围绘制了ZRemesh引导循环,以指导边缘环路进行重新拓扑。
https://att.element3ds.com/data/attachment/upload_media/20220824/vn66baxuzn5zpyjr.mp4?form=upload_media_8047
I painted areas in blue that did not need a lot of vert density and painted red the areas that would be seen close up in detail to indicate more vert density (PolyPaint in ZBrush). I used Decimation and then ZRemesher to reduce the high poly down to a manageable low poly with no edge spirals thanks to the ZRemesher Guides. I brought the poly count down to a nice medium amount that would function in a real-time engine but isn’t low enough to lose much detail.
我用蓝色绘制了不需要很多垂直密度的区域,并将近距离看到的区域涂成红色,以指示更多的垂直密度(ZBrush中的PolyPaint)。我使用抽取,然后使用ZRemesher将高多边形减少到可管理的低多边形,由于ZRemesher指南,没有边缘螺旋。我将多边形计数降低到一个很好的中等数量,可以在实时引擎中运行,但不够低,不会丢失太多细节。
https://att.element3ds.com/data/attachment/upload_media/20220824/vswmgggsbgsdhmo5.mp4?form=upload_media_8048
As for UVing, Maya's UV toolkit is my choice software. I started with a planar UV projection on all of my models and then manually cut (Shift+X, while the UV editor is being hovered) and sewed (Shift+S, while hovering) edges. I hid seams on corners and spines on objects. If you know your model will only be seen from a certain set of angles, making a UV island out of the bottom of it can get you some great texel density that can be used on other areas of the model. I used the nudge and optimize brushes in Maya's UV editor to rectangulate my UVs as well as I can.
至于UVING,Maya的UV工具包是我选择的软件。我从所有模型上的平面UV投影开始,然后手动剪切(Shift + X,当UV编辑器悬停时)和缝合(Shift + S,悬停时)边缘。我把角落的接缝和物体上的刺藏起来。如果您知道您的模型只能从某个角度看到,那么从底部制作一个UV岛可以为您提供一些可以在模型的其他区域使用的巨大纹素密度。我在Maya的UV编辑器中使用了微移和优化画笔,以尽可能地矩形我的UV。
This is an important step in getting the most out of my 1:1 ratio UV map. I then did a packed layout on all objects I believed should have been included in the material UVs. Making a bit of an atlas out of your UV materials is a great way to save on texture memory and texture draw calls in engines like Unity and Unreal. UV atlases in general are really important, especially in environment art.
这是充分利用我的1:1比例UV贴图的重要一步。然后,我对我认为应该包含在材料UV中的所有对象进行了打包布局。从UV材质中制作一些图集是节省Unity和虚幻引擎中纹理记忆和纹理绘制调用的好方法。一般来说,紫外线图集非常重要,特别是在环境艺术中。
Texturing
After packing all of my UV channels, I bring my model into Substance 3D Painter for baking and texturing.
纹理
在打包完所有 UV 通道后,我将模型放入 Substance 3D Painter 中进行烘焙和纹理处理。
https://att.element3ds.com/data/attachment/upload_media/20220824/in189qrknltqqwwk.mp4?form=upload_media_8049
Only the sewing machine body and wheel needed a bake. I typically increase the ray casts during the bake to double what is the default in Substance 3D Painter. I also turn off the self-occlusion of separate objects and perform an ambient occlusion bake separately at the end, if the model needs it.
A great tool in SP is the low poly and high poly suffix settings, if you name your objects accordingly (I use _LP, _HP, and _BF), you can bake without having to do an exploded bake (separating them in world space, baking, then recombining by replacing the mesh with the un-exploded version). This is an important step to dial in and get right so we don't get any bake artifacts.
只有缝纫机的机身和轮子需要烘烤。我通常会在烘焙过程中增加光线投射,使 Substance 3D Painter 中的默认值增加一倍。如果模型需要,我还关闭了单独对象的自闭塞,并在最后分别执行环境光遮蔽烘焙。
SP中的一个很好的工具是低多边形和高多边形后缀设置,如果您相应地命名对象(我使用_LP,_HP和_BF),则可以烘焙而无需进行分解烘焙(在世界空间中将它们分开,烘焙,然后通过用未分解的版本替换网格来重新组合)。这是拨入并正确操作的重要一步,这样我们就不会得到任何烘焙工件。
I set up every Substance 3D Painter project by adding some important fill and filter layers. First, I set normal and ambient occlusion mixing in my shader settings to replace.
我通过添加一些重要的填充和滤镜层来设置每个物质3D Painter项目。首先,我在着色器设置中设置了正常和环境光遮蔽混合以进行替换。
Then I added my Normal and AO map to the BOTTOM of my layer stack and color-coded it purple, so as not to get lost in the many, many layers to come.
然后,我将我的 Normal 和 AO 贴图添加到图层堆栈的底部,并将其颜色编码为紫色,以免迷失在即将到来的许多图层中。
I did this so that if a bake becomes unruly, rather than spending the time to make a cage mesh or bring it into marmoset for bake painting, I could just paint over top of the Normal or AO map areas that were a problem in SP. A very quick fix. It's a good idea to set any edited normals or AO as an anchor point so you can reference that, rather than an artifacted Normal or AO map.
Use the anchor point as a reference with smart materials and smart masks, rather than the original baked map. Here’s a great video explaining anchor points in SP, and here is a video explaining fixing baked Normals and AO.
我这样做是为了如果烘焙变得不守规矩,而不是花时间制作笼子网格或将其带入狨猴进行烘焙绘画,我可以在SP中有问题的正常或AO地图区域上绘画。一个非常快速的修复。最好将任何已编辑的法线或 AO 设置为锚点,以便您可以引用该锚点,而不是伪影法线或 AO 映射。
使用智能材质和智能蒙版的锚点作为参考,而不是原始烘焙地图。这是一个很棒的视频,解释了SP中的锚点,这是一个视频解释了修复烘焙的法线和AO。
At the top of my layer stack, I always have a fill layer that references curvature in the base color channel and set the blending mode of this layer to Overlay with opacity from 40-80. I then do a levels crunch on this and raise the minimum white levels so that the overlay does not make some areas too dark, and rather just makes edges pop. Optionally, I add a blur filter BEFORE the levels crunch depending on the model so that I can control the thickness of the curvature's influence on the color.
Another top layer is a fill layer set to Multiply blend mode, opacity 20-50. This is used in the base color AND height channel. Blur it and levels crunch it to your liking. Set the height opacity really low for this one. Too much (especially if blurred) is going to make it look lumpy. This height information asks for some extra depth to your normals that you can control the intensity of through masking. Here’s a video showing the layer stack and curvature/AO color layers in action:
在图层堆栈的顶部,我总是有一个填充图层,该图层引用基色通道中的曲率,并将此图层的混合模式设置为“叠加”,不透明度为 40-80。然后,我对此进行一次色阶紧缩,并提高最小白电平,以便叠加层不会使某些区域太暗,而只是使边缘弹出。或者,我在色阶紧缩之前添加一个模糊滤镜,具体取决于模型,以便我可以控制曲率对颜色影响的厚度。
另一个顶层是设置为“乘法混合”模式的填充图层,不透明度为 20-50。这用于基色和高度通道。模糊它,并按照你的喜好压缩它。将高度不透明度设置为非常低。太多(特别是如果模糊)会让它看起来结块。此高度信息要求对法线进行一些额外的深度,您可以通过遮罩来控制强度。以下视频显示了图层堆栈和曲率/AO 颜色图层的实际效果:
https://att.element3ds.com/data/attachment/upload_media/20220824/kkpojlcplbltk441.mp4?form=upload_media_8050
Below these two top layers, I had a PAINT layer with the base color AND roughness set to Passthrough. This references ALL color and roughness info below the layer. Add a sharpen filter to the color and height channels from 0.3-0.5 intensity. This adds some great detail to the channels, especially when viewed at a distance.
Then, when my "post" layers were set up and my bake is good, I played with some smart material metals I'd authored to try to find a fit that matches the reference. I went with something dark and rusty that had gold procedural highlights (changed from yellow to whiteish).
I added a rust material layer and duplicated it to make a greener version of the rust as well. This was to make it take on the look of oxidized metal which has a bit of a green tinge. This rust has Roughness, Height, and Normal information that plays with the light and breaks up the metal in a way that makes the object look antique and well-used.
在这两个顶层之下,我有一个“画图”层,其基色和粗糙度设置为“直通”。这将引用图层下方的所有颜色和粗糙度信息。将锐化滤镜添加到颜色和高度通道(强度为 0.3-0.5)。这为通道增加了一些细节,尤其是在远距离观看时。
然后,当我的“后”层设置好了并且我的烘焙很好时,我尝试使用我编写的一些智能材料金属,试图找到与参考相匹配的合适材料。我选择了深色和生锈的东西,有金色的程序亮点(从黄色变为白色)。
我添加了一个生锈材料层并复制了它,以制作一个更绿色的锈蚀版本。这是为了让它具有氧化金属的外观,具有一点绿色色调。这种锈蚀具有粗糙度,高度和法线信息,这些信息与光线一起发挥作用,并以一种使物体看起来古董和良好使用的方式分解金属。
https://att.element3ds.com/data/attachment/upload_media/20220824/hxch2tla4atbhocc.mp4?form=upload_media_8051
Once I got a metal and color I was happy with, I started placing my decals and stamps that I used Substance Sampler to extract. I used photos provided by friends of their own Singer Sewing machine and off of eBay photos to extract decal and stamp details. For instance, the gold floral pattern, the text, and the metal brand logo.
一旦我得到了一种我满意的金属和颜色,我就开始放置我的贴花和邮票,我用物质采样器来提取。我使用朋友提供的照片,他们自己的歌手缝纫机和eBay照片来提取贴花和邮票细节。例如,金色花卉图案,文字和金属品牌徽标。
I brought the photos into Photoshop, masked around what I needed, and then imported these (in a 1:1 ratio) into Substance Sampler. I used Sampler to generate PBR channel textures using their AI-powered "Image to Material" function that produces Roughness, Height, AO, and Normal map texture from just one photo. I exported these textures into Substance 3D Painter and then projected them onto my model using planar, and tri-planar projection fill. This let me move the decals around as I wanted to match my reference. A really great tool here when importing decals like this is to use Anchor Points to use these decals as micro detail for procedural materials.
我把照片放到Photoshop中,遮罩在我需要的东西周围,然后将这些照片(以1:1的比例)导入到Substance Sampler中。我使用采样器生成 PBR 通道纹理,使用其 AI 驱动的“图像到材质”功能,该功能仅从一张照片生成粗糙度、高度、AO 和法线贴图纹理。我将这些纹理导出到 Substance 3D Painter 中,然后使用平面和三平面投影填充将它们投影到我的模型上。这让我可以移动贴花,因为我想匹配我的参考。在像这样导入贴图时,一个非常棒的工具是使用锚点将这些贴图用作程序材质的微细节。
https://att.element3ds.com/data/attachment/upload_media/20220824/r2j1oebq8krob2b0.mp4?form=upload_media_8052
Adding rust, dirt, or grunge to a decal is easy when the smart material can reference the Normal and AO information through an anchor point to procedurally populate the decal.
当智能材质可以通过锚点引用法线和 AO 信息以程序方式填充贴花时,很容易将锈迹、污垢或垃圾添加到贴花中。
https://att.element3ds.com/data/attachment/upload_media/20220824/efisxfnfburnbic7.mp4?form=upload_media_8053
As for the wood base, I used something with large, obvious wood grain pattern details to match my reference. I wanted to give it a lacquered wood look so I wanted it to have low roughness, and not too much normal information outside of the big, swooping, grain details. Low amount of micro normal and height detail. To show wear on the wood, I used dirt masks and stain grunge to show the wood chipping, adding a Blur Slope set to 1000 division intensity to make small, microsurface chipping onto the edges more believable.
至于木基,我使用了具有大而明显的木纹图案细节的东西来匹配我的参考。我想给它一个漆木的外观,所以我希望它具有低粗糙度,并且在大的,俯冲的,颗粒细节之外没有太多的正常信息。微法线和高度细节量少。为了显示木材的磨损情况,我使用污垢蒙版和污渍垃圾来显示木材碎裂,并添加了一个设置为1000分割强度的模糊坡度,以使边缘上的小表面碎裂更加可信。
Here is a video that breaks down the Blur Slope node in SP. You can plug in your own grunge and noise maps to the filter to add personalized detail, too.
A final detail was spreading spider webs all over the model. The webs are just folded two-sided planes. The textures were extracted from photos and found online and turned into an atlas of alphas. I edited the UVs of the planes in Maya to line them up with the spider web texture.
下面是一个视频,其中分解了 SP 中的“模糊斜率”节点。您可以将自己的垃圾和噪音贴图插入滤镜,以添加个性化细节。
最后一个细节是将蜘蛛网散布在模型上。蛛网只是折叠的双面。纹理是从照片中提取并在线找到的,并变成了阿尔法图集。我在Maya中编辑了飞机的UV,使它们与蜘蛛网纹理对齐。
After final wear, tear, and scratch pass using roughness and height channels, I exported my textures with Substance 3D Painter's Unreal preset channel packing where we have 3 maps of Color, Normal, and AO+Roughness+Metallic (channel packed).
在使用粗糙度和高度通道进行最终磨损,撕裂和划痕后,我使用Substance 3D Painter的虚幻预设通道打包导出了我的纹理,其中我们有3个颜色,法线和AO + 粗糙度+金属(通道打包)的贴图。
Setting Up the Final Model and Rendering
The final model was rendered in Marmoset Toolbag's real-time renderer. I lit the Marmoset scene using an HDRI skylight, a depth fog, and a series of point and spot lights. Each camera angle was its own camera in Marmoset with its own Field of View, depth of field focus, and post-process effects (like tone mapping, bloom, vignette, etc.) to best match the camera angle. Here I use Marmoset’s Light Controller to dynamically light a surface based on its normal vector:
设置最终模型和渲染
最终模型在Marmoset Toolbag的实时渲染器中渲染。我使用 HDRI 天窗、深度雾以及一系列点光源和聚光灯照亮了狨猴场景。在Marmoset中,每个摄像机角度都是自己的摄像机,具有自己的视野,景深焦点和后期处理效果(如色调映射,绽放,晕影等),以最好地匹配摄像机角度。在这里,我使用Marmoset的光控制器根据其法向矢量动态点亮表面:
https://att.element3ds.com/data/attachment/upload_media/20220824/cpohhwpah3oa3arz.mp4?form=upload_media_8054
I use the ACES color space in Marmoset and SP (also in UE5). Working in the same color space across all of your software better guarantees that you get the same look and feel across each target render. Here’s a video from the amazing William Faucher on how to set up ACES in your Substance 3D Painter project.
我在Marmoset和SP(也在UE5中)中使用ACES色彩空间。在所有软件中以相同的色彩空间工作,可以更好地保证您在每个目标渲染中获得相同的外观。这是来自令人惊叹的William Faucher的视频,介绍如何在Substance 3D Painter项目中设置ACES。
Conclusion
I would say that the most important part of creating appealing props is the reference. Doing a study of the prop you're creating and knowing why, how, and what it is used for is important for making convincing details. You never know when someone might be an expert on a specific prop and call you out for something being wrong. Part of realism is knowing the mechanics of how something functions. You have to become a bit of an expert on the item if you want to craft it yourself.
结论
我想说的是,创造吸引人的道具最重要的部分是参考。对你正在创造的道具进行研究,并了解它为什么,如何以及用于什么,这对于制作令人信服的细节非常重要。你永远不知道什么时候有人可能是某个特定道具的专家,并因为你出了什么问题而把你叫出来。现实主义的一部分是了解事物如何运作的机制。如果你想自己制作它,你必须成为这个项目的专家。
https://cdn.80.lv/api/upload/content/c1/62fbf2cb0a37e.gif
The main challenges for creating a prop are filling in the gaps about what you don't know, or can't find references for an object. For instance, there were many pieces missing from the sewing machine I used for reference. There were also modified parts that wouldn't usually be found on an antique sewing machine piece. Doing the research on the exact make and model of your prop can help. If you truly can't find a reference online for the prop, try using something from a similar model or similar enough make. If it's close enough, you usually can't tell the difference.
创建道具的主要挑战是填补关于你不知道的东西的空白,或者找不到对象的参考。例如,我用于参考的缝纫机上缺少许多零件。还有一些改装的零件通常不会在古董缝纫机上找到。对道具的确切品牌和型号进行研究可能会有所帮助。如果你真的无法在网上找到道具的参考,请尝试使用类似模型或类似品牌的东西。如果它足够近,你通常无法分辨出区别。
https://att.element3ds.com/data/attachment/upload_media/20220824/k8dpoucmmm38cm3c.mp4?form=upload_media_8055
The biggest tip I would give to beginners is to keep learning and get more eyes on your work. Join communities where you can share your work and get feedback on it. Many of us in this industry end up staring at an object, a level, or an environment for so long that it warps into something bigger than we can imagine with our limited perspective. We hyperfocus on details that might not fit the overall need and getting more critique is always good.
我想给初学者的最大提示是继续学习,让你的工作有更多的关注。加入社区,您可以在其中分享您的工作并获得反馈。在这个行业中,我们中的许多人最终盯着一个物体,一个关卡或一个环境太久了,以至于它扭曲成比我们有限的视角所能想象的更大的东西。我们高度关注可能不符合整体需求的细节,获得更多的批评总是好的。
真棒
页:
[1]