创建,设置和调整标准材质在虚幻引擎4中可能是一个非常耗时的过程。为了帮助加速和简化此过程,UE4提供了一种特殊的材质类型,称为“材质实例”。
材质实例化是一种创建父材质的方法,然后可以将其用作制作各种外观不同的子材质的基础。为了实现这种灵活性,“材质实例化”使用了一种称为继承的概念:将父级的属性赋予其子级。(业绩也是说在父级材质的参数发生变化(调整好后点击应用按钮重新编译材质)会直接影响子级——实例材质的参数发生变化(父级重新编译后实例就不用重新编译了,分层材质关系,允许修改属性以更改子材质的行为和外观,而无需重新编译着色器。某些类型的实例化材质甚至可以在游戏过程中响应游戏中的事件而发生变化(例如,一棵树,其材质在燃烧时会变黑并发黑)。)。
即使“材质实例”的目的是添加一种廉价的方法来编辑“材质”的外观,但请务必记住,默认情况下您无法编辑材质的每个要素。在材料实例真正可编辑之前,您必须首先选择要在该实例中可编辑的原始(或主)材料的属性,并将它们指定为parameter。这称为参数化材料。
常量实例和动态实例
虚幻引擎4中提供了两种类型的材料实例:
1.材质实例常量-仅在运行时之前计算。
材质实例常量
一个材质实例常量是一个实例化材质计算只有一次,在运行时之前。这意味着它在游戏过程中无法更改。但是,尽管它们在整个游戏中保持不变,但它们仍然具有不需要编译的性能优势。例如,如果您的游戏中有各种各样的汽车,每个汽车都有各自的涂漆工作,但其颜色在游戏过程中不会改变,则最佳实践方法是创建一个代表通用汽车基本方面的主材质。油漆,然后创建“材质实例常量”来表示不同类型汽车的变化,例如不同的颜色,不同的金属性,光泽度等。材质实例常量在“内容浏览器”中创建, 并通过“材质实例编辑器”进行编辑 。
2.材质实例动态-可以在运行时计算(和编辑)。
材质实例动态
甲材质实例动态(MID)是一个实例化材料,可游戏性(在运行时)时进行计算。这意味着在玩游戏时,您可以使用脚本(编译代码或Blueprint可视脚本)来更改材质的参数,从而在整个游戏中更改材质。从显示不同程度的伤害到更改油漆作业,再到响应面部表情而融合到不同的皮肤纹理中,此方法的可能用途是无止境的。
技术应用
MID是在脚本中通过参数化的Material或Material Instance Constant创建的。在“蓝图”中,将采用具有参数化属性的给定材料,并将其通过“创建动态材料实例”节点进行馈送。然后,该节点的结果通过“设置材质”节点应用到所讨论的对象,从而产生可以在游戏过程中更改的新材质。
为了允许将非实例化的Material应用于基元,使用了抽象基类MaterialInterface。此类是所应用Material的表达式和参数值的接口。Material类是MaterialInterface的子类,它定义表达式和默认参数值。这些类型都从其父级继承其表达式和参数值,可以选择覆盖或设置某些参数值的动画。
顺便说一句,这意味着,如果你想有一个蓝图变量能够接受任何材料或材料实例常量,你需要确保它是类型的变量MaterialInterface!


材料实例编辑器用于修改材料实例的参数。
网友评论