本发明属于计算机,特别涉及一种虚拟场景扫描枪人机交互方法。
背景技术:
1、数字孪生的概念最早是2003年由格里夫斯教授在密歇根大学全生命周期管理课程中提出的。随后,美国国防部最早提出将数字孪生技术应用于航空航天飞行器的健康维护和保障。
2、而今,数字孪生被定义为现实世界中资产、过程或服务的虚拟数字模型。它是物理世界和数字世界之间的相互作用。现实和数字化特征之间的这种联系和交流允许实时监测、对情况的直观理解、在任何问题发生之前识别的可能性以及各种模拟和预测建模,并促进最佳决策。
3、随着各行各业与数字孪生结合的更加紧密,大多数主流孪生系统都选择了通过鼠标指针和键盘快捷键来实现用户交互,但这种方法只适用操作宏观场景,在漫游场景中不够友好,因此需要一种新的交互方式来简化用户在虚拟场景中漫游的操作复杂度,提升系统整体体验。
技术实现思路
1、本发明的目的是克服以上问题,提供一种全新虚拟世界中的交互方式。本发明可以为虚拟场景提供更加高效简易的交互,此外,还可以作为三维模拟软件的第一人称视角交互方式,让用户更加身临其境地体验模拟环境。
2、本发明所采用的具体技术方案如下:
3、一种虚拟场景扫描枪人机交互方法,具体步骤如下:
4、s1.将待扫描虚拟场景中的每个物体均对应放置于每个场景对象中;
5、s2.由射线扫描模块获取到每个物体的物体信息,将所述物体信息作为参数传递给焦点响应模块;
6、s3.在每个被控的场景对象中,构造焦点事件和点击事件,由焦点事件暴露焦点事件接口,由点击事件暴露点击事件接口,由焦点事件接口和点击事件接口均接收所述物体信息;
7、s4.由焦点响应模块默认向每个物体发起焦点事件调用,再判断是否有用户手柄模型输入,并根据判断结果对每个物体执行对应事件:
8、当未检测到用户手柄模型中有任意一个按键被按下时,由焦点响应模块对每个物体执行该焦点事件;
9、当检测到用户手柄模型中有任意一个按键被按下时,由组件响应模块向所述物体发起点击事件调用,并执行该点击事件;
10、s5.完成s1-s4的射线扫描过程后,即实现虚拟场景中的人机交互。
11、作为优选,在所述射线扫描模块中,由检测模块持续向前发出射线,当射线第一次与物体碰撞时,判断与所述射线发生碰撞时的物体数量,并根据判断结果获取每个物体的物体信息:
12、当所述射线与一个物体发生碰撞时,获取该物体与射线碰撞点的位置信息,根据所述位置信息获取物体信息;
13、当所述射线与多个物体同时发生碰撞时,依次计算检测模块射线源的位置与每个物体的空间距离,索引最小的空间距离对应的物体作为碰撞的物体,获取碰撞的物体与射线碰撞点的位置信息,根据所述位置信息获取碰撞的物体信息;
14、当所述射线未与任何物体发生碰撞时,判断为失败并忽略处理,重新由检测模块发出射线。
15、作为优选,在所述检测模块中,首先获取用户手柄模型的向前方向向量py,将向前方向向量与预设的固定值l相乘,得到沿向前方向的距离;再获取用户手柄模型在三维坐标中的第一坐标位置ps,将所述第一坐标位置ps与所述距离相加,获得用户手柄模型所在位置向前指定距离处的第二坐标位置pp;最后将所述第一坐标位置ps与所述第二坐标位置pp进行连接,将两个位置连接后的线段作为检测模块发出的射线。
16、作为优选,所述固定值l设置10米。
17、作为优选,所述物体信息为所述物体的空间坐标和所述物体的对象类型。
18、作为优选,在焦点事件和点击事件中,用户均可以自定义任意逻辑。
19、作为优选,所述组件响应模块和所述焦点响应模块均放置与场景对象中。
20、作为优选,在pawn中放置所述射线扫描模块和所述用户手柄模型,pawn是系统的基类,在初始化后会一直常驻于内存中。
21、本发明与现有技术相比,具有以下特点:
22、1)本发明首先在被响应对象中构建公开的“call”和“click”接口,通过扫描模块调用两种接口的方式,实现点击逻辑和焦点逻辑。相较于传统方法的鼠标指针点击,本发明使得场景中的物体对象支持更多的响应事件,拓展了虚拟场景中的交互方式,能够操作可视化效果更强的三维菜单。
23、2)本发明提出的一种虚拟场景扫描枪人机交互方法,引入一种新的操控方法,通过向手柄前方发射射线,由射线与物体对象的碰撞情况,可以获得碰撞物体对象的具体信息,并向其发送接口调用,从而在虚拟世界中操控物体。对比传统的鼠标指针方式,能够更为深入、精细的操作场景物件,同时兼容了vr场景下的操控。
1.一种虚拟场景扫描枪人机交互方法,其特征在于,具体步骤如下:
2.如权利要求1所述的一种虚拟场景扫描枪人机交互方法,其特征在于,在所述射线扫描模块中,由检测模块持续向前发出射线,当射线第一次与物体碰撞时,判断与所述射线发生碰撞时的物体数量,并根据判断结果获取每个物体的物体信息:
3.如权利要求2所述的一种虚拟场景扫描枪人机交互方法,其特征在于,在所述检测模块中,首先获取用户手柄模型的向前方向向量py,将向前方向向量与预设的固定值l相乘,得到沿向前方向的距离;再获取用户手柄模型在三维坐标中的第一坐标位置ps,将所述第一坐标位置ps与所述距离相加,获得用户手柄模型所在位置向前指定距离处的第二坐标位置pp;最后将所述第一坐标位置ps与所述第二坐标位置pp进行连接,将两个位置连接后的线段作为检测模块发出的射线。
4.如权利要求3所述的一种虚拟场景扫描枪人机交互方法,其特征在于,所述固定值l设置10米。
5.如权利要求2所述的一种虚拟场景扫描枪人机交互方法,其特征在于,所述物体信息为所述物体的空间坐标和所述物体的对象类型。
6.如权利要求1所述的一种虚拟场景扫描枪人机交互方法,其特征在于,在焦点事件和点击事件中,用户均可以自定义任意逻辑。
7.如权利要求1所述的一种虚拟场景扫描枪人机交互方法,其特征在于,所述组件响应模块和所述焦点响应模块均放置与场景对象中。
8.如权利要求1所述的一种虚拟场景扫描枪人机交互方法,其特征在于,在pawn中放置所述射线扫描模块和所述用户手柄模型,pawn是系统的基类,在初始化后会一直常驻于内存中。