UE4学习总结(1)蓝图基础

UE4学习总结(1)蓝图基础

  • 蓝图类的基础配置
        • 蓝图类创建
        • 静态网格体
        • 编程部分:事件+函数
  • 实例化静态网格
  • 动态网格体

蓝图类的基础配置

蓝图类创建

蓝图类创建:调用构造函数Construction Script。
如下图,本例中,构造函数内部读取初、末位置数据并存入自定义的结构体以供取用。
UE4学习总结(1)蓝图基础_第1张图片
PS:修改结构体成员的方法是调用”Set Scalar Parameter Value”函数,如下图所示,collection,Parameter Name,Parameter Value分别是结构体名称、成员名称、成员的修改值。
UE4学习总结(1)蓝图基础_第2张图片

静态网格体

只需要把静态网格体拖拽到蓝图里面的“static mesh”就可以了(add component->static mesh)。之后蓝图内的操作只需要输入参数更改static meshd的位置、方位,决定是否渲染就行了。这让控制模型在关卡中的运动变得极为简单。

编程部分:事件+函数

事件图表中,Event Begin Play相对于Main函数,只能有一个,是程序的入口和初始化。Event Tick是每变化一帧就调用一次的事件,很像Verilog里面的always@( posedge clk),进行与画面变化同步的控制。事件控制其后的函数调用。
用事件进行程序设计的好处是,可以方便地进行中断操作。可以随意设置接口,对于强烈依赖于外部命令(如游戏)的程序开发很便捷。
UE4学习总结(1)蓝图基础_第3张图片
如图,红色模块是各个事件。

实例化静态网格

任何虚拟仿真的程序,无非分为内部算法和可视化模块(渲染)。当内部程序运行时,需要通过可视化模块展现在显示屏中。每次在场景中添加任何事物时,都相当于图形硬件的额外绘制调用。如果此物是某一级别的静态网格,则它会应用于该网格的每个副本。如果在某一级别上反复出现几次相同的静态网格,那么进行优化的一种方法是将该静态网格实例化,以减少绘制调用的数量。1
下图为每次更新含600个人的方阵时使用实例化静态网格渲染的蓝图。
UE4学习总结(1)蓝图基础_第4张图片
由于每一帧都会有600个人物的位置变化,如果逐一渲染,则浪费性能。因此在循环中先将位置变化结果存入实例化静态网格,循环结束时,所有事物(600个人)都看作一个实例,此时只要渲染一个事物,其它事物全都会被渲染。因此实例化静态网格使效率提升几个数量级。

动态网格体

本例中使用材质实例使原本静止的人物模型运动起来。一个材质实例是大小为M*N,其中M理解为各个像素点,N是帧数,因此第i行表征了第i帧各个位置的运动情况,第1~N帧共同组成了整个运动图像。材质实例利用了面向对象语言中的继承关系。从一个材质父类中继承的材质实例包含了父类材质的性质,并且可以应用于静态网格体中,本例中使得静态网格体运动起来。
材质实例的操作很丰富,目前尝试过的有调整帧数从而改变运动快慢、添加随机数使得运动状态不定。通过接口配置材质实例很方便,这也体现了UE4模块化的特点。
UE4学习总结(1)蓝图基础_第5张图片


  1. https://software.intel.com/content/www/cn/zh/develop/articles/unreal-engine-4-optimization-tutorial-part-2.html ↩︎

你可能感兴趣的:(UE4学习总结,虚幻4,UE4,虚幻引擎4,UE4,蓝图)