UE4:获取材质表达式的信息和值 前言 本文基于4.27 本文记录最近工作中遇到的与材质系统相关的内容 UMaterial 1class UMaterial : public UMaterialInterface 图上这些是材质的输入节点,类型有FScalarMaterialInput、FColorMaterialInput、FVectorMaterialInput等,都继承自FMaterialInput。 这些是材质表达 2022-11-27 #UE4 #Material
UE4:安卓弹出窗口模式背景Splash显示问题 问题描述 在之前 解决安卓分屏模式下分辨率异常的问题时,发现了在弹出窗口模式下背景Splash比游戏的窗口大的问题,如图: 希望可以关闭或者隐藏背景板 尝试思路 以下是探索过程不是解决办法可以跳过 以下是探索过程不是解决办法可以跳过 以下是探索过程不是解决办法可以跳过 由于只能看出来这是splash,换图测试一下确认是splash,所以就按照弹出窗口没有关闭splash去寻找解决方案,于是找 2022-10-26 #UE4 #Android
UE4:MaterialFunctionInstance Editor的一个崩溃问题 问题场景 版本:4.27 release TA大佬最近在优化材质的时候,会把一些常用的公共的材质内的方法做成一个MaterialFunction,但是其中有些SwitchParameter,于是从MaterialFunction创建MaterialFunctionInstance然后更改不同的SwitchParameter的值,但是在打开材质函数实例的时候编辑器崩掉了 具体的例子是这样的: 如下 2022-10-24 #UE4 #Material #Editor
UE4:修改Shader压缩格式减小包体 前言 在今年三月份的时候为了减少安卓更新包的大小,尝试了将ShaderArchive文件进行拆分,仅更新有变动的文件的方案。 UE4:ShadecodeLibrary拆分 随着项目铺开,原有的方案中,我们使用最多的一个母材质所拆出来的文件的大小越来越大,希望还是能减少一下文件的大小,于是考虑到修改Shader压缩格式来实现这一目标。 本文仅适用于4.27版本 压缩格式 在ShaderResou 2022-10-18 UE4 #UE4 #Material #Shader
UE4:NiagaraMeshRenderer的两个bug临时修复 版本 4.27 release 问题一: 在MeshRenderer的SourceMode为Emitter的时候,在EmitterAttributes的命名空间里的VisibilityTag是不生效的,但是SpriteRenderer的SourceMode为Emitter的时候是可以生效的。 问题描述和复现方式: 新建一个NiagaraSystem,从模板添加一个NiagaraEmitter, 2022-09-25 #UE4 #Niagara
UE4:安卓版本分屏模式分辨率异常问题 问题描述 安卓7.0版本中增加了分屏显示的功能,UE4的Android平台的设置中可以设置关闭该项功能的支持,但是在安卓一些较新版本中,如果玩家打开了安卓的开发者选项并且开启了强制将Active设置为可调整大小(不同厂商定制可能名字不同),那么系统依然回允许将应用程序进行分屏显示 但是在这种情况下,分辨率会出现异常: 全屏时,分辨率正常 切换到分屏模式,显示不完全 在这个时候修改分屏的宽度, 2022-09-22 #Android
UE4:材质实例有关的编辑器方法 确认材质实例的动态参数是否被引用和覆盖 问题 实现 函数声明 实现思路 获取材质实例编辑面板显示的参数名称 问题 实现 函数声明 实现思路 材质实例的引用关系中有母材质已经不存在的材质参数 问题 实现 函数声明 实现思路 源码 确认材质实例的动态参数是否被引用和覆盖 问题 在材质中使用了DynamicParameter节点,通过该节点获得的值参与了部分计 2022-09-05 #UE4 #Material #Tools
UE4:SkeletalMesh的Material Slot和LOD Section 需求 需要检查每一层LOD的所有Section用到的材质 如果材质是消耗比较大的并且LOD大的情况下,直接关闭消耗较大的section 需要注意的是这里的一个机制 在SkeletalMesh中有MaterialSlots,每一级LOD的每一个Section可以使用Slots中的某一个材质 在默认的情况下,材质Slot的数量是等于Section的数量的,为了方便在不同的LOD层级切换材质,UE是允 2022-08-31 #UE4 #SkeletalMesh
UE4:Niagara添加获取FeatureLevel的方法 前言 TA大佬希望在NiagaraScript中可以有一个类似于材质的FeatureLevelSwitch的节点,让我帮忙看看能不能搞 我很费解啊这个事情.jpg 咨询了leader之后,决定扩展一个Niagara的DataInterface来支持CPU粒子获取FeatureLevel的信息 具体需求 在NiagaraScript中可以通过添加FeatureLevel引脚,引出两个Get方法, 2022-08-21 #UE4 #Tools #Niagara
UE4:Niagara扩展CameraQuery支持CPU获取ViewSize 前言 TA大佬在niagara里需要做一个CPU粒子,需要用到ViewSize这个参数,从CameraQuery里只有一个GPU方法可以获取,只能考虑GPU粒子,希望能有一个CPU获取ViewSize的方法 具体问题 新建一个NiagaraScript,默认长这样: 在MapGet里新增一个CameraQuery节点 从这个Pin拉出来Get方法 可以看到这个是CameraQuery的G 2022-08-19 #UE4 #Tools #Niagara