SketchUp的面向问题及个人反思
同志,法线方向什么的,做的过程中不注意下吗?
使用SU制作好白模,需要导入UE4进行验证,并针对流程进行不断调整。SU的作画不规范,会在UE4导入后出现惊天问题。最终对SU白模进行了大范围调整返工,才让效果恢复正常。
本文将记录这一问题是什么、为什么与怎么解。
“这模型怎么没面儿啊?”
用DataSmith导入UE4后,发现原本的白模缺了非常多的面。很多面只有一边,从另一侧看没有东西。
这个问题太熟悉了,但我以为SU导入UE4是可以配置自动生成双面的,(做梦),结果全盘继承了。
SU的面(face)分正面和反面,法线方向朝上的是正面。反面可以配置材质,也可以设置查看选项(SU默认反面是灰色,正面是白色),但最终导出到UE4是无法继承的,反面并不存在。
在SU内绘制白模时,画到一半才后知后觉发现了大量的正反问题。虽然进行了一定调整,但已经打好组的房间就没有再管。外加这一白模尺寸较大,且因为作画失误存在一定面线问题,最终处理率并不理想。本以为万能的UE4可以帮忙配置解决,最后反而比SU内效果还更糟糕。
SU面朝向问题的知识点
一个面只有一面是正面,因为它只是一个面(face)。这件事是所有问题的大前提。
可以回想下,UE4里那个平面预制体其实是叫plane,大家都区分开了,只有我想当然糊到一起。
SU的主要用途有两个,一是室内设计,二是建筑设计。这两个用途对于面的默认朝向需求正好相反。
对于室内设计:在地面上画形状时,一般意为家具、装饰物等室内用品。对于一个花瓶,它的底立在桌面上,那自然是正面朝下,反面朝上;因此画出的形状,默认为反面朝上。
对于建筑设计:在地面上画形状时,一般意为墙体、分间等楼层结构。在房间分割处画了个长方形,下一步是要把它拉出来生成墙体;朝上的面需要是正面,才能把它拉起来。
关卡设计,起码是个人目前的设计需要,更接近后者,但SU默认的操作逻辑更像前者。
通过一些使用习惯可以校正,例如用画笔工具,顺时针画是正面,逆时针画是反面;对于形状工具,目前没找到好的办法,画完之后自己记得flip faces吧。
烂了,但也不是不能救
回到我的现实问题:我设计好了个流程较长的大型关卡,现在导入UE4想赶快验证,结果面向全都不对,像一艘幽灵船飘在空中。咋办?
和@Whalex大佬请教了下,获得了一些方法论,最后总结出了两套处理方案。
1.(临时)复制一份原模型,全部翻转法线方向,然后导入UE4直接合并。T E N E T
2.(正式)寻找翻面辅助工具,手动翻掉所有反面,并且把需要拉成墙的都拉好。
对于1:从@Whalex那里听到这个解法后,整个人都被其dirty程度震撼了。但震撼了三秒后,发现这样确实完全可以,验证速度还非常快。马上复制拷贝翻转了下,导入UE4一看,船出来了。
对于2:这一方案就是前面说的“大范围翻新”。我觉得这是没办法的事,绘制时有多无视规范,之后就有多大问题要补,这对开发而言是通病。补的过程充满了无语,日后为了规避这种无语,想必自己会好好梳理白模绘制规范…了吧。
翻面辅助工具是在SUAPP上找的。SU内自己有“确定平面的方向”功能,但这个会同时改变相邻面,对于大型关卡而言已经完全不适用,更加说明了问题要从小抓起,别对着棺材落泪。
除了翻面问题,还需要把应该是墙的地方画成墙。例如地板、墙和房间结构等,如果它是有厚度的,就必须变成墙。除非确定这是关卡边缘的外景,否则必须是墙。
如果偷懒用面去画结构而不是墙,在关卡做到一定地步后,它一定会出事。虽然游玩功能可能可以保证,但视觉上会出现大量glitch,演示效果时必被美术diss,此乃活该。结构有厚度这件事与游玩无关,但关卡绘制时自己要有一定预期;对于多层结构,厚度也会影响玩家视线、枪线乃至路线,这何尝不是新的设计思路?
SU导入UE4的碰撞生成问题
在1的操作结束后,UE4已经有了可以玩的关卡。当时一边进行2,一边在UE4里跑测1的效果,然后发现碰撞不对劲儿。
准确的说,导入时分出的SM就非常不对劲儿。
在1的操作里,生成的TENET(反面)版关卡,是先打散了全部分组和组件后,进行的全局法线方向翻转。此时的TENET版,所有面都是黏在一起的。导入UE4后,整个变成超大一坨,生成碰撞根本不可能。
而对于正版,由于打组规范也不咋地,并且当时做到一半回去修复了下,修复的时候就打散了很多组,结果也有很多房间直接黏在一起。经过一番观察,我认为UE4是根据group/component去分SM的,除此之外所有连着的变成一个SM。
1的处理方法本来就很临时,下次一定好好打组。理想情况是在SU里保持打组规范,在导入UE4时修改配置,或导入UE4后批量生成碰撞,就可以直接验证关卡,无需其他亡羊补牢的修正操作。
虽然这次烂了,但下次可能就不烂了。抱着这样的心情写完了《忏悔录》,希望假期里玩SU时能玩出一套更干净的工作流。
SketchUp的面向问题及个人反思
https://uynad.github.io/2021/09/15/ldesign/20210916-sktup-faceproblem/