最终效果:手部触碰到可抓取Actor变换姿势,按下鼠标右键实现抓取
一、创建GrabTargetActor
1.1新建一个Actor蓝图,命名为GrabTargetActor,添加组件StaticMesh,并添加一个网格体。
1.2打开事件图表,新建两个函数,OnGrab1和OnDrop1
1.2.1 OnGrab1
为OnGrab1添加一个输入变量Hand,类型为场景组件,勾选编辑器中调用。
编译如下蓝图,将GrabTargetActor附着到手上,即抓取。
1.2.2OnDrop1
勾选编辑器中调用,编译如下蓝图,将GrabTargetActor与手分离,即放下。
二、创建Hand蓝图
2.1新建Actor蓝图,命名为SimVRHand
添加骨骼网格体组件、Sphere,选择手部骨骼网格体
2.2新建函数FindGrabTarget,设置输出变量GrabTarget,其类型为GrabTargetActor
2.3新建函数Grab
2.4新建函数Drop
2.5新建函数GetHandState,创建输出变量State
根据动作变化时间节点设置State的值以实现手部动作的变化
三、手部动画创建
3.1创建动画
打开手部网格体物理资产
以当前姿势创建动画,命名为:Hand_PS
按顺序拖入右下角手部动作到对应的点
按住Shift查看手部动作的变化
3.2创建动画蓝图,命名为HandAnim_BP
新建变量State