1.一种UE4引擎中手拧虚拟物品的信息处理方法,其特征在于,所述方法包括:在UE4引擎的虚拟物品上创建骨骼模型,在所述骨骼模型的手腕骨骼节点添加插槽Socket;
通过UE4的函数GetSocketRotation=>GetRightVector获取到用户手腕正右方的方向向量,命名为ReallyHandRightDir,通过UE4的函数GetRightVector获取到所述骨骼模型手腕正右方的方向向量,命名为VirtualHandRightDir;
在所述骨骼模型中添加箭头组件,所述箭头组件的指向与所述虚拟物品的旋转轴一致;
将所述ReallyHandRightDir与所述VirtualHandRightDir投影在以所述箭头组件的指向为法向量的平面上,得到所述VirtualHandRightDir的投影向量VirtualHandRightProjectDir和所述ReallyHandRightDir的投影向量ReallyHandRightProjectDir;
通过UE4的函数RotatorfromAxisAndAngle获取所述VirtualHandRightProjectDir和所述ReallyHandRightProjectDir的夹角以及VirtualHandRightProjectDir叉乘ReallyHandRightProjectDir所得到的叉乘向量;
通过UE4的函数AddWorldRotation将所述夹角和所述叉乘向量叠加到所述骨骼模型中,以使得所述骨骼模型能够根据所述夹角以及所述叉乘向量进行旋转;
在所述虚拟物品上创建scene组件,命名为VirtualHandRightDirScene,将所述VirtualHandRightDirScene设置在跟组件的位置与所述ReallyHandRightProjectDir*100的位置上;
将所述VirtualHandRightDirScene的位置与所述跟组件的位置的差值作为所述ReallyHandRightProjectDir的当前帧的位置;
获取下一帧的所述ReallyHandRightProjectDir的位置;
获取所述ReallyHandRightProjectDir的当前帧的位置与所述下一帧的所述ReallyHandRightProjectDir的位置的角度,获取当前帧的所述ReallyHandRightProjectDir与下一帧的所述ReallyHandRightProjectDir的向量的叉乘,得到所述角度的正负;
使用UE4的函数AddRelativeRotation将计算出所述正负的角度的差值附加给所述虚拟物品的旋转组件;
根据所述计算出所述正负的角度的差值确定所述ReallyHandRightProjectDir在当前帧转到下一帧时的旋转值;
根据所述旋转值控制所述虚拟物品的所述旋转组件进行旋转。
2.根据权利要求1所述的方法,其特征在于,所述骨骼模型为所述虚拟物品的双手的骨骼模型,所述在所述骨骼模型的手腕骨骼节点添加插槽Socket,包括:在所述双手的骨骼模型上分别添加插槽Socket。
3.根据权利要求1所述的方法,其特征在于,所述根据所述旋转值控制所述虚拟物品的所述旋转组件进行旋转,包括:
若所述旋转值大于0,在所述旋转值中添加判断条件;
当所述旋转值大于0时,根据所述旋转值的判断条件控制所述虚拟物品的所述旋转组件进行旋转。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述旋转值小于或等于0时,控制所述虚拟物品的所述旋转组件不发生旋转。
5.根据权利要求4所述的方法,其特征在于,所述旋转值为多个,所述方法还包括:在预设的旋转条件下计算多个旋转值的累加值,得到总旋转度;
若所述总旋转度大于预期值,确定所述UE4引擎中手拧虚拟物品结束。
6.一种UE4引擎中手拧虚拟物品的信息处理装置,其特征在于,所述装置包括:第一添加模块,用于在UE4引擎的虚拟物品上创建骨骼模型,在所述骨骼模型的手腕骨骼节点添加插槽Socket;
获取模块,用于通过UE4的函数GetSocketRotation=>GetRightVector获取到用户手腕正右方的方向向量,命名为ReallyHandRightDir,通过UE4的函数GetRightVector获取到所述骨骼模型手腕正右方的方向向量,命名为VirtualHandRightDir;
第二添加模块,用于在所述骨骼模型中添加箭头组件,所述箭头组件的指向与所述虚拟物品的旋转轴一致;
投影模块,用于将所述ReallyHandRightDir与所述VirtualHandRightDir投影在以所述箭头组件的指向为法向量的平面上,得到所述VirtualHandRightDir的投影向量VirtualHandRightProjectDir和所述ReallyHandRightDir的投影向量ReallyHandRightProjectDir;
计算模块,用于通过UE4的函数RotatorfromAxisAndAngle获取所述VirtualHandRightProjectDir和所述ReallyHandRightProjectDir的夹角以及VirtualHandRightProjectDir叉乘ReallyHandRightProjectDir所得到的叉乘向量;
叠加模块,用于通过UE4的函数AddWorldRotation将所述夹角和所述叉乘向量叠加到所述骨骼模型中,以使得所述骨骼模型能够根据所述夹角以及所述叉乘向量进行旋转;
旋转模块,用于在所述虚拟物品上创建scene组件,命名为VirtualHandRightDirScene,将所述VirtualHandRightDirScene设置在跟组件的位置与所述ReallyHandRightProjectDir*100的位置上,将所述VirtualHandRightDirScene的位置与所述跟组件的位置的差值作为所述ReallyHandRightProjectDir的当前帧的位置,获取下一帧的所述ReallyHandRightProjectDir的位置,获取所述ReallyHandRightProjectDir的当前帧的位置与所述下一帧的所述ReallyHandRightProjectDir的位置的角度,获取当前帧的所述ReallyHandRightProjectDir与下一帧的所述ReallyHandRightProjectDir的向量的叉乘,得到所述角度的正负,使用UE4的函数AddRelativeRotation将计算出所述正负的角度的差值附加给所述虚拟物品的旋转组件,根据所述计算出所述正负的角度的差值确定所述ReallyHandRightProjectDir在当前帧转到下一帧时的旋转值,根据所述旋转值控制所述虚拟物品的所述旋转组件进行旋转。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的应用程序,其特征在于,所述处理器执行所述应用程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有应用程序,其特征在于,所述应用程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。