文档介绍:. .
. v .
UE4模型拆装蓝图实例
最终效果如以下图所示
步骤1:导入FBX 并且所有模型的原点在同一个位置〔原点〕最好将所有原点归到所有模型的下方中心方便散开时候往上散不至于散到地面一下
步骤2:创立新工程和不同的文件夹〔选择不具有初学者容〕然后在WorldSeting中添加新的游戏模式和新的PawnClass〔添加后系统会自动创立BlueSprint的文件夹〕
3:将导入的FBX分别创立为蓝图类如以下图所示
. .
. v .
在此之前先创立一个蓝图BP_Expose作为蓝图父类,然后在BlueSprint文件夹中翻开所有FBX
创立的蓝图类,在ClassSetting中设置它们为BP_Expose蓝图类的子类〔就是继承关系〕
*将所有蓝图拖拽到场景中
*****进入蓝图局部
——在蓝图父类BP_Expose中
首先通过Get ponent by class获取场景中的蓝图类〔选择对象为Staticmeshponent〕返回了一个数组〔场景中八个蓝图类〕,首先判断这个数组是否长度为大于0〔否那么一切没有意义〕,然后通过Get函数获取这个数组的第一个元素将其设置为名称为StaticMesh的一个变量,类型为Staticmeshponent
这个步骤的意义在于保存场景中蓝图类
. .
. v .
StaticMesh的引用
****
在这个步骤蓝图中,主要是通过getponentBounds获取模型的中心〔重心〕,不是原点,通过Get direction Vector这个函数算出原点到中心这个方向,以及距离并且将这数值保存到两个以后要用的变量〔散开的距离〕,random rotator是一个随机旋转角度并且赋值个一个旋转变量
**
这个图表中显示通过在蓝图父类的所有子对象上悬停发生两个事件一个是悬停时候设置材质高亮一个是离开时候设置材质为普通材质,也可以在初始时候就将所有的蓝图类赋予初始材质显示高亮后又可以变成另外一种普通材质
. .
. v .
***接下来要进展的是组装和拆分两个动作的自定义事件可以通过Timeline这个事件节点来设置模型拆分出去的动作和旋转的速度
1模型拆分
由于清晰度我截图分成两半
首先自定CustomEvent 将其命名为huandong〔这个名字最后觉得没有命名好〕,然后在这个自定义事件中增加一个整形变量
. .
. v .
,timeline这里就不多说了,游戏开场时候从原点开场,然后通过Ease这个函数来进展线性缓动,,目标就是P To END这个事先保存好的值,也可以修改,然后再设置拆分的目的地以及旋转〔旋转中也可以通过Ease这个函数来事先一个线性的角度旋转不是匀速旋转〕。这里有一点重要的是没有讲到的一个状态的存储,我们现在Bluesprint文件夹中右键创立一个Enumerators〔枚举变量〕,在其中创立两个变量分别为Start和end两种状态,为了在模型移动后把这种状态给保持下来
在执行拆分模型完成后将模型位置的状态设置为完毕,将其保存下来方便以后调用这个状态,
模型的组装:
其实就是把两个起始位置和目标位置反置一下就可以了
****
在游戏开场时