unreal engine 渐变围栏制作和本人强迫症给他转换为伪
2022-12-28 本文已影响0人
吉凶以情迁
image.png
新建actor 编辑actor
image.png添加样条线组件Spline
image.png新建材质M_Region_Gradient
打开材质 修改 混合模式为半透明
新建VectorParamter ->连接到自发光
textCoord->CompoentMask(只勾选R通道)->(1-)(OneMinus)
拦截到不透明度
1-x代表反向,
image.pngactor 设置蓝图如下
image.png蓝图有点绕,
老夫用脑壳把他伪代码转换一下 简洁易懂
至于用的啥代码, 我认为是dart语言吧或者c#吧,dart支持参数命名可视化简单易懂,方法名中文嘛,这个ue本来支持,叫啥英文我反而是忘记了
在actor内部构造函数触发后执行如下代码
int count=this.spline.获取样条点数量()
for(int i=0;i<count-1;i++){
int start=i;
int end=i+1;
var 组件=this.添加样条网格体组件()
var Newmash=加载资源("/Script/Engine.StaticMesh/Engine/BasicShapes/Plane.Plane")
组件.设置静态网格体(Newmash:Newmash)
组件.设置向前轴(forwardAxis:Axis.Y,updateMesh:true)
var 材质=载入材质("/Game/DigitalTwin/Material/M_Region_Graient.M_Region_Graient")
var 材质实例=组件.创建动态材质实例(elementIndex:0,SourceMaterial:材质)
//这里的Color等于材质里面参数vector重命名的Color 类型为线性颜色
//this.color等于actor可编辑蓝图实例的公开传递的参数
材质实例.设置向量参数值(ParamterName="Color",value=this.Color)
组件.将组件附加到组件(Parent=this.spline)
var startTargent= this.spline.获取样条点的位置和切线(i)
var endTargent=this.spline.获取样条点的位置和切线(i+1)
组件.设置起始和结束(startPos:start, startTargent:startTargent, endPos:end, endTargent:endTargent)
}