人气 755

[其他] 有哪些不为人知的UE4(虚幻引擎)技巧? [复制链接]

武汉视灵插画56 2022-3-26 11:32:34

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
包括引擎的使用,蓝图的技巧,c++的编写,有哪些是自己觉得不错,但可能挺多人不知道的
回复

使用道具 举报

屋顶上的猫先生 2022-3-26 11:52:34
原文发布在我的专栏里,内容比较符合这个题目,搬运过来。
想看后续更新,可以关注原文。


戴巍:[UE4]偏门实用技巧合集451 赞同 · 56 评论文章


目录:

  • 视窗操作篇
  • 反转鼠标中键
  • 自适应视窗缩放速度
  • 解除对选中物体旋转
  • 对屏幕外物体进行位移旋转缩放
  • 物体吸附到模型顶点
  • 屏幕编队(记录当前相机位置和旋转)
  • 落到正下方物体
  • 显示与隐藏
  • 资源操作篇
  • 场景中选择相关物体
  • 查找场景物件相关文件
  • ContentBrowser骚操作
  • 快速调用资产
  • 组操作
  • 资源管理篇
  • Add to Favorites
  • Collections
  • Favorite Levels
  • Visualize相关快捷键设置
  • Debug篇
  • 控制台使用技巧
  • 常用控制台命令


<hr>



视窗操作篇



反转鼠标中键
e4k53KI5455Krg2h.jpg



由于UE4默认中键操作和maya等主流软件不同,可以通过Editor Preferences > Viewports > Invert Middle Mouse Pan 设置,反转鼠标中键操作,以实现和maya等软件一致的视口操作。






自适应视窗缩放速度

默认视窗缩放速度是线性的,这会导致距离物体尽的时候,很难精确缩放;而距离物体很远的时候,相机又有拉不出来的感觉。
H6WRwTbubj9vRuV9.jpg





WsabVmJUh2lG8vlV.jpg



可以勾选 Editor Preferences > Viewports >Use distance-scaled camera speed 选项,来达到丝滑的视图相机缩放效果
GeQEelkhN8sAEBAe.jpg









解除对选中物体旋转

现在版本的UE4,默认旋转视图是以选中物体为中心的。当选中很远的物体调节参数以后,不小心旋转视窗,很容易让画面飘到未知的地方:
FxNDEMemEEm0SmwD.jpg

v37WiFwlrOw3ZWdW.jpg

可以取消勾选 Editor Preferences > Viewports > Orbit camera around selection 选项,来禁用这个功能,实现视窗旋转永远以画面中心为中心。
eAgRscaZ0l0RrgEV.jpg







对屏幕外物体进行位移旋转缩放

有时候,我们场景里的东西可能在视图之外,离得很远。比如说远处的平行光。我们想调节灯光的位置或者旋转,但又需要观察当前画面里的效果。
就可以按住键盘上的Ctrl键不放,同时用鼠标 左键 或者 右键 或者 左键+右键,来进行远距离的位移旋转缩放。
CEEmOkEUegqn3Q8Q.jpg







物体吸附到模型顶点

选中物体,在移动模式下,按住键盘上的V键不放,加鼠标拖动物体移动轴心,可以吸附到附近物体的顶点上。
nwYwg1cpHhq1V9b9.jpg







屏幕编队(记录当前相机位置和旋转)
用快捷键 Ctrl + 数字(0-9),可以对当前相机状态编队。 再用数字(0- 9)返回之前相机编队的状态。(星际玩家基本操作)
rmZfx9Xvdsi0R0zv.jpg





落到正下方物体

地编非常常用的功能,属于人尽皆知(也许)的基础知识。
wey98xZ88g3uNIZ8.jpg



大部分时候End 就非常好用了
Dx4nzf7iQ5Zb9nQ5.jpg



Alt + End 会按照轴心点吸附
ai7u2NY4172I7t42.jpg



而吸附实际上算的是模型的bounds ; Show> Advanced >Bounds 可以显示模型的Bounds
pF55ZSIq7QtVuQUv.jpg



这个时候就可以看出 End 和 Shift + End 的区别了 。大部分时候用End 就足够了,有时候不满足自己心理预期的时候,可以点开bounds 看一下
Iu9GGhyU58ybzF4U.jpg





显示与隐藏

相关的常用操作有这么四个

  • hide selected  隐藏选中Actor
  • show selected  显示选中Actor
  • show all actors    显示所有场景中的Actor
  • show only selected    只显示当前选中的Actor


相关快捷键都可以在Editor Preferences> General> Keyboard Shortcuts> LevelEditor下找到
也可以在Editor Preference 面板的搜索栏,搜索我列出的操作名称,来快速查找并 绑定快捷键


因为我的maya使用习惯,所以我的快捷键设置如下:

  • hide selected  (Ctrl+H)
  • show selected (Shift+H)
  • show all actors (H)
  • show only selected (Shift + I)
个人可以根据自己的使用习惯设置相应快捷键,或者沿用引擎默认快捷键


<hr>





资源操作篇



场景中选择相关物体
Ctrl + Alt + 鼠标左键拖动,可以拉出矩形框,框选物体。


o9hYH8WRuOhH8Ro9.jpg



对于选中物体使用快捷键 Shift + E 可以选中场景中其他相同的物体。(Ctrl +E 可以直接打开该资产面板,进行编辑,在Reference Viewer中也生效,实用)  


对于选中物体,右键 > select > select all with same material ,可以选中所有赋予了相同材质的物体。如果该功能使用多的话,可以自行设置快捷键。
NlGdNatskBKdN3LS.jpg





查找场景物件相关文件

选中场景中的物体,使用快捷键Ctrl+B, 可以在Content Browser中显示该物体资产存放位置。  
对于Content Browser中选中的物体,使用快捷键 Alt + Shift + R 可以打开Reference Viewer,查看该资产的引用关系。  
选中Reference Viewer中的资产,可以再次使用Ctrl+B 查看选中资产的存放位置;也可以使用Ctrl + E 打开该资产的编辑面板;也可以双击某个节点,查看该节点的引用关系。




ContentBrowser 骚操作

在Content Browser的搜索栏,输入 空格, 可以查看该文件夹下的所有文件。
RcibUiQDe51dKmu1.jpg





在当前ContentBrowser 面板锁定的情况下,使用快捷键Ctrl + B ,可以快速调出新的ContentBrowser面板。
当需要多个ContentBrowser 面板去同时操作多个资产的时候,不用在UI里慢慢点开新的ContentBrowser面板了。
Z0Hm53uaMR45mHMu.jpg





快速调用资产

Ctrl + P  Open Asset (千万不要操作成 Alt + P ,会直接运行游戏。。。 如果右手在操作鼠标,左手用快捷键的话,建议用键盘右侧的Ctrl 键,和P离得很近 )
wd8YyZn11Y88yG1R.jpg



输入快捷键后,会调入这样一个小面板,可以在 搜索栏中按名称查找到自己想要的资产,可以配合左侧的filters 过滤想要的资产类型。相当于一个快速简洁、没有文件夹结构的content browser, 要求对想要调用的资产名称很熟悉


在需要调用使用率很高的模型,或者需要赋予一些使用率极高的基础材质或者测试材质时,很方便。(记得找到的资产要拖进场景里,不是双击)
zp0zxp98Jx0JWSjt.jpg



J3CttmyMqkmySXTt.jpg







组操作

在场景中选中多个Actor ,使用Ctrl +G 进行打组,是经常会使用的基本操作。
iOLoJyuYCu3j4OCo.jpg

对于已经打组的Actors,可以使用快捷键 Shift +G 来解组
yFRkROJ3kaodSPJj.jpg



但是很多时候,我们已经打好组的一组Actor,我想要再次改变其中某些Actor的位置,我们正常情况下,是无法选中组里面的某个Actor 进行操作的。
但我又不想 先解组,再重新打组这么繁复的操作。


这个时候,就可以使用快捷键 Ctrl + Shift + G 切换为 组选择模式,来选中组里面的某个(或某些Actor)进行局部调整;操作完之后,再按快捷键Ctrl + Shift + G 重新切换为组选择模式。
qHusZafyh1u058Ic.jpg

oHmHPdR2H922RTgC.jpg





<hr>





资源管理篇

项目文件爆炸增长之后,可以用一些方式快速定位自己常用的资源位置。


Add to Favorites

可以将选中文件夹添加到Favorites,后面就可以快速打开这些常用文件夹。同时, Set Color可以对文件夹指定颜色,方便用右脑记忆文件夹。
hZtVOudWB2OTdvBt.jpg





Collections

对于Content Browser面板中的资产,右键 > Manage Collections 可以将该资产置于某个Collection中,方便以后快速调用。
j49C2HQoyWOY574L.jpg



调用Collection中文件的方法是点击图中按钮
z95g09iYw9i7W560.jpg





Collection 不会移动资产的位置,仅仅将一批资产位置的引用收集在一起。用户可以根据自己的需求,将一些常用、或者相关性较高的细碎文件,放在一个collection中方便后续快速调用。





Favorite Levels

可以设置自己的常用关卡,并用快捷键急速打开。
在打开自己想要添加到Favorite Levels中的关卡时,点击File > Favorite Levels > Add XXXX  to Favorite,可以将当前打开的关卡,添加为最喜欢的关卡。
X0B02f1f1qY9KSNR.jpg



以后在日常工作中,可以使用快捷键 Alt + 1 ,快速打开排序第一的Favorite Level
b5CF252fRI5c9ZPj.jpg







Visualize相关快捷键设置



在场景中lookdev的时候,会非常经常地查看场景不同通道的状况。官方已经设置了很多默认快捷键。



比如Alt + 3 的Unlit模式
H2z2BnDQR5329djR.jpg

Alt + 6 的Lighting Only模式 等等。
BmffNnankl5lUtom.jpg



但是在复杂的项目开发中,这些默认设置往往是不够用的。用户一般需要为自己常用的一些查看模式设置快捷键。设置的方式是,在Editor Preferences 面板中,搜索对应的名字,并且设置快捷键。
sp1xprOtmm3Z9OzK.jpg







分享一下,我设置的一些快捷键:
因为我的项目面数极高,Wireframe模式是满满的线,没有查看价值。所以我使用Show>Advanced>MeshEdge 来取代线框模式 (此条修改来自评论区日天哥@日天 建议,非常好用
m1iLcKipK91pGvk7.jpg

U5QnqQe2lvUsjjzJ.jpg

nb9B7bz9kcIB17mX.jpg



2020.09.10 take a break


<hr>

Debug篇



常用快捷键
Ctrl + Shift + H
show fps
显示当前运行帧率(非常快速查看帧率的方法,相当于命令行输入stat fps)
fuUSAgU4SsPB0mdN.jpg

也可以勾选Editor Preferences> Performance> Show Frame Rate and Memory 选项
ag1Ezrrdie0S8oe0.jpg

让引擎右上角一直显示帧率 和 内存使用情况:
tDl2OorCOdC3xJ13.jpg



同时还需要查看Draw Call 消耗或者 CPU消耗等 的时候,可以点击键盘左上角的小飘号——"~",输入命令行,输入指令 stat unit
QofdSDoYd7Fc82NF.jpg

scCq917I0B7iRkJI.jpg



Shift + L
show stats
切换是否显示右侧这些数据信息




Ctrl + Shift + ,  (逗号) profile GPU 显示当前状态GPU消耗
y526UUm8R42WpUMh.jpg





进入Debug Mode

在Play 状态下,按键盘上的 ; (分号键),可以进入。
有点类似于 Play状态下按F8的弹出,但是Debug 模式 是第一人称视角的, 快速检查一下周围环境,比F8的弹出使用方便。

hWRW7C77Ry4r9Ngr.jpg

并且Debug mode 可以检测到非常多有用的数据,以及相关的一些操作使用方法。
S3xf7H2jZ7RDcd7O.jpg

具体的一些好用的功能介绍,可以看一下这个直播中 @Asher

的讲解(102 分钟):



控制台使用技巧

~ 号键打开控制台
在什么都不输入的情况下,使用键盘上的 箭头↑ 键,可以看到并且选择之前已经输入过的控制台指令,反复开关某些指令的时候,非常实用
mii3f6PAA0m997k0.jpg



输入控制台指令,并不需要打全名,比如我记得锐化是sharpen,但中间那些乱七八糟的我记不住,可以输入 空格sharpen 进行模糊搜索
k185QqGUQG5qdidZ.jpg





常用控制台命令

stat fps
显示帧率


stat unit
显示包括Draw Call ,游戏逻辑等各种项的消耗


stat rhi
显示各种GPU上的消耗细则
PAmgj9SPQ0aZMWvR.jpg



r.Tonemapper.Sharpen
锐化,后面跟数字表示锐化强度。比如:r.Tonemapper.Sharpen 3




r.Streaming.PoolSize
相信大家多少都看到过这串文字
WmiueHTTti9BA8WX.jpg

当你的场景稍微复杂一些的时候,默认纹理流送池就会被挤爆,导致部分贴图加载成很小的lod,画面会糊。
默认有1G显存分配给了纹理流送池,不够用的时候可以手动调大。
比如,r.Streaming.PoolSize 4096,就可以分配4G显存给纹理流送池。 这个参数吧,量力而行就可以了。
当然,懒人最爱用的是 r.Streaming.PoolSize 0,可以设置纹理流送池 无上限






slomo
游戏运行下的运行速度;很多时候要仔细观察某些视觉效果的时候,可以把整个运行速度调慢。
可以使用 slomo 0.1 ,即可将运行速度变成正常的十分之一。 默认参数为1


r.TonemapperFilm
开关后处理效果


ShowFlag.PostProcessing
开关后期盒子的效果


HighResShot
使用自己指定的尺寸截图, 比如 HighResShot 1920x1080 (注意,数字之间是字母,x 捱科思,不是 乘号


r.AOSpecularOcclusionMode
可以让 skylight 产生的 DFAO 产生更准确的高光, 0为开启,1为关闭。大多数项目中,粗暴地设置r.AOSpecularOcclusionMode 0 ,都可以直接获得的skylight 照明提升

Gfi81XZGo6w73JL9.jpg



2020.11.05  updated a lot ,由于群众的需求,不可避免地介绍了一部分基础但非常有用的知识。
很久以后应该还要更新一篇 节点面板操作篇
回复 支持 反对

使用道具 举报

萍。 2022-3-26 12:12:34
感谢 @大钊

采纳我的提问,感谢 @CGBull

(从他那里白嫖的知识)
众所周知,UE4中同一个点只能受到三个固态光(加一个天光)的影响,多了就会出现打叉
GKd9z8oB17721BK7.jpg

那么当我们的场景中有复杂的光源摆布的时候,很容易难以区分是哪些光源在互相影响。
BleaV1A1C2teaTcT.jpg

这个时候,只需要打开可视化中的光照影响
EURUxGcKcLsFx2c5.jpg

选中光源,就能看到互相影响的情况啦!
o8Vk0Xvc3ioXgnNP.jpg

实在是太强了!
回复 支持 反对

使用道具 举报

9uuuk 2022-3-26 12:32:34

  • 写过C++代码的都知道,如果你在VS中写下UPROPERTY或者UFUNCTION那一行之后再回车,就会多一个缩进:
SQD0M3Q2zR23kR31.jpg

为了对齐,不得不手工再删除这个缩进,挺烦人的。
有人专门做了一个插件,来解决这个问题:

装上之后,问题解决,完美~


2. 即使C++代码一点点改动,编译起来可能也需要几分钟,日志窗口半天不动,有时候你都会觉得VS是不是卡住了。。。如果你试过了网上说的其他方法,都不太好用,建议试一下固态硬盘。
这是在我电脑的固态硬盘上编译的时间:
xM8vcZGkUZk9s8v7.jpg

大概十几秒,是一个可接受的范围。
仍然有改进的空间,因为,第一,我的ue4源码安装在了机械硬盘,改到固态应该能加快几秒钟;第二,我的固态硬盘是三年前买的,现在的应该更快。
3. 蓝图中不小心连错了针脚(Pin)怎么办?
按住ctrl,线的针脚可以用鼠标拖动,见视频:
OCZqX5q9pR4q54V9.jpg

材质中也是一样的:
p0zzGOyne7aUiSOv.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-4-19 12:38 , Processed in 0.150576 second(s), 25 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.