远程抓取
远程抓取
鲸拓工作室视频教程已同步发布至B站:https://www.bilibili.com/video/BV16z4y1Y7Pf
创建VR项目
编写RemoteGrabActor
设置基本组件
创建一个父Actor,之后所有需要挂载的actor只需要继承父actor就可以实现远程抓取。
创建静态网格体,并添加GrabComponent
设置物理属性
设置静态网格体的碰撞属性,在子类蓝图中选择网格体模型后记得勾选模拟物理
创建函数SetItemProperties和SetItemFinishProperties
这两个函数是为了根据响应事件设置物体的物理属性。
ps:此处的SecondGrab变量请参考视频详细讲解。
设置贝赛尔曲线
创建函数SetBezierControlPoint,这个函数的作用是根据目标所在位置和要到达位置之间计算出贝赛尔点。
再创建一个宏CalculateBezier,用来根据时间时刻生成物体的位置用来生成物体的抛物轨迹
设置边缘发光
设置边缘发光是为了使得物体具有被选中的效果。
创建函数SetCustomDepth
还需要检测物体是否此时被选中来取消它的发光状态
为了实现这一个效果还需要在map中创建PostProcessVolume并且设置处理材质。
编写事件图表
完成RemoteGrabActor的基本函数操作后下面来编写事件图表将它们都应用起来
所需要的变量
编辑RemoteGrabVRPawn
创建VRPawn子蓝图,在MotionControllerRight下创建场景组件命名为AttractionPoint
设置射线追踪,并创建RemoteGrab
创建LineTrace函数
创建FingerTrace函数,并通过Tick事件调用,触发RemoteGrabActor发光函数。
修改Grip触发事件
序列创建三个引脚
第一步
第二步
第三步