自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 收藏
  • 关注

原创 UE和Android互相调用

先运行一下,看看是否可以发布到Android设备上,然后再进行下一步。然后可以通过Android Studio打开,选择gradle打开。这两种方式都是在UE打包的Android工程之上进行的。首先是UE打包Android,勾选下面这项。如果有多个场景需要添加场景。ue和android互调。工程文件在这个路径下。

2023-12-24 10:53:04 1429 2

原创 UE5 Android下载zip文件并解压缩到指定位置

四、首先是利用Blueprint中的Get Project Saved Directory获得工程名字+Saved,然后去掉../../../,然后在路径前面拼接上Android File Base Path,然后得到。windows平台下使用该插件没有问题,只是在Android平台下,只有使用绝对路径才能进行解压缩,所以如何获得Android下的绝对路径?增加C++文件获得Android平台的文件路径。二、解压缩是使用市场的免费插件。一、下载是使用市场的免费插件。三、Android路径问题。

2023-10-31 16:51:57 1122

原创 UE5 Blueprint发送http请求

目前两个是Beta的状态,如果你使用的平台支持就可以使用,我们的项目因为需要取Header的值,所有没法使用这两个插件,如果使用我的另一篇文章的方式解决读取Header的问题。一、下载插件HttpBlueprint、Json Blueprint Utilities两个插件是互相依赖的,启用,重启项目。发送Post请求,Url Root与Url Login拼接Url。二、Blueprint,构建Post的Json数据。再不需要获得Header的情况下,该方法比较简单。

2023-10-24 15:51:08 1930 2

原创 UE5 C++自定义Http节点获得Header数据

问题:[Compiler] In use pin no longer exists on node Send Http Request .代理回调的参数使用DECLARE_DYNAMIC_DELEGATE_TwoParam定义,第一参数是代理类型,后面是参数1类型,参数1,参数2类型,参数2。选择All Classes,选择父类BlueprintFunctionLibrary,命名为SendHttpRequest。数组作为代理的参数的写法。二、Blueprint。

2023-10-24 11:13:05 1339

原创 Post-Process1-水下

勾选Show Engine Content和Show Plugin Content,在左侧可以看到Water Content文件夹。一、新建第三人称游戏项目,我这里选择C++,你也可以选择Blueprint。先修改Material Domain类型为Post Process。新建一个Level,命名为DemoUnderWater。保存一下,命名为DownUnderWater。这时候的效果是铁掌水上漂,改一下水的碰撞类型。二、添加Post-Process。三、编写Material。注意位置调整0,0,0。

2023-10-23 13:36:13 97

原创 Shader Graph25-UV移动旋转缩放(自定义函数)

Offset为偏移值,Rotation为旋转速度,Scale为重复数,Pivot旋转中心的位置。一、UE在Material中右键,新建Material Function。三、Unity版本,新建Sub Graph命名为TransformUV。UVs变量后面增加一个默认UV的设置,如果没有uv传入则使用默认uv。编写内容,可以复制摇晃树叶的代码进入该sub graph。我们将UV操作放入函数内,该函数的内容来自我之前的文章。别忘了保存,最后的代码是这样的。修改Output名字和类型。

2023-10-18 09:00:40 462

原创 UE5发布Android屏幕适配实践(Blueprint)

之前发了一个文章UE5屏幕适配,后续做项目中又遇到问题,对DPI Scale又有了理解,所以又写了这篇文章。https://mp.csdn.net/mp_blog/creation/editor/133337134https://mp.csdn.net/mp_blog/creation/editor/133337134DPI Scale Rule使用Shortest Side,如果设置Resolution=375,Scale=1,那么我们适配的范围应该是大于这个值,如下图所示,那么我们要适配的屏幕的分

2023-10-16 17:06:01 823

原创 UE5屏幕适配

因为我们这个程序是手机竖屏使用的,所以DPI Scale Rule选择Shortest Side,然后在下图中折线上点击鼠标选择Add key ,添加一个分辨率对应的DPI比例关系。设备的大小改变后,设备中的坐标会发生变化,这时候我们就要使用Get Viewport Scale来计算缩放后的坐标,通常是原坐标乘以下面的计算结果。打开之前DPI Scale的设置界面,添加一个新的点,设置为Resolution370,Scale为0.5。如果我们选择370分辨率,Scale就得0.5,那么下面的结果就是2。

2023-09-27 08:33:34 1103

原创 ue5读取自定义文件夹中内容

二、读取文件内容,直接使用相对路径就可以了/Content,Resource Bundle存储文件夹名的变量。Load Text为自定义的读取json文件的方法,我之前的文章讲了怎么操作。需要使用Get Project Content Directory获得文件绝对路径。三、根据json文件的内容读取读取自定义文件夹中的图片。一、复制文件夹到Content内。

2023-09-25 08:58:18 741

原创 UE5读取json文件

这里Load Text就是自己定义的函数,ResourceBundle为一个字符串常量,通常是读取的文件夹名,Append就是链接字符串,我们要读取的文件是gameFlow.json这个文件,ToJson就是将字符串转变为json对象。主要是ToValue方法,添加自己要读取的key,如果是数组的情况就先转为json对象,然后再转为数组。如果是值的情况,就直接转为自己需要的数据类型就行了。二、定义读取外部json文件的函数,参考我之前的文章。三、读取文件并解析为json对象。四、读取json中的数据。

2023-09-20 08:25:10 1204

原创 Shader Graph24-摇晃树叶

三、换上我们的图片,在time节点后添加一个sine,让他的位置是周期性的就行了。一、开始Unreal,新建Materail命名为DemoUVRotation。二、在网上找个素材,去掉背景,保证树根是在边上的位置。

2023-08-24 09:11:38 219

原创 Shader Graph23-Tessellation镶嵌

Tessellation Factor控制生成三角形的数量,Tessellation Displacement控制生成三角形的偏移。在低模上通过Shader的方式增加三角形的数量,从而使得图形表现上更加逼真。下图左侧Displacement=1,右侧Displacement=0.01。下图左边是Factor=1,右边是Factor=16。这里我们使用的是高度图。

2023-08-16 16:27:11 116

原创 ue5读取外部文件

这样在Content Browser中会出现C++ Classes文件夹,下面有一个本项目命名的文件夹,鼠标右键可以看到New C++ Class选项。勾选使用C++桌面开发、使用C++的游戏开发,这两个中的右侧选择Windows10 SDK 10.0.18362.0。建立好后双击进入,这时候可能打开visual studio2019或2022哪个都可以,编写头文件代码。选择任意一个Blueprint,我选择的是人物的,然后鼠标右键就可以看到我们自定义的函数了。这时候编译,会遇到问题,各种编译错误。

2023-08-16 08:54:42 1410

原创 Kotlin提升生产力

【代码】Kotlin提升生产力。

2023-08-10 08:17:28 51

原创 Kotlin作用域函数

【代码】Kotlin作用域函数。

2023-08-08 08:34:31 40

原创 Kotlin集合

【代码】Kotlin集合。

2023-08-07 08:33:38 47

原创 UE5+Paperzd问题

2、在编辑TileMap的时候,一定要选择上图自己添加AddBox的tile。然后图层1上创建有障碍物的图层,要勾选Override Collision Thickness,这样图层2才会有一定的厚度,这样就可以碰撞了。TopDown的2D游戏,遇到两个问题,第一问题是游戏一开始就会从tilemap上掉下去。第二个问题是没法和图层2上的物体做碰撞。1、创建的TileSet后,左侧选中一个tile后,一定要点击上边的Add Box,否则创建出来的这个块没有碰撞。

2023-08-05 19:33:16 885

原创 kotlin函数

【代码】kotlin函数。

2023-08-03 09:03:24 51

原创 Kotlin类

【代码】Kotlin类。

2023-07-31 13:24:11 44

原创 Kotlin方言

【代码】Kotlin方言。

2023-07-31 13:21:55 36

原创 Kotlin基础语法

【代码】Kotlin基础语法。

2023-07-28 11:56:20 35

原创 Kotlin基础2

【代码】Kotlin基础2。

2023-07-28 08:01:32 53

原创 Kotlin基础1

【代码】Kotlin基础。

2023-07-27 16:09:06 40

原创 Shader Graph22-卡通风格(上)

二、0.5、0.5、0.5为模拟的光线方向,VertexNormalWS为法线的世界坐标,Dot点积之后得到指定光线方向分布,Multiply(,0.5)和Add(,0.5)是去掉负值。Texture我们需要用photoshop制作。一、打开Unreal,新建Material命名为DemoToonPaint。PS制作的gradient注意取消勾选sRGB选项。下面是256x256的图。三、Unity的版本。

2023-07-05 08:34:05 179

原创 Shader Graph21-UV投影cubemap

TransformVector设置从World Space到Tangent Space,也就是坐标原点移动到了这么面中心点位置,x是从原点指向右侧,y是从原点指向下侧,z是从原点垂直于平面指向外,连接DebugFloat3Values进行测试,转动视角可以观察值得变化。在Unreal中Texcoord直接输出显示的是如上图,原点是左上角,U是x的值所以显示红色,V是y的值所以显示绿色,红色+绿色=黄色,所以中间部分是黄色。分为两个部分,红线内部和红线外部,红线内部变形较大,红线外部变形较小。

2023-06-16 09:20:39 733

原创 Shader Graph20-三面拉伸修复

Mask部分,先使用VertexNormal取绝对值然后Power得到红绿蓝三色间隔黑色部分,然后使用divide去掉黑色部分,得到下图左侧的结果,然后Split得到B方向也就是z轴方向的结果。在场景上添加两个球体,左侧是使用Triplanar Projection,右侧是没有使用的。右侧的在水平方向是上有拉伸现象,顶部还有聚集缩小的现象。Shader中下边红框为Mask的部分对应红绿蓝三色图,绿框部分Texture对应带有拉伸Texture图,两部分的结果就是最左侧的图。而x、y的方向上纹理出现了拉伸。

2023-06-01 11:45:25 151

原创 Shader Graph19-位置函数

Mask(B)是只选择垂直方向,Multiply(,0.01)使黑白的颜色变淡,Add(,1)是使黑白的分界线向下移动,Power是增强现在效果,Lerp就是线性插值由Texture到黑白的一个渐变,Alpha设置为0.1。因为中心点为物体中心,所以将坐标值连接到Base Color上是上面的效果,然后在场景中添加一个球体,将材质应用在该球体上,按下w我们可以在场景中改变物体的坐标,法线颜色并没有随着位置的改变而改变。添加红框的部分,将上明下暗效果叠加到已有的材质上。

2023-05-27 12:37:15 680

原创 Shader Graph18-反射、折射函数

第二个参数是Surface Normal就是法线方向,第三个参数是入射介质为空气的折射值1,第四个参数是射出介质为玻璃折射值1.54,下面配个图看看。首先是看一下引擎内置的反射,Base Color设置为1是白色,Metallic设置为1金属强度为最大,Roughness为0粗糙度为最小,那么最后的结果球面上显示的就是周围环境。Lerp的作用是混合两个图的效果,但是我们想要的是边缘反射,中间折射的效果,所以增加Fresnel节点,Fresnel的作用是边缘接近于1,中间接近于0,正是我们需要的。

2023-05-21 15:12:17 829

原创 Shader Graph17-幂函数(power)

这个过程的结果也可以看成是y=Base^Exp的曲线,目前Base=0.5,Exp由1~5变化如下图,可以看到箭头的大小越来越小,所以结果是越来越黑。图片随便找一张放到Textures下面,拖拽到编辑视图内就可以了,然后调整Power的Exp的值,我下面设置的是0.5,1,2。0.5为常量,表示为灰色,连接到Power,Exp为1的时候,最后的结果就是0.5x0.5=0.25,所以颜色会变黑。逐渐改变Exp的值由1~5,观察颜色的变化。Exp的值由1~4的结果。四、Unity的版本。

2023-05-17 14:13:48 198

原创 Shader Graph16-正弦函数

使用Time生成一个自动增加的变量,然后通过Frac节点只取小数部分,也就是从0.1~0.9的重复,通过Subtract节点后,结果是从-0.9~-0.1范围,然后再通过Add节点与Texture Sample相加的结果就是好像原点在不断增大的效果,解释一下为什么最后的效果是不断增大。Subtract的结果为-0.9。时,纹理中心数值为1,1-0.9=0.1,纹理最边缘数值为0,0-0.9=-0.9。以此类推,下面的数值是这样算出来的。Clamp是截取数值在0~5之间,再乘以0.5是控制圈的个数。

2023-05-13 08:13:57 134

原创 Shader Graph15-DDX、DDY(像素导数)

先获得顶点坐标,DDX为水平方向在顶点的导数,DDY为垂直方向在顶点的导数,导数也就是切线方向。Cross是算出叉积也就是垂直于DDX和DDY的平面法线向量,再通过TransformVector转换连接到Normal接口上,形成了迪斯科灯球的样子。这里要注意将Transform的源改为World目标改为Tangent。一、Unreal版本。

2023-05-07 08:41:40 310

原创 Shader Graph14-上限、下限、四舍五入函数

Floor的意思是将0~1的值降低至0所以是黑色的,Ceil的意思是将0~1的值提高至1所以是白色的,Round的意思是大于0.5的值提高至1,小于0.5的值降低至,所以显示的是黑白相间的。接下来我们将数值由-1~1转换到0~1的范围内。这样黑白过渡的更自然,有些游戏引擎使用这种光照half lambert,在入射光方向上的面更亮,其他的方向的面更暗。下面我们自己模拟灯光的方向0.5、0.5、0.5,VertexNormalWS为表面法线方向,这样有光照的地方更亮数值为1,相反的地方就更暗数值为-1。

2023-05-05 08:41:20 151

原创 Shader Graph13-长度函数、距离函数下

来回移动是使用Sine+Time来实现的,加一个Time节点让数值在-1到1的不断变化。现在的情况是整体在y轴上来回移动,但我们的目标是最下面不动。所以我们的思路是按照从下到上的,由小到大控制移动的距离。所以这里我们加上Mask节点,属性勾选B,只保留z轴的方向,然后与Sine的结果相乘。结论就是原点是立方体中心的位置,整个立方体的边长为256,所以我们观察y轴正向的数值为128,-y的方向数值为-128。同理z轴也是这样的。我们会发现中间红线的部分是不动的,上面和下面相对运动。最下面不动,上面左右摆动。

2023-04-27 10:42:05 91

原创 Shader Graph13-长度函数、距离函数上

一、Camera节点的Position表示相机坐标,Position代表物体顶点坐标记得改为Absolute World,这样Distance计算的就是相机与物体的距离,除以5的意思是在5m的范围内,物体的颜色会从黑色变成白色。下面我们用subtract和Length节点替换Distance节点,像下面这样,效果和上面是一样的。Camera与Position做减法之后得到是向量,然后再通过Length计算该向量的大小。这里Divide的参数500的原因是unreal默认的单位是cm,而Unity的单位m。

2023-04-26 11:11:36 236

原创 Shader Graph12-SmoothStep(平滑)

设置Swizzie的Mask为x,这样就只输出x的值。Smoothstep的Edge1和Edge2的值设置为0,1。中间由黑变为白的过渡就是Smoothstep实现的效果。首先使用Time的Sine Time循环生成-1到1之间的值,然后使用Multiply和Add节点将值,转换为0.5~1之间的值,然后连接两个Subtract节点,具体分解一下。埃尔米特插值,该函数曲线如下,该函数返回值在0与1之间,在0和1的附近逐渐变的平缓。三、Unreal中,新建DemoSmooth的Material,双击打开。

2023-04-25 11:53:01 318

原创 Shader Graph11-Detail Normal Map(法线贴图叠加)

在Detail Normal前面我们,我们对TexCoord进行了4倍的放大,因为我们的纹理是4096的大小,而我们的Detail布料纹理是1024的。打开OldWest->VOL3->Meshes,找到SM_Blankets_01c这个布的模型,后面我会用到,找到布料的纹理图片并导出tga文件,右键->Assert Actions->Export,我们得到了布的纹理贴图。然后在网上找布料的纹理,我这里找的是最简单的平织法的布料纹理,然后转法线。制作法线贴图,这里可以使用简易的PS制作法线的方法。

2023-04-19 11:51:34 1028

原创 Shader Graph10-Min, Max, Clamp, Saturate节点

最下面是黄色的原因是通过Mask减弱了,Lerp显示了A占比大的混合结果。Min的含义是,红框的0.5为参数B的值,1.0为白色圆形的值,下面的0.5为背景颜色值。下面有两个颜色节点,使用Lerp节点做一个混合,使用VertexNormalWS和Mask这两个节点操作,加强了z方向上的值,我们回忆一下Lerp的Alpha的值是当Alpha为0时,结果为A,当Alpha为1时,结果为B。当参数值为0.8时,0.8与1.0比较结果为1.0,0.8与0.5比较结果为0.8,所以背景会明显的发亮一些。

2023-04-15 11:50:36 1202

原创 Shader Graph9-世界空间、物体空间、相机空间、切线空间

茶壶这个物体空间的原点是在茶壶底部,红色箭头表示x轴,绿色箭头表示y轴,蓝色箭头表示z轴。当我们移动旋转茶壶时,该茶壶空间相对于世界空间的位置和方向都会发生变化,但是相对壶盖来说,它并没有位置和角度的变换,因为它是相对于茶壶底部的原来来说的,有点像我们在地球上,地球是在公转和自转,但我们并没有感觉到一样。在下用的Blender软件,新建了一个平面,中间的黄色小圆点表示的世界空间的原点,在世界空间的物体的位置,都是相对于这个原点来说的,红色箭头表示x轴,绿色箭头表示y轴,蓝色箭头表示z轴。

2023-04-11 16:20:24 1056

原创 Shader Graph8-输入向量

当我们旋转相机的时候,立方体面上的颜色就会发生变化,这个颜色表示就是相机的法线方向。这里要注意的是,官方对于相机法线的方向的说法是,由像素到相机的方向。因为(0,0,1)是垂直向上的,立方体的所有面的法线与它点积之后,只有顶面的结果为1,所有只有顶面是白色的,其他面都是黑色的,也就是0。我们选择Top视图,立方体面的颜色为蓝色,选择Bottom视图,立方体面的颜色为黑色。正的x、y、z法线向量对应的颜色是红、绿、蓝,负的x、y、z的法线向量对应的颜色是黑色。每个面都有法线,法线向量是这样的。

2023-04-09 14:27:08 473

原创 Shader Graph7-纹理坐标(上)

纹理是一张图片,就是下面左侧的图,把这个图片放到球体上,那么就得到我们平时看到的地球仪,这个过程就是UV映射,也就是将图片的二维坐标定位到三维空间上,也就是x,y变为x,y,z的形式。我们发现当变量变小时,纹理是放大,当变量变大时,纹理是缩小。二、打开Unity新建一个Materila,打开Shader Graph,将下面的图片复制到Textures下面,作为测试UV的图片。我们发现R的值控制就是纹理坐标U的值,G的值控制就是纹理坐标V的值。U值变大纹理图片会向左移动,V值变大纹理图片会上移动。

2023-04-07 17:01:29 320

UE和Android互相调用

ue工程文件,包括自定义widget,blueprint,2个默认场景

2023-12-24

Shader Graph21-UV全景投影

room dds

2023-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除