模型尺寸与缩放问题

前要:前段时间因为项目开发,3d美术做的模型是非人形模型,不需要绑定骨骼,美术做的了第一版后面需要修改,但是替换的时候发现美术的子物体缩放值都没有统一,美术每次修改都会变换,但是我们开发是在模型的prefab上做了处理,每次美术换模型都很麻烦,配合美术调测了几次始终统一不了单位值,美术说做不了,当时开发时间紧急,就没有研究,就每次替换模型后开发自己手动调整,现在不这么忙了,我就借助别人的文章自己研究调整了,写了最简洁的文档,希望美术以后遇到问题也自己多动脑子吧

---1模型的尺寸规范

为了保证在任意父子嵌套下,模型在世界中的尺寸不受影响

我们在建模时不能通过缩放来调整模型的尺寸,所有模型导出时都应处于无缩放的状态(XYZ100%缩放),并表现出正确的物理尺寸

---2 Unity的物理单位尺寸与模型的尺寸要求

Unity中物理单位尺寸默认是1m

也就是说:

Transform中的1个Position单位坐标对应1m的物理长度

Unity Scence窗口中参考线中的最小的方格边长是1m的物理长度

并且Unity中的Box,默认状态是1m棱长的立方体网格

一个正常的人物模型(不考虑特殊Boss怪物,设定需要的缩放等情况)对它在Unity世界中的的物理尺寸参照如下(两种):

---1.胶囊替代:通常3d游戏中一个正常的人物模型大小相当于Unity中创建的一个默认胶囊体的大小,经常在模型师未给出人物模型情况下使用一个默认胶囊体暂时替代人物模型

---2.棺材参照:通常3d游戏中一个正常的人物模型应能够应被放置进一个底面积 1m^2高度2m的长方体(棺材)内,也就是将Unity中创建出的两个默认Box叠放在一起

Unity中的PhyX物理系统,也大致按照m为数量级进行物理模拟

过大或是过小的物理尺寸,都会对物理系统的模拟产生影响

---3 3dsMax的尺寸设置与控制

包括3dsMax在内的大多数DCC软件,物理单位尺寸都是可调整的,以便于建模不同大小的物体

为了能够建立出物理尺寸正确的模型,在建模前,我们就需要检查/设置Max中的系统单位,它决定了我们在Max中使用的1个单位坐标长度对应的物理长度

这里的厘米就是物理单位尺寸,决定了当前Max世界1单位坐标尺寸对应的物理尺寸长度

在导入模型时,Unity会根据模型文件中标记的物理单位尺寸以及自身的物理单位尺寸,对模型空间下的坐标尺寸进行解析,转换到游戏世界中的坐标尺寸,转换后会维持模型物理尺寸的不变性

Max在导入fbx时,如果是转为可编辑多边形/网格进行导出,模型同样会维持原先的物理尺寸的不变性

(如果是长方体,球体这类基本参数形体,不转换为可编辑多边形导出,导入后会维持尺寸参数/数值的不变而不是原先物理尺寸的不变)

我们还需要保持考虑文件中的系统单位勾选

从而在我们打开.max场景时,如果原先场景中的系统物理尺寸和当前Max设置的系统物理尺寸不相同,会出现这样的提示

选择按系统单位比例重缩放文件对象,会将.max场景中的物体进行尺寸数值的调整(不是通过物体级别的Scale调整),将场景中的模型依照之前的物理尺寸大小,呈现在当前的场景中

选择采用文件单位比例,则会替换当前的系统物理尺寸为场景/文件的物理尺寸

如果你在调整模型尺寸时存在疑惑,那么你可以参照当前的单位尺寸,去创建一个长方体,并将其设置为之前提到的参照棺材的尺寸,以此为参照进行模型的尺寸设定/检查

如图我们创建了一个长方体棺材去检查柜子的尺寸是否正确

一个人物模型的尺寸参照这个长方体棺材的大小,对比这个长方体棺材,结合真实世界的物理尺寸,以及游戏的设定要求,我们就可以对其它模型进行尺寸的调整/检查

---4 Max建模时正确的尺寸调整方法

我们在建模时,不能通过物体的Scale缩放去调整模型的尺寸/比例

不只是在对接Unity时有这样的要求,不使用物体的缩放调整尺寸/比例本身就是建模时的一种规范

对于模型的尺寸,我们需要将调整植入到顶点中,即调整模型在Max世界的坐标尺寸进而调整模型的物理尺寸,而不是在物体级别Transform矩阵中进行调整,可以采用下面的方法进行调整:

可以通过长方体/球体/圆形本身就有的参数设置进行调整

通过参数形体自带的尺寸参数进行调整

转为可编辑多边形/网格,在元素子层级下对物体进行缩放调整,此时尺寸缩放是被植入到了顶点中

同样的,在元素子层级下进行的旋转/移动也都会被植入到顶点中

如果我们不经意的使用了物体缩放进行了尺寸调整,我们可以通过重置变换来进行修正

选中物体,实用工具---重置变换---重置选定内容

使用重置变换前应断开所有子物体,并且还需检查子物体的缩放是否均为100%对有缩放的子物体也要进行重置变换

此时物体会被添加一个X变换命令,物体的Scale缩放会被重置为1,物体的世界朝向/渲染会被清0,物体之前的Transform旋转/缩放产生的影响都被植入到了顶点中

我们可以进入到X变换命令的Gizmo子层级中对物体进行缩放,旋转调整,缩放渲染的效果同样是植入到顶点中,并不会对Transform矩阵产生影响

调整完成后我们右键物体转换为可编辑多边形/网格,或是塌陷X变换命令

调整物体轴心的朝向时会发现物体产生了诡异的变形,这是由于物体进行了XYZ轴不等的Scale缩放导致的,同样可以通过重置变换,将缩放植入到顶点中,之后再调整轴心朝向来解决

猜你喜欢

转载自blog.csdn.net/qq_35385242/article/details/132059206