ue4引擎是什么怎么弄出沼泽效果

借题发挥下面是我总结的UE4蓝图規范(BPSpec-V1.0):

根据蓝图的类型存放蓝图。

文件夹的前两位数字主要用来自动排序以防文件夹的顺序混乱。蓝图UAsset资源命名:以蓝图类别缩写(如“BPA”)开始以下划线(“_”)连接。

蓝图的描述信息和蓝图分类

给蓝图资源添加蓝图描述和蓝图分类可以帮助其他人或将来的自己快速了解该藍图的功能。

蓝图功能划分和蓝图层级

使用基类和子类的方式划分蓝图功能:采用这种面向对象的编程思想可以便于后期的功能扩展。鈳以减轻单个蓝图的复杂度

使用蓝图接口:采用这种面向对象的编程思想,可以减轻蓝图间的依赖关系方便其他人调用该蓝图的功能接口。

对于蓝图Actor可以根据实际的蓝图功能,将某些蓝图功能划分到蓝图组件中

蓝图函数分类、变量分类

避免在蓝图中使用大函数(一個函数包含太多蓝图结点),而是将大函数分割成多个小函数为每个函数设置“Category”,对函数进行分类

建立具有层级结构的蓝图分类。功能性函数和辅助功能的函数分开

蓝图函数的主要分类为:

  • Private:只有本蓝图能使用的函数;子类蓝图不能重载(但可以调用);其他蓝图鈈能调用。
  • Public:本蓝图可以使用;子类蓝图可以重载或调用;其他蓝图不能调用
  • Interfaces:本蓝图可以使用;子类蓝图可以重载或调用;其他蓝图鈳以调用。

如下面的“Add(CustomMoveingPlatform)”函数所示将其分类为“Public”,用于表示该函数主要用于子类蓝图的重载

如下面的“BeginPlay”函数所示。该函数主要用來让其他蓝图调用因此可以将其分类为“Interfaces”。其他人就只需要了解“Interfaces”类别的函数就可以轻松的使用你所写的这个蓝图功能模块。

蓝圖的变量的类别可以分为:PublicPrivate

  • Public:本蓝图可以使用;子类蓝图可以使用;其他蓝图可以使用;如果需要在蓝图实例的属性面板中配置该变量,则需要将该蓝图变量的右边眼睛点亮
  • Private:本蓝图可以使用;子类蓝图可以使用。

Private变量下又分出Cache变量Cache变量是在功能执行过程中,用来存储中间结果的变量

在蓝图函数内部,使用局部变量可以减轻蓝图函数的连线复杂态度

局部变量的命名规则为“Local(Name)”。在局部变量名中使用 “Local()”的形式标识出该变量是局部变量。

  • 将函数的参数保存为局部变量在使用该参数时,可以减少连线长度和数量
  • 将Pure函数输出的結果存储为局部变量,可以减少对Pure函数的调用次数(尤其是在多次调用Pure函数对性能影响很大的情况下)
  • 将函数返回节点需要的返回值存儲为局部变量,可以减少连线长度和布局复杂度

习惯性使用“Sequence”节点

当你思考这个蓝图函数怎样开始时,首先考虑添加一个“Sequence”蓝图函數节点使用该节点,可以将蓝图函数的串行布局变为并行布局(但是函数执行却是从上而下的串行的)

使用Collapse将大函数变为小函数

为了保持单个蓝图函数的简单性,可以将复制的函数划分为:多个子函数、多个蓝图Nodes、多个蓝图宏

在你觉得需要注释的地方添加合适的注释,并用标号、颜色、字号加以标识

函数的命名与变量的命名

函数和变量的命名要直接明了。可以使用“()”或“_”对名称的结构进行组织如“Get(Config(MovingPlatformMesh)) ”。给变量添加具有描述性的注释(Tooltip)

给函数添加用于阐释函数功能和注意事项的描述(Description)。

减少“EventGraph”中的代码复杂性

可以在“EventGraph”中创建多个自定义事件(CustomEvent)。然后将代码封装到另外的函数中为了方便其他蓝图可以绑定本蓝图的事件,可以为本蓝图添加“EventDispatcher”

  • 處理事件代码的内部函数的命名规则:“Event(Name) ”

建议不要使用ue4引擎是什么没有默认启用的第三方插件来进行排版布局。因为会增加蓝图对其他苐三方插件的依赖性可能会导致其他人使用你的蓝图时,出现布局混乱的情况

可以使用UE4提供的蓝图排版布局功能,如下所示可以在編辑器属性面板中,为排版布局功能设置个性化的快捷键

为了方便其他地方(如在场景中选中某个蓝图Actor,在属性面板中配置该Actor的属性)配置该蓝图的属性并且该蓝图中需要配置的属性较多,可以将这些属性封装到蓝图结构体中然后,在蓝图中创建一个蓝图结构体类型嘚属性变量

蓝图结构体类型的属性,可以使蓝图属性的配置过程更加清晰明了具有层级感。

将简单功能的函数声明为“Pure”函数可以茬调用该函数时降低连线复杂度。

但是注意:避免使用“Pure”函数实现复杂功能逻辑;避免使用“Pure”函数封装对性能影响较大的代码如下圖所示,“Get(TransformAtDistanceAlongSpline)”函数是一个“Pure”函数在下面的情况下,该函数会被调用执行3次

下面的情况,建议使用C++对代码进行封装然后在蓝图中调鼡C++封装好的蓝图节点,而不只使用蓝图:

  • 蓝图无法实现的功能逻辑

将蓝图的“Nativize”选项勾选上打包时会将该蓝图转换为本地代码(C++),对运行性能也许有所提升

为了便于快速查找哪些地方使用了某个函数或变量,可以使用下面的“Find References”功能

也可以在其他蓝图中,查找函数或变量

使用下面的内部跳转功能,可以快速定位到某个蓝图节点位置

运行时,可以使用下面的“Debug”或“Blueprint Debugger”调试工具调试蓝图代码。

}

该楼层疑似违规已被系统折叠 

难噵天朝墙内大多数玩家都是在醉生梦死玩着秒杀主机平台的“PC独占CG画质”


}
那你好棒棒呀 已有0次举报 你想说嘚是大气散射吧 已有0次举报
渲染得再好还是缺少那种质感。
景深、光反射、植被种类都不对。
高手们都在说不对不好,麻烦你们出個对的和好的上来看看尼玛一群SB
键盘SB太多,哈哈 已有0次举报 呵呵20年前就有的雾霾渲染 已有0次举报 高手们,都在说不对不好麻烦你们絀个对的和好的上来看看,尼玛一群SB
渲染得再好还是缺少那种质感。
景深、光反射、植被种类都不对。
高手们都在说不对不好,麻煩你们出个对的和好的上来看看尼玛一群SB 已有0次举报 景深、光反射、植被种类,都不对 已有7次举报
希望到索尼PS5出来的时候能够实现吧
900P+30幀,PS4应该能跑出来的 已有1次举报 已修正 已有0次举报 不油腻就更假了 已有0次举报}

我要回帖

更多关于 ue4引擎是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信