项目迁移
项目名为为:PikaqiuSpeed
原引擎路径:D:\UE4ENGINE\UnrealEngine-4.22
迁移后引擎的路径:D:\UE4ENGINE_CUSTOM\UnrealEngine-4.22
原环境:VS2017
迁移后的环境:VS2019
将PikaqiuSpeed.vcxproj文件里的D:\UE4ENGINE\UnrealEngine-4.22全部替换成D:\UE4ENGINE_CUSTOM\UnrealEngine-4.22
替换后,启动vs,项目->属性->NMake里可以查看替换后的路径
metahost.h没找到的问题:
typeinfo.h没有找到的问题:
安装完成后,将安装路径添加到项目------属性------VC++目录------包含目录中
无法找到 mscoree.lib的问题:安装4.6.1SDK后,清理------重新生成UE4引擎
库文件位置:上面三个为4.8(x32,x64,arm),下面为4.6.1,不安装4.6.1的SDK,将4.8的路径加入上面的VC++目录可能也可以(未测试);
建议地形大小
合并贴图层
排除方式混合图层后,合并图层并直接保存;
碰撞
1)Collision Enabled类型说明
(1)No Collision(无碰撞) - 不同该对象发生碰撞,无论是踪迹碰撞还是物理碰撞。
(2)Query Only,仅用于查询,不会考虑物理仿真;可以进行各种trace,sweep,Overlap事件的触发,但是不会进行物理模拟,简单的讲就是运动时不会产生任何碰撞。人物的移动物理属于查询;
(3)Physics Only,仅用于物理仿真,不考虑查询;表示只能进行物理碰撞与运动模拟,但是不会触发任何事件。
(4)Collision Enabled(启用碰撞) - 该刚体用于物理模拟和碰撞查询。
2)任意两个物体有碰撞的条件
(1)一定是互相设置了Collision Preset。
(2)至少有一个实体开启了simulate physics。
(3)该static Mesh必须要有碰撞盒(或者这个Actor有碰撞组件,比如sphere collision);
(4)对于多组件实体Actor,只要那个组件的父组件开启了simulate physics,就相当于其子组件也开启了simulate physics。
(5)mesh里加载了对应的物理资源
3)碰撞通道
(1)ObjectType决定了物体本身是什么碰撞类型;碰撞响应则表示本身与其它类型的物体进行碰撞时的响应;
Generate Overlap Event一定要勾选,否则选Overlap时,不会触发绑定的碰撞事件;
(2)常见类型物体示例:
WorldStatic:静态几何物件,如山石,树干等;
WorldDynamic:动态几何物件,如房门,地面可拾取物等;
Pawn:人物或类人的东西,如玩家,野怪;
PhysicsBody:物理体;
Vehicle:载具,如摩托车,飞机等;
Destructible:可破坏物件,如栅栏,窗户等;
(3)注意事项:ObjectType配置的自由度很高,你也可以把石头配置成载具的ObjectType;
4)Trace Response与Object Response,主要是通道过滤比较方便,直观理解射线检测类的配置成Trace Response,对象移动类的配置成Object Response;
5)碰撞事件需要手动消除飞行中的特效
单个模型会多次触发碰撞事件的问题
单个模型中,每个带有碰撞属性的组件,都会单独触发一次事件,如上图,如果不将红线中的三个组件的碰撞设置为无碰撞,则会在同一时间触发三次同样的碰撞事件;
材质编辑器的背景
Tick函数里的参数DeltaTime的值
DeltaTime的值为Tick函数执行的间隔
下图为1秒内Tick的值,总共执行了19次,每次执行的时间间隔为0.05秒多;
UE4中形参为UObject* WorldContextObject的即为GetWrold()返回的UWrold;
动画蓝图
前置资源:
创建动画蓝图(待机状态):
在蓝图动画里创建一个状态机,并载入待机的动画序列
载入动画序列
将动画蓝图载入到主塔的蓝图里
创建蒙太奇动画(攻击状态):
动画蓝图中载入蒙太奇动画:
添加死亡状态:
载入死亡动画序列
设置死亡动画的条件变量:
死亡变量的值需要从蓝图中获取
死亡变量获取
和攻击一样,创建出生的蒙太奇动画
灯光烘焙问题
解决方法:
第一步:打开ue4c++项目或打开UE4.sln先将vs中Dubug Editor模式改为Development Editor
第二步:在vs中找到UnrealLightmass.cpp重新编译
第三部:将vs中Development Editor改回Dubug Editor,启动重新Build Lighting Only即可
系统设置菜单动画示例
无动画UI位置
动画起启点位置
结束点位置同无地画时的状态
动画重定向
动画蓝图也可以进行重定向操作;
1)重定向的源骨骼需要一个模板
选择好模板后,还可以点自动映射或自己手动调整对应的骨骼,自动映射只对骨骼名称和系统默认的一样时才会生效;
除了模型里自带的模板,也可以自己在骨骼上创建一个新模板
2)选择一个源骨骼对应的网格体;
3)目标骨骼也和源骨骼一样,选择模板和网格体;
目标骨骼的参考姿势要和源骨骼的参考姿势一样,不一样的话需要能过修改姿势修改;
4)修改目标骨骼的重定向方式;
被重定向的目标骨骼,root和ik设置成动画,盆骨设置成动画缩放,其它的都要设置成骨骼;
5)源骨骼和目标骨骼都需要设置预览网格体;
6)动画重定向
行为树说明
selector会依次执行其子节点的内容,子节点中执行成功一个则返回true(剩下的不执行),如果其所有子节点均执行失败才会返回false;
sequence也会依次执行其子点的内容,子节点如果执行成功则会继续执行下一个,如果有节点执行失败,则返回false;
simpleParallel则是其子节点一起执行;
行为树Server的运行间隔
UE4编辑窗口中,蒙太奇动画不显示
如果创建蒙太奇动画的动画序列是叠加动画,则无法在在编辑窗口中显示
测量长度,测量距离
在顶视图,或者侧视图,用鼠标中间拉出红线。。。。一个单位是1cm;
AIDebug模式
进游戏后按Enter键左边的’键,可以调出AIDebug模式.再按小键盘的数字键4,可以看到AI的感知.如果用的87键键盘可以使用WIN+R 输入osk运行虚拟键盘.
人物移动方式
朝旋转的方向移动
红框上面的选项是设置速率的
动画序列的导入和导出
UE4导出
3dmax导出
UE4导入(60表示以60帧的格式导入)
位移动画
带有位移的动画序列,需要在创建蒙太奇动画前开启RootMotion,否则在带有位移的动画播放完成后,角色会被拉回到原来的位置;
UE4中的关联数组
UE4中动画截取
UE4动画融合
duration可以调节从一个动画过渡到另一个动画时的时间;
摄像机的偏移设置
设置跳跃时的重力可以改变角色跳跃后下降的速度
起跳高度
接口类创建
清空数组
arr.empty();
动画蓝图里的RootMotion
禁止角色移动时,可以通过将角色最大移动速度设置为0,移动角度设置为0来实现;
定时器传参
参数为PikaDelegate里的false;
动画蒙太奇里修改动画的播放速度和播放时间
蒙太奇动画的BlendOut里的BlendTime设置
该时间为0.25时,表示播放本蒙太奇动画时,当动画时间还有25%时,就开始和下一动画进行混和;
透明材质
按住1键再点击鼠标左键
动画蓝图里的动画通知AnimNotify
动画蓝图警告的解决方法
max导出模型到UE4时的轴向设置
在UE4里自动生成静态mesh的光照UV
贴图分类
固有色贴图(下图2)、高光贴图(下图3)、法线贴图(下图1)
贴图材质
批量操作
角色蓝图中暂停mesh的动画
UI里选择填充后,后面的数值可以控制填充的比例
maya操作
1)F2-F6切换菜单
2)空格键后,中间的maya按钮切换视图
3)选择模型后,数字键1-6切换模型的显示模式
1键:棱角显示(与圆滑对应)--2键:有线框的圆滑显示(只是暂时的效果,渲染后恢复正常)--3键:没有线框的圆滑显示 --4键:线框显示--5键:实体显示--6键:材质、贴图显示--7键:灯光显示(没有灯光显示为黑色)
此外,选择横着菜单栏中的着色 —> 着色对象上的线框,实体线框同时展示。 选择着色—> X射线,产生半透效果。
4)maya导入的fbx模型(如UE4小白人)需要先解除锁定,才能进行旋转、缩放等操作;
5)显示骨骼,按4键进入网格显示就可以查看被模型挡住的骨骼
6)显示大纲视图
7)红色框里为同一套骨架下的多个LOD
8)重置模型中心点
场景越来越亮,且不是后期框中自动曝光的问题时,需要在项目设置中的渲染菜单中取消自动曝光选项
蓝图中的主UI加载
蓝图方式下,主UI加关卡蓝图中加载
海水材质蓝图
1)开启生成网格体距离场;
2)将海水蓝图拖入场景;
3)海浪效果,将海浪控制蓝图拖入场景;
4)调节BP_WaveSpawner_Automatic的位置;
UE5.4水质为白色
打开材质里的参数
UE5性能消耗查看
流送纹理池查看和设置
查看
stat streaming
Streaming Pool为当前设置的流送池大小,该值不能大于显存大小;
Requred Pool为当前需要的游戏送池大小;
流送池设置
r.streaming.Poolsize 2000
取消植物的动态阴影bCastDynamicShadow,否则在白天的光照下,植物的叶子会出现闪烁的现象;