Arzie100 发表于 2022-12-29 16:29

unreal engine 渐变围栏制作和本人强迫症给他转换为伪代码通俗易懂


image.png

新建actor 编辑actor

image.png

添加样条线组件Spline

image.png

新建材质M_Region_Gradient
打开材质 修改 混合模式为半透明

image.png

新建VectorParamter ->连接到自发光

textCoord->CompoentMask(只勾选R通道)->(1-)(OneMinus)
拦截到不透明度

1-x代表反向,

image.png

actor 设置蓝图如下

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)}
页: [1]
查看完整版本: unreal engine 渐变围栏制作和本人强迫症给他转换为伪代码通俗易懂