实体建模:使用部件进行 3D 建模

Time:10 分钟

通过实体建模,开发者可以使用最为简单的部件(例如块状体、球体、楔状体及柱状体等)来创建十分复杂的游戏模型。对模型进行联合操作后,也可以大大减少游戏中的总部件数目,从而间接提升游戏性能。

https://developer.roblox.com/assets/blt7f953d87b4d85cb3/CSG-Door.jpg

https://developer.roblox.com/assets/bltf6aa49515b1c492d/CSG-Potion.jpg

https://developer.roblox.com/assets/bltbc68386edd12aa09/CSG-Gear.jpg

建模操作

Union(联合)

Union(联合)为实体建模中的主要操作。选中希望组合的部件后,单击 Model(模型)选项卡中的 Union(联合)选项,即可执行这一操作。组合完毕的部件将被转化为名为 Union 的新部件。

https://developer.roblox.com/assets/blt12f1f9b92d9773ec/CSG-Union-Button.png

联合只能用于基础部件(块状体、球体、楔状体及柱状体),且这些部件下不能含有任何子项(如脚本或表面 GUI 等)。当试图对拥有子项的部件进行结合时,其子项将会从 DataModel 中隐藏。

Negate(抵消)

实体建模的功能不仅是组合连接部件。通过 **Negate(抵消)**按钮可以将部件的一部分进行去除。若要使用该按钮,请选中一个部件,然后单击 **Model(模型)**选项卡中的 **Negate(抵消)**按钮。

https://developer.roblox.com/assets/blt7dc16d2d629426a6/CSG-Negate-Button.png

此操作会将该部件转化为“抵消部件”(negative part),其外观将呈红色半透明状,以便区分。当使用联合工具组合抵消部件与正常部件时,抵消部件与正常部件重叠的部分将被切除。

注意:选中抵消部件后再次单击 **Negate(抵消)**即可回撤部件切除操作。

Separate(分离)

当希望对联合模型进行回撤(撤销操作)时,选中该模型并单击 **Separate(分离)**即可达到此目标。该操作将会分解已形成的联合,以便开发者对联合的大小和构造进行调整。

https://developer.roblox.com/assets/bltfcba9af76703c621/CSG-Separate-Button.png

实体建模的限制

  • If a union operation would result in a part with more than 5000 triangles, it will fail and Studio will alert you to the error in the Output window.

  • A unioned or negated part can only be scaled uniformly (all of the dimensions must be scaled at the same proportion). If you need to change just one part in a solid model, separate the model, transform the specific part, and redo the union process.

模型属性

细节等级

默认情况下,不管实体建模部件离镜头有多远,都将始终以精确保真度显示。虽然此特性可以改善从任何距离观察时的部件外观,但当场景中具有大量高细节实体建模部件时,可能会降低整体articles/Improving Performance|游戏性能

若需要对实体建模部件的显示细节等级进行动态控制,请将其 enum/RenderFidelity|RenderFidelity 属性更改为 Automatic(自动)。此操作将导致部件根据其与镜头的距离以不同的细节等级进行渲染:

与镜头的距离 渲染保真度

低于 250 格 最高

250 至 500 格 中等

500 格或以上 最低

平滑操作

PartOperation/SmoothingAngle|SmoothingAngle 属性代表了实体建模部件上各面法线之间阈值的一个角度(单位为度)。当法线差异值小于此属性的值时将对相关法线进行调整,也就是对差异值进行平滑。通常来说,如果想要获取较好的结果,应当将此属性设为 30 至 70 度之间的一个值。将其设为 0 度时,模型边缘将会极为锐利;而将其设为 90 至 180 度时会在拥有锐利边缘的联合模型上产生一种“阴影”效果(虽然可以将属性设于此区间,但并不推荐其所产生的效果)。

https://developer.roblox.com/assets/blt53ff07ce0d5f1cf7/CSG-SmoothingAngle-0.png

SmoothingAngle : 0

https://developer.roblox.com/assets/bltc1f5f51600953267/CSG-SmoothingAngle-50.png

SmoothingAngle : 50

注意:当法线拥有不同材质或颜色时,将不会受到表面平滑的影响。

***Roblox官方链接:实体建模:使用部件进行 3D 建模