1 / 18
文档名称:

ue4模型拆装蓝图实例.doc

格式:doc   大小:2,583KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ue4模型拆装蓝图实例.doc

上传人:一叶轻舟 2020/7/23 文件大小:2.52 MB

下载得到文件列表

ue4模型拆装蓝图实例.doc

文档介绍

文档介绍:UE4模型拆装蓝图实例最终效果如下图所示步骤1:导入FBX并且所有模型的原点在同一个位置(原点)最好将所有原点归到所有模型的下方中心方便散开时候往上散不至于散到地面一下步骤2:创建新项目和不同的文件夹(选择不具有初学者内容)然后在WorldSeting中添加新的游戏模式和新的PawnClass(添加后系统会自动创建BlueSprint的文件夹)3:将导入的FBX分别创建为蓝图类如下图所示在此之前先创建一个蓝图BP_Expose作为蓝图父类,然后在BlueSprint文件夹中打开所有FBX创建的蓝图类,在ClassSetting中设置它们为BP_Expose蓝图类的子类(就是继承关系)*将所有蓝图拖拽到场景中*****进入蓝图部分——ponentbyclass获取场景中的蓝图类(ponent)返回了一个数组(场景中八个蓝图类),首先判断这个数组是否长度为大于0(否则一切没有意义),然后通过Get函数获取这个数组的第一个元素将其设置为名称为StaticMesh的一个变量,ponent这个步骤的意义在于保存场景中蓝图类StaticMesh的引用****在这个步骤蓝图中,ponentBounds获取模型的中心(重心),不是原点,通过GetdirectionVector这个函数算出原点到中心这个方向,以及距离并且将这数值保存到两个以后要用的变量(散开的距离),randomrotator是一个随机旋转角度并且赋值个一个旋转变量**这个图表中显示通过在蓝图父类的所有子对象上悬停发生两个事件一个是悬停时候设置材质高亮一个是离开时候设置材质为普通材质,也可以在初始时候就将所有的蓝图类赋予初始材质显示高亮后又可以变成另外一种普通材质***接下来要进行的是组装和拆分两个动作的自定义事件可以通过Timeline这个事件节点来设置模型拆分出去的动作和旋转的速度1模型拆分由于清晰度我截图分成两半首先自定CustomEvent将其命名为huandong(这个名字最后觉得没有命名好),,timeline这里就不多说了,游戏开始时候从原点开始,然后通过Ease这个函数来进行线性缓动,,目标就是PToEND这个事先保存好的值,也可以修改,然后再设置拆分的目的地以及旋转(旋转中也可以通过Ease这个函数来事先一个线性的角度旋转不是匀速旋转)。这里有一点重要的是没有讲到的一个状态的存储,我们现在Bluesprint文件夹中右键创建一个Enumerators(枚举变量),在其中创建两个变量分别为Start和end两种状态,为了在模型移动后把这种状态给保持下来在执行拆分模型完成后将模型位置的状态设置为结束,将其保存下来方便以后调用这个状态,模型的组装:其实就是把两个起始位置和目标位置反置一下就可以了****在游戏开始时候要做的事情通过sequence这个序列节点来同时做有些事情如下图所示到此在蓝图类BP_Expose这个父类上的蓝图节点连接就结束了接下来我们到MyPawn这个类中进行蓝图调试与编辑二在MyPawn这个类中编辑蓝图***首先在Mypawn中添加Spring和camera,将相机作为spring的子类相机就变为这条spring红线的端点位置了,可以设置这个红线的距离白色圆球就是这个相机的聚焦位置,为了不让这个红线坚持到模型的碰撞以免发生错误把Spring这个父类下面的这个DOcollisionTest勾选框勾掉再把这个打勾,意思是可以让游戏模式旋转,过后将Mypawn拖到场景中在WorldSetting中设置游戏模式为自己增加的游戏模式,和我的Mypawn,这样游戏开始相机才是你调整的那个位置不然就是默认的位置接下来我们来控制视角的变换,在ProjectingSetting的在Input中的AXIS添加两个控制器MouseX和MouseY分别命名为Yaw和Pitch,并将MouseY的Scale值改为-,通过InputAxis+Yaw(自己刚才命的名字,调用鼠标控制),然后通过AddcontrollerYawInput和AddcontrollerPitch两个函数来执行鼠标的左右上下控制弄能。****鼠标以及视角调好了我们来做真正意义的模型拆分动作的调用功能首先我们新建一个变量叫做Isbystep(是否一步一步的拆分),这就是在自定义缓动事件时候说的我新建的整形变量在这里发挥作用了,这本变量设置成Bool,大家知道这个变量转换成整形不是0就是1,