Quick #UE4 Tip (第3周 2020.4.10)

选自过去1~2周 自己所看到外文内容:https://twitter.com/search?q=%23UE4&src=recent_search_click&f=live     和各种其他博客来源吧  

 

 

UE4 开发常用外部工具介绍

硬碟空间管理与分析  https://yekdniwue.blogspot.com/2021/03/UE4ExternalTool.html

 

WinDirStat 档案内容分析★★★★☆

在使用UE4的过程中,硬碟永远不够用,尤其是常常出不同平台的版本,或是出各种版本测试,都需要用掉大量的硬碟空间。

这时候我都会定期使用WinDirStat对专案目录作分析,找出特别大的资料夹,如果不是必需的就会砍掉。

 

另外一个使用时机则是分析打包后资料的时候,有的时候最后打包的档案过大。

我会利用这个软体看一下Cooked目录,分析一下是不是有哪些Asset档不符合应该有的大小,然后再回去做调整。

Quick #UE4 Tip (第3周 2020.4.10)_第1张图片

 

mklink 目录连结★★★★★

windows内建的外部工具,但是因为太好用了所以不能不特别介绍

大部份开发UE4使用SSD应该已经是标配,不过并不是所有的专案都能整个专案放SSD。

但是如果全部放硬碟,想必开启或使用的速度上是受到严重限制的。

这时候就可以透过mklink,将常常需要读取写入的目录对应到SSD的硬碟。

 

如此一来就可以最有效率的使用SSD。

举例来说,[Project]/Content 跟[Project]/Saved 通常占用不少空间,但是又不一定需要SSD。

我可能就会把这两个目录对应到普通硬碟,其他都放在SSD。

更大的专案就会在Content资料夹再做细分。

 

使用范例:

开始->执行->Command

或是

C:\ WINDOWS \ system32 \ cmd.exe

在指令视窗里面输入

mklink / j C:\ ThirdPerson \ Content D:\ ThirdPerson \ Content

就会把C:\ThirdPerson的Content 连结到D:\ThirdPerson\Content

(档案实际放在D:\ThirdPerson\Content)

 

资源监视器Resource Manager ★★★★★

windows内建的外部工具,一样很常用。

一般大多都是用工作管理员Task Manager。不过工作管理员提供的资讯其实很不够。

所以我都直接把资源监视器放在最快可以开启到的地方了。

 

我最常看的就是Disk的项目,然后看那些档案被读取或写入,以及被那些程式使用。

通常这样也可以协助自己掌握UE4的某些阶段到底在做什么,例如打包,编辑器启动,等等。

 

 

目前想到的大概就这些,各位有更推荐的也可以跟我说,我用了好用也会在日后补上的。

 

 

 

Editor内Blueprint中断点没有触发

https://yekdniwue.blogspot.com/2020/11/BPBreakpoint.html

 

最近在做功能的时候遇到了有趣的问题。

其实以前就偶尔有遇到但是没有认真找原因,因为发生的机会其实很低。

这次很幸运的找到问题的原因,所以分享一下

问题发生的现象

在解决问题之前,先描述问题的定义

在BP下中断点

无论如何都不会停下来

但是在中断点前或后面的节点下PrintString确定会印,功能也都正常

就只是断点不会停

如果这个BP是从C++呼叫的话

C++的断点是会停的。

问题的原因

追查发现ScriptCore.cpp

在执行BP的breakpoint 之前

会检查现在是不是在GameThread

如果有在Game Thread才会触发中断点

刚好我这次的功能是从muti-threading的animation事件过来的

CallStack直接看到有Update_AnyThread的字眼

所以下次如果再遇到类似的现象

可能要想一下是不是因为multi threading造成的~

相关程式码

ScriptCore.cpp

FBlueprintCoreDelegates::ThrowScriptException裡面的

if (IsInGameThread())

{

   OnScriptException.Broadcast(ActiveObject, StackFrame, Info);

}

 

Quick #UE4 Tip number 136.

Easily add shore wetness to landscape with Water plugin.

https://cutt.ly/ue4-tip-136

快速#UE4提示编号136。

 

使用“水”插件轻松为景观增加海岸的湿度。

https://cutt.ly/ue4-tip-136

You can quickly add shore wetness using the below graph to your landscape with water plugin.

Quick #UE4 Tip (第3周 2020.4.10)_第2张图片

 

 

Quick #UE4 Tip number 135.

How to set Water to NOT affect landscape.

https://cutt.ly/ue4-tip-135

快速#UE4提示编号135。

 

如何设置水不影响景观。

https://cutt.ly/ue4-tip-135

        我已经看到很多人对新的Water Plugin(可从4.26版本获得)有影响,该插件会影响景观的形状,因此今天的技巧是关于如何设置Water而不影响景观。我会假设您已经在您的水平面中拥有景观和水,因为我只是跳到了这一点。这是一个丑陋的例子:

Quick #UE4 Tip (第3周 2020.4.10)_第3张图片

通常,当您将水拖放到景观中时,它将像这样重塑。

Quick #UE4 Tip (第3周 2020.4.10)_第4张图片

我知道,所有美丽的雕刻都消失了!好吧...不是真的。如果选择WaterBodyOcean在世界大纲和设置都Falloff ModeWidthFalloff Width0...

多田!! 您可以保持景观雕塑和浇水。

 

 

Quick #UE4 Tip number 134.

Create your own level templates.

https://cutt.ly/ue4-tip-134

快速#UE4提示编号134。

 

创建自己的关卡模板。

https://cutt.ly/ue4-tip-134

New Level从文件菜单中选择时,每个人都知道虚幻引擎中的关卡模板。这是可定制的,这意味着您可以添加自己的模板,如下所示:

Quick #UE4 Tip (第3周 2020.4.10)_第5张图片

让我们看看这是怎么可能的。

注意:在内容浏览器中启用“显示引擎内容”。

Quick #UE4 Tip (第3周 2020.4.10)_第6张图片

首先像往常一样创建您的关卡,并将其保存(以您想要的任何名称)Engine/Maps/Templates文件夹。例如,我们将保存一个名为的级别My_Level。然后截取您级别的屏幕快照,并使用图像编辑软件将其设置为200x200,然后将其导入Engine/Maps/Templates/Thumbnails文件夹中。例如,我们将缩略图另存为My_Level_Thumb。现在,BaseEngine.iniEngine/Config文件夹中打开,然后在[/Script/UnrealEd.UnrealEdEngine]部分中添加以下行。

+TemplateMapInfos=(ThumbnailTexture=Texture2D'/Engine/Maps/Templates/Thumbnails/My_Level_Thumb.My_Level_Thumb',Map="/Engine/Maps/Templates/My_Level")

现在您将拥有类似的东西。

Quick #UE4 Tip (第3周 2020.4.10)_第7张图片

重要步骤:如果您使用的是4.25或更高版本,则必须Engine.iniProject/Saved/Config/Windows文件夹中删除文件。

而已。打开您的项目,然后选择New Level

 

 

Quick #UE4 Tip number 133.

Press tab key to open context menu.

https://cutt.ly/ue4-tip-133

快速#UE4提示编号133。

 

按Tab键打开上下文菜单。

https://cutt.ly/ue4-tip-133

            您是否知道可以按Tab键盘上的键在Graph Editor中打开上下文菜单(如Blueprint,Material等),类似于Substance Designer,World Machine LTE等。此功能默认情况下应处于启用状态,但如果未启用(或最好将其关闭),您可以在Editor Preferences-> Graph Editors->中进行切换Open Create Menu on Blank Graph Area

image

 

 

Quick #UE4 Tip number 132.

Format text with plural form.

https://cutt.ly/ue4-tip-132

快速#UE4提示编号132。

 

用复数形式设置文本格式。

https://cutt.ly/ue4-tip-132

        格式文本允许您使用基于数值和基数支持的不同文本(例如“有1只猫”或“有4只猫”)或有序(例如“您完成了第一!”或“您完成了第二次”) !”)。它们被指定为键值对,并支持以下任意关键字:零,一,二,少,多,其他。值是一个可选的带引号的字符串,也可以包含格式标记。

下面是有关如何使用复数形式的示例:

Quick #UE4 Tip (第3周 2020.4.10)_第8张图片

           以上将基于进行格式化Item Amount。如果您的项目金额为1,则会显示You have 1 item。如果您的商品金额大于1,则会显示You have multiple items

 

 

Quick #UE4 Tip number 131.

Import dialog when re-importing.

https://cutt.ly/ue4-tip-131

快速#UE4提示编号131。

 

重新导入时的“导入”对话框。

https://cutt.ly/ue4-tip-131

          如果您FBX经常重新导入资产,或者希望在每次重新导入时都看到导入对话框,则可以Show import Dialog at ReimportEditor Preferences->Miscellaneous部分启用。

Quick #UE4 Tip (第3周 2020.4.10)_第9张图片

 

Quick #UE4 Tip number 130.

Bind Lambda in C++

https://cutt.ly/ue4-tip-130

快速#UE4提示编号130。

 

在C ++中绑定Lambda

https://cutt.ly/ue4-tip-130

           在C ++项目中,有时可能必须经过一定时间才能运行一次逻辑。在标头中声明一个新计时器并对其进行管理是这样做的方法,我敢肯定我们大多数人都知道这一点。但是,不是,那不是唯一的方法。我们可以利用BindLambda功能更简单的方法并使事情更易于阅读。让我们看一个例子。下面的代码是一定时间后执行功能的典型方法。

之前:

在标题中:

Quick #UE4 Tip (第3周 2020.4.10)_第10张图片

在源中:

Quick #UE4 Tip (第3周 2020.4.10)_第11张图片

我们可以使用来简单地做到这一点BindLambda。看一下下面的代码。

在标题中:

Quick #UE4 Tip (第3周 2020.4.10)_第12张图片

在源中:

Quick #UE4 Tip (第3周 2020.4.10)_第13张图片

Blueprint Event如果需要的话,我们可以通过运行选项来进一步扩展这一功能。为此,请查看以下示例。它几乎与上面相同,除了我们现在在蓝图设计器中可以使用的函数中还有一个附加的回调。

在标题中:

Quick #UE4 Tip (第3周 2020.4.10)_第14张图片

在源中:

Quick #UE4 Tip (第3周 2020.4.10)_第15张图片

 

 

Quick #UE4 Tip number 129.

Delete node without losing connection.

https://cutt.ly/ue4-tip-129

快速#UE4提示号129。

 

删除节点而不丢失连接。

https://cutt.ly/ue4-tip-129

      在“蓝图”中,您可以选择一个节点,然后按Shift + Delete删除选定的节点而不会失去连接。

在此处预览:https://imgur.com/46e8522

Quick #UE4 Tip (第3周 2020.4.10)_第16张图片

 

Quick #UE4 Tip number 128.

Content Browser other filters.

https://cutt.ly/ue4-tip-128

快速#UE4提示编号128。

 

内容浏览器其他过滤器。

https://cutt.ly/ue4-tip-128

Content BrowserOther Filters,这是非常有用的,当涉及到搜索资产。特别是Show Redirectors过滤器和水平的具体像In UseUsedNot UsedAny Level过滤器。

Quick #UE4 Tip (第3周 2020.4.10)_第17张图片

 

 

Quick #UE4 Tip number 127.

Rectangular color picker.

https://cutt.ly/ue4-tip-127

快速#UE4提示编号127。

 

矩形拾色器。

https://cutt.ly/ue4-tip-127

如果您right click使用色轮Color Picker,它将变为矩形而不是圆形。

感谢https://twitter.com/Cory__

Quick #UE4 Tip (第3周 2020.4.10)_第18张图片

 

 

Quick #UE4 Tip number 126.

Filtering results in context menus.

https://cutt.ly/ue4-tip-126

快速#UE4提示号126。

 

在上下文菜单中过滤结果。

https://cutt.ly/ue4-tip-126

          上下文菜单中的子菜单支持快速搜索,这意味着在打开子菜单时,您可以简单地开始在键盘上键入内容,菜单将显示结果。

          在下面的示例屏幕截图中,您可以看到Select打开子菜单的时间,我输入了内容U,该内容使用过滤了所有内容U

Quick #UE4 Tip (第3周 2020.4.10)_第19张图片

 

 

Quick #UE4 Tip number 125.

Use Layers to quickly organize your actors in world.

https://cutt.ly/ue4-tip-125

快速#UE4提示编号125。

 

使用图层快速组织您的演员在世界上。

https://cutt.ly/ue4-tip-125

        与World Outliner相似,有一个Layers选项卡可用于组织世界中的演员。可以从Windows->Layers选项卡中召唤它。

Layers provide the ability to quickly select as well as control visibility of groups of related Actors. You can use your layers to quickly un-clutter a scene leaving only the geometry and Actors that you are working with. For example, you might be working on a building that has multiple levels but is comprised of many modular parts. By assigning each floor to a layer, you can hide each of the floors you are not working on making the top view much more manageable.
An Actor can be in as many layers as you want. This might be useful if you have different sets of Actors that fall under overlapping layers. For instance, you could organize your layers by assigning everything within a particular zone to one layer and have another layer comprised of all the doors in your level.
When creating large levels, the more extensively you use layers, the easier your job will be. And remember, it is always easier to start using layers from the beginning rather than trying to incorporate them after you are already deep into the creation of your level.

Quick #UE4 Tip (第3周 2020.4.10)_第20张图片

Quick #UE4 Tip number 124.

Instantly remove unused material nodes.

https://cutt.ly/ue4-tip-124

快速#UE4提示编号124。

 

立即删除未使用的材质节点。

https://cutt.ly/ue4-tip-124

在你的material editor,如果你有未连接的节点,您可以立即通过单击清除它们Clean Up按钮工具栏上。

Quick #UE4 Tip (第3周 2020.4.10)_第21张图片

 

 

Quick #UE4 Tip number 123.

Disaster Recovery plugin to restore session after crash.

https://cutt.ly/ue4-tip-123

快速#UE4提示号123。

 

灾难恢复插件,可在崩溃后恢复会话。

https://cutt.ly/ue4-tip-123

虚幻引擎有一个名为的插件Disaster Recovery,可用于崩溃后恢复会话。非常有用,尤其是在不使用源代码管理的情况下。

首先,您必须启用Disaster Recovery插件,然后Recovery HubWindow->Developer Tools部分访问。

Quick #UE4 Tip (第3周 2020.4.10)_第22张图片

Quick #UE4 Tip (第3周 2020.4.10)_第23张图片

 

 

Quick #UE4 Tip number 122.

Cooker related settings.

https://cutt.ly/ue4-tip-122

快速#UE4提示编号122。

Cooker相关设置。

https://cutt.ly/ue4-tip-122

           如果您正在寻找更多Cooker相关的控件,请转到Project Settings->Cooker部分。例如:这允许您排除专用服务器和客户端的任何类/模块。

Quick #UE4 Tip (第3周 2020.4.10)_第24张图片

 

Quick #UE4 Tip number 121.

Asset user data.

https://cutt.ly/ue4-tip-121

快速#UE4提示编号121。

资产用户数据。

https://cutt.ly/ue4-tip-121

            虚幻引擎中的几乎每个资产都有一个称为的属性Asset User Data  (印象中Unity中也包含这个类似的),可用于将元数据分配给您的资产。我找不到有关资产用户数据的太多信息。在下面的屏幕截图中,您可以看到如何分配元数据,该元数据可用于检查在加载该资产时是否存在某些ini值。

Quick #UE4 Tip (第3周 2020.4.10)_第25张图片

 

 

Quick #UE4 Tip number 120.

Render mesh in wireframe mode.

https://cutt.ly/ue4-tip-120

快速#UE4提示编号120。

 

在线框模式下渲染网格。

https://cutt.ly/ue4-tip-120

在中Material Editor,您可以启用Wireframe选项以在线框中渲染网格。

Quick #UE4 Tip (第3周 2020.4.10)_第26张图片

 

Quick #UE4 Tip number 119.

Polygon Editing that let's you modify Static Mesh inside Editor.

https://cutt.ly/ue4-tip-119

快速#UE4提示号119。

 

多边形编辑,可让您在编辑器中修改“静态网格物体”。

https://cutt.ly/ue4-tip-119

虚幻引擎有一个名为的插件Polygon Editing,启用后会在其中添加一个新的工具栏Static Mesh Editor,可用于修改打开的网格。

 

Quick #UE4 Tip number 118.

Batch editing via Property Matrix.

https://cutt.ly/ue4-tip-118

快速#UE4提示编号118。

 

通过属性矩阵进行批量编辑。

https://cutt.ly/ue4-tip-118

您可以通过右键单击并选择Asset Actions->来批量编辑选定资产(相同类型)的属性Bulk Edit via Property Matrix

Quick #UE4 Tip (第3周 2020.4.10)_第27张图片

 

Quick #UE4 Tip number 117.

Material Analyzer developer tool.

https://cutt.ly/ue4-tip-117

快速#UE4提示编号117。

 

材料分析器开发人员工具。

https://cutt.ly/ue4-tip-117

虚幻引擎提供了一个开发人员工具Material Analyzer,该工具可以分析给定的材料或实例并提供建议。您可以从Window-> Developer Tools->召唤该工具Material Analyzer

Quick #UE4 Tip (第3周 2020.4.10)_第28张图片

 

Quick #UE4 Tip number 116.

How to see all slate widgets from UE4.

https://cutt.ly/ue4-tip-116

快速#UE4提示编号116。

 

如何从UE4中查看所有slate小部件。

https://cutt.ly/ue4-tip-116

是否想查看UE4必须提供的所有Slate小部件?选择Window-> Developer Tools-> Debug Tools,然后单击Test Suite按钮。这将打开一堆包含几乎所有Slate小部件的窗口。

Quick #UE4 Tip (第3周 2020.4.10)_第29张图片

 

 

Quick #UE4 Tip number 115.  

Run Pre/Post Build Events by modifying uproject file.

https://cutt.ly/ue4-tip-115

快速#UE4提示编号115。

 

通过修改uproject文件来运行Pre / Post构建事件。

https://cutt.ly/ue4-tip-115

            您可以在构建完成时触发自己的自定义Pre / Post构建事件。仅适用于C ++项目。

uproject在记事本(或任何文本编辑器)中打开文件,然后添加以下键。

"PostBuildSteps": {
             "Win64": [  ]
}

例如,下面的uproject文件将运行CopyDLL.bat文件。

{
     "FileVersion": 3,
     "EngineAssociation": "",
     "Category": "",
     "Description": "",
     "Modules": [
         {
             "Name": "YourProjectName",
             "Type": "Runtime",
             "LoadingPhase": "Default"
         }
     ],
     "PostBuildSteps":
         {
             "Win64": [
                 "call \"G:\\UnrealProjects\\MyProject\\CopyDLL.bat\""
             ]
         }
 }

 

 

Quick #UE4 Tip number 114.  Modifying Max Search Nodes for finding path to large distance.https://cutt.ly/ue4-tip-114

https://twitter.com/RyanJon2040/status/1365908339801038848

快速#UE4技巧编号114。修改“最大搜索节点”以查找较大距离的路径。

虚幻技巧#114

2021年2月28日

默认情况下,当您请求Find Path to Location或时,UE4最多使用2048个导航节点进行搜索Find Path to Actor。当您想查找更大距离的路径时,这可能会出现问题。您可以通过打开DefaultEngine.ini并添加以下部分来修改限制。

[/Script/NavigationSystem.RecastNavMesh]
DefaultMaxSearchNodes=4096 ;2048 is the default. Change it to whatever value that works for you.

 

 

 

 

Unreal Tip #113

虚幻技巧#113

2021年2月27日

您可以Level Blueprint通过右键单击资产并选择,快速轻松地为参与者添加事件Add Event

 

Quick #UE4 Tip (第3周 2020.4.10)_第30张图片

 

 

 

Unreal Tip #112

Feb 26, 2021

FreezeRendering is a useful command to freeze most aspects of rendering. Can be used to check how frustum and occlusion culling is working.

https://i.imgur.com/i7IhLUO.gifv <- Click to preview

虚幻技巧#112

2021年2月26日

FreezeRendering是冻结大多数渲染方面的有用命令。 可用于检查截锥体和遮挡剔除的工作方式。

https://i.imgur.com/i7IhLUO.gifv <-单击以预览Quick #UE4 Tip (第3周 2020.4.10)_第31张图片

Quick #UE4 Tip (第3周 2020.4.10)_第32张图片

 

Unreal Tip #111

Feb 25, 2021

You can switch the View Type to Columns to see more detailed information related to assets in Content Browser.

虚幻技巧#111

2021年2月25日

您可以将“视图类型”切换为“列”,以在“内容浏览器”中查看与资产相关的更多详细信息。

Quick #UE4 Tip (第3周 2020.4.10)_第33张图片

 

 

Unreal Tip #110

Feb 24, 2021

In Editor Viewport you can press Backslash key to preview mesh at mouse point.

https://i.imgur.com/yIdl1Rd.gifv <- Click to Preview

This mesh (or meshes) can be changed from Editor Preferences -> Viewports -> Preview category.

虚幻技巧#110

2021年2月24日

在编辑器视口Editor Viewport中,可以按反斜杠键在鼠标点预览网格。

https://i.imgur.com/yIdl1Rd.gifv <-单击预览

可以从“编辑器首选项”->“视口”->“预览”类别中更改一个或多个网格。

Quick #UE4 Tip (第3周 2020.4.10)_第34张图片Quick #UE4 Tip (第3周 2020.4.10)_第35张图片

Quick #UE4 Tip (第3周 2020.4.10)_第36张图片

 

 

Unreal Tip #109

Feb 23, 2021

          When you open a Material Editor, you can click Hierarchy button to see all the Material Instances inherited from the Material.

虚幻技巧#109

2021年2月23日

打开材质编辑器时,可以单击“层次结构”按钮以查看从材质继承的所有材质实例

Quick #UE4 Tip (第3周 2020.4.10)_第37张图片

 

 

Unreal Tip #108

Feb 22, 2021

When play testing a multiplayer instance in Editor, you can switch the world using View Options from World Outliner tab to see which actors exist in server or client. Useful for debugging as well.

虚幻技巧#108

2021年2月22日

           在编辑器中测试多人游戏实例时,可以使用“世界大纲”标签中的“查看选项”切换世界,以查看服务器或客户端中存在哪些参与者。 对于调试也很有用。

Quick #UE4 Tip (第3周 2020.4.10)_第38张图片

 

 

 

Unreal Tip #107

Feb 21, 2021

Having multiple levels with actors in them but can't figure out which actor belongs to which level? Fear not young (or old) warrior, check out Level Coloration from Show menu in Viewport.

Here you can see the actors are colored based on their respective levels. Colors itself can be modified from the Levels tab.

虚幻技巧#107

2021年2月21日

           演员中有多个级别,但不能弄清楚哪个演员属于哪个级别? 不要害怕年轻(或年纪大的)战士,请从“视口”的“显示”菜单中查看“关卡着色”。

          在这里,您可以看到演员根据他们各自的水平着色。 颜色本身可以在“色阶”选项卡中进行修改。

 

Unreal Tip #106

Feb 20, 2021

In UE4, there is templated type called TOptional which is a really useful class. It can be used to check if a certain value is set or not and continue game logic based on the result.

Consider the below code. Let's imagine, in this example we expect bHasWeaponExtrasto be true if the weapon has any attachment, false if no attachments are installed. But what to do if weapon doesn't support any attachments at all?

Without TOptional:

In Header:

bool bHasWeaponExtras;

 

In Source:// Both true/false can be valid in this context so what will we do?
if (bHasWeaponExtras)
{
// Need an additional check where this bool is not at all set.
// Similar to Nullable in C#.
}

With TOptional:

In Header:

TOptional bHasWeaponExtras;

In Source:

// If the value is not set (i.e not true and not false), notify player that this weapon doesn't support any attachments at all.
if (bHasWeaponExtras.IsSet())
{
if (bHasWeaponExtras.GetValue())
{
// Do your thingy.
}
}

虚幻技巧#106

2021年2月20日

             在UE4中,有一个称为TOptional的模板类型,这是一个非常有用的类。 它可用于检查是否设置了某个值,并根据结果继续游戏逻辑。

             考虑下面的代码。 假设在此示例中,如果武器具有任何附件,我们期望bHasWeaponExtrasto为true,如果未安装附件,则为false。 但是,如果武器根本不支持任何附件怎么办?

Without TOptional:

In Header:

bool bHasWeaponExtras;

In Source:// Both true/false can be valid in this context so what will we do?
if (bHasWeaponExtras)
{
// Need an additional check where this bool is not at all set.
// Similar to Nullable in C#.
}

With TOptional:

In Header:

TOptional bHasWeaponExtras;

In Source:

// If the value is not set (i.e not true and not false), notify player that this weapon doesn't support any attachments at all.
if (bHasWeaponExtras.IsSet())
{
if (bHasWeaponExtras.GetValue())
{
// Do your thingy.
}
}

 

 

 

你可能感兴趣的:(UE4/5)