虚幻引擎:4.22
VS:2017
1.画布材质
Alpha纹理用来存储画笔的痕迹(一会儿的手柄将会通过UV设置Alpha),并用PaintColor(自己选的颜色)绘制在画布上。
2.画笔材质
画笔材质相对来说,会稍微复杂点,主要是用Position(手柄指向)来获取当前射线所在的UV位置,并绘制相应的PaintTex也就是我们自己所设置的画笔纹理到目标纹理上,这里的Size是用来控制PaintTex的大小。
3.画笔纹理
因为UE4对图片都有相应的Texture设置,这里也需要对纹理进行相应的设置。不然纹理会是平铺状态,这样子就不符合我们的需求了。
4.墙面Actor
创建蓝图,在下面添加一个Cube,并创建了开始的画布材质赋值给Cube,这里还可以为其设置自己喜欢的画笔颜色。
然后我们还需要为这个蓝图创建一个RenderTarget,用来存储画笔的痕迹,并设置为当前画布材质的Alpha纹理 。
5.手柄画笔蓝图
用UE4自带的第一人称模板,通过手柄的射线来获取画布模型的UV,再通过画布材质渲染到RenderTarget上。
(1)在构造方法中,创建画笔材质,并设置其笔刷大小与纹理。
(2)设置一个bool变量,表示是否扣右手扳机。
(3)创建射线。
射线检测是否是之前的画布蓝图,并获取UV通过画笔材质绘制到画布蓝图的RenderTarget上,这样你的画笔就已经实现了。
6.注意事项
在UE4的ProjectSettings中需要打开Support UV From Hit Results,不然Find Collision UV方法将无法执行。