1、1引言针灸作为传统中医诊疗手段的重要组成部分,在形成、应用与发展过程中表现出鲜明的民族文化特征。但是,针灸诊疗手段会在治疗过程中对患者产生疼痛等危害。患者在进行针灸治疗时,对于新手医生会有很大的排斥感,这就导致很多新人中医长时间得不到实际的针刺练习,无法积累针灸治疗经验,不利于培养中医的针灸治疗水平。虚拟针灸系统可以有效解决这一难题。在虚拟针灸系统建设过程中,碰撞检测技术的应用能够有效保证虚拟场景真实性,因此,应当加强对虚拟检测技术的应用研究,保证虚拟画面流畅性,提高虚拟场景真实性,才能促进虚拟针灸系统为中医针灸诊疗方法教育过程提供更好的服务。2虚拟针灸系统2.1虚拟针灸系统介绍针灸学是在中医
2、理论指导下,研究经络、腧穴、刺法灸法,探讨运用针灸防治疾病规律的一门学科,相较于中医基础理论课程而言,针灸学是一门实践性较强的课程1。针灸针法指的是根据中医经络理论,将针具按照一定的角度刺入患者体内,通过捻转与提拉等手法刺激特定穴位,从而达到治疗疾病的目的。但是,传统的练习方法有两种,一种是在人体身上进行扎针练习,若是误取穴位或是针灸手法不准确,就会导致人体出现疼痛、内出血等不良反应,具备一定的危险性;另一种则是制作纸垫、棉团,在上面反复练习,但纸垫、棉团与人体的物理特性不同,完全无法体现出毫针刺入皮肤、肌肉和触及骨骼的不同力感2。无论哪种方法都会增加针灸练习的困难程度。虚拟现实技术(Virt
3、ual Reality,VR)利用计算机生成一种可对参与者直接施加视觉、听觉和触觉感受,并允许其交互地观察和操作虚拟世界的技术3。虚拟针灸系统就是将虚拟现实技术利用在针灸刺针练习过程中,将针刺训练进行仿真,中医在练习针灸治疗手法时,可以在虚拟世界中完成刺针练习,既能够有效避免针灸练习过程中对人体产生的伤害情况,又可以观察不同针刺手法下针具刺入皮肤的角度与深度,还可以通过力反馈技术感受针灸治疗过程中皮肤弹性对针具产生的阻力大小,有利于中医掌握针刺力度。2.2Unity 3D碰撞检测Unity 3D作为实时3D内容创造和运营平台,支持通过编写脚本代码控制物体模型等完成游戏、设计等动画开发过程。Un
4、ity 3D对于编程语言的包容性极强,包括C#、C+、Ja-vaScript等多种编程语言,由于C#语言更能体现Unity 3D软件的编程思想,所以本文中使用C#语言来编写脚本代码。碰撞检测技术作为虚拟针灸系统的关键技术,会直接影响虚拟针刺过程的真实程度。Unity 3D 碰撞检测的算法主要有以下两种包围盒算法4,即AABB包围盒以及OBB包围盒。两种包围盒算法的原理、特征、缺陷、应用等对比见表1。基于Unity3D虚拟针灸碰撞检测仿真吕珊珊张 伟*梁富娥刘东华顾 旋(甘肃中医药大学 信息工程学院,甘肃兰州730100)摘要:虚拟针灸系统能够为中医针灸治疗手法的练习过程提供便利,碰撞检测技术作
5、为虚拟针灸系统的关键技术,能够对针刺过程的运行画面真实度产生直接影响。为保证虚拟针灸碰撞检测运行画面的真实性,首先介绍了虚拟针灸系统与碰撞检测技术概况,然后基于U n i t y 3 D 平台对虚拟针灸碰撞检测进行了应用分析,实验表明虚拟针灸碰撞检测过程能够在保证模型碰撞与现实碰撞相同的情况下,保持很好的流畅性。关键词:U n i t y 3 D;虚拟针灸;碰撞检测中图分类号:R318.6;TP391.9文献标识码:A文章编号:1008-6609(2022)10-0004-03作者简介:吕珊珊(19 9 6),女,山东济南人,硕士研究生,研究方向为虚拟仿真、中医药研究。*通讯作者:张伟(19
6、8 1),男,甘肃庆阳人,副教授,硕士生导师,研究方向为虚拟仿真教学、医院信息化建设和中药方剂的数据挖掘等。基金项目:甘肃省教育厅创新基金项目,项目编号:2 0 2 2 B-113。电脑与电信基金项目-4DOI:10.15966/ki.dnydx.2022.10.003OBB包围盒算法具备方向任意性的特征,更适合针灸不同刺针角度的模拟,所以本文选择OBB包围盒算法。OBB包围盒算法在Unity3D中应用在较多的碰撞器中,包括 BoxCollider,Sphere Collider,Capsule Collider,Mesh Collider,Wheel Collider等。3虚拟针灸碰撞检测仿
7、真3.1模型设计准备本次实验中,选择较为流行的开发模式,涉及针具(毫针为例)以及人体模型的建立过程。首先,在Maya建模软件中,建立完整的毫针模型以及人体模型。现阶段,较为流行的手工建模方法主要包括NURBS和Polygon建模两种,由于Polygon建模方法可以使用任意的多边形面,适用于较为复杂的表面细节处加线,因此本次实验模型选择Polygon建模方法。其次,将完整的人体模型以及毫针模型保存为.Fbx 格式,即可直接导入至 Unity3D 软件中。通过编写脚本程序即可控制针灸模型与人体模型的运动过程。3.2虚拟场景设计将毫针与人体.Fbx模型放入Unity3D项目文件下的as-sets文件
8、夹下或者直接将模型拖入assets文件下,就可以在Unity3D-assets文件夹直接看到模型数据,将模型拖入场景中,根据人体与针灸的大小比例,在transform窗口下调整模型position、rotation和scale数据,就可以对模型的位置、角度以及大小比例进行调整,另外加上Unity3D中自带的plane模型,即可简单完成虚拟针灸场景构建。为缓解碰撞检测过程PC运行压力,本次实验中直接选择Unity3D自带材质球完成场景渲染工作。虚拟场景设计时,场景自带Main Camera组件以及Directional Light组件,为虚拟场景提供摄像机视野范围以及灯光照明功能。3.3碰撞检测
9、应用应用Unity3D 开发平台进行碰撞检测实验时,为防止毫针模型与人体模型在运行过程中出现下沉的现象,应当为模型添加刚体组件(rigidbody)。确定毫针模型为运动模型,将test1脚本程序挂在毫针模型上运行,test1脚本程序可以控制毫针的运动速度以及使用方向键控制运动方向,与穴位点触发碰撞检测之后,使穴位点显示红色。在实验设计中,为虚拟的三维针灸模型、人体模型以及暂时充当穴位点的球体模型添加相应的碰撞体组件,划分碰撞区域。对于复杂的模型,可以选择添加多个碰撞体组件的方式提高碰撞检测精确度。由于本次实验的针灸模型主要涉及毫针针尖与穴位的碰撞检测过程,所以在添加碰撞组件时仅选择单一的碰撞组
10、件,不会对模型进行物理分解,但需要对碰撞组件包围盒的位置及大小进行适当的调整,从而达到提高控制精度的目的。为针灸模型添加胶囊碰撞体后,根据针灸模型在空间坐标轴的位置以及比例设置包围盒的中心位置及大小参数,针灸 模 型 空 间 坐 标 位 置 position:X=3.98,Y=1.32,Z=2.16,scale:X=7.6,Y=10.4,Z=7.6。为使包围盒更加贴近针灸模型外轮廓形状,提高证碰撞检测过程的精确度,包围盒中心点位置参数需根据针灸模型的相对位置确定。当包围盒高度、方向参数设置为height=1,direction=Y-Axis时,包围盒位置参数应设置为position:X=0,Y
11、=0,Z=0.5,此时包围盒位置形状更加贴合针灸模型外部轮廓形状,如图1所示。图1针灸模型添加胶囊碰撞体组件碰撞检测脚本代码为:MonoBehaviour.OnCollisionEnter(Collision other)/进 入碰撞器5;void OnCollisionEnter(Collision collision)if(collision.gameObject.name=sphere)Destroy(collision.gameObject);if(collision.gameObject.tag=sphere2)collision.gameObject.GetComponent().
12、ma-terial.color=Color.red;为模型添加碰撞组件之后即可进行碰撞检测实验。在名称AABBOBB原理平行于坐标轴的最小六面体包含该对象且相对于坐标轴方向任意的最小的长方体优点构造简单,存储空间小方向任意性、紧密型好缺陷紧密型差数据计算量大应用Bounds 类Box colliderCapsule collider等表1AABB包围盒与OBB包围盒对比电脑与电信基金项目-5针灸test1脚本中,首先为针灸添加移动速度,在方向键控制毫针模型移动过程中,若毫针与标记穴位的球体模型产生碰撞时,根据脚本程序设定,应当在检测到碰撞时,穴位球体模型变为红色。4实验效果分析基于Unity3
13、D的虚拟针灸碰撞检测仿真实验运行中,使用者可以通过操纵方向键实现毫针模型的控制过程,当检测到毫针模型与穴位模型发生碰撞时,穴位模型可根据脚本设置变为红色,如图2所示。一般情况下,帧率维持在30FPS左右标志画面能够流畅运行,且数值越大标识画面越流畅。虚拟针灸碰撞检测仿真实验的运行时,运行帧率数据维持在73FPS左右,如图3所示,这就表示虚拟针灸碰撞检测仿真实验运行画面较为流畅。图2检测碰撞后穴位模型变红色图3虚拟针灸碰撞检测仿真运行数据5结语为有效解决针灸练习过程中使用铜人等真实模型无法观察针刺角度与深度以及真人练习时产生一定伤害的问题,应当将虚拟现实技术应用在针灸练习过程中。Unity 3D
14、对于模型以及编程语言具备强大的包容性,基于Unity 3D 引擎进行虚拟针灸碰撞检测仿真,能够较为便利地使用各类碰撞检测组件,检验模型的碰撞检测效果。经过多次调试,碰撞检测仿真过程运行效果良好,使用者可通过控制针灸模型运动方向,检验自身对穴位点正确位置的掌握程度,运行时画面流畅度也能够满足画面真实性的基本要求,能够为针灸练习人员提供良好的练习环境。参考文献:1李明月,张毅,孟向文,等虚拟现实技术在经穴定位教学中的探索与实践J湖南中医杂志,2 0 2 1,3 7(2):9 3-9 52 蒋峥峥,高瞻,顾翔,等面向远程触觉协作的虚拟针灸系统研究J 系统仿真学报,2 0 13,2 5(9):2 0
15、8 5-2 0 9 0 3 林华虚拟现实技术融合警务技能教学探讨性研究J 体育科学研究,2 0 19,2 3(2):8 2-8 54李政峰,王青霞,肖昱锋U n i t y 3 D 碰撞检测技术在电力设备虚拟装配中的应用J 科学技术创新,2 0 2 0(3 0):10 4-10 55朱喜基,冯振辉基于U n i t y 3 D 虚拟校园漫游碰撞检测的研究J 江苏科技信息,2 0 18,3 5(11):6 6-6 8 Simulation of VirtualAcupuncture Collision Detection Based on Unity3DLV Shan-shanZHANG Wei
16、*LIANG Fu-eLIU Dong-huaGU Xuan(College of information engineering,Gansu University of Chinese Medicine,Lanzhou 730100,Gansu)Abstract:Abstract:Virtual acupuncture and moxibustion system can provide convenience for the practice process of Chinese medicine acu-puncture and moxibustion treatment techniques.As the key technology of virtual acupuncture and moxibustion system,collision de-tection technology has a direct impact on the authenticity of the running picture of acupuncture process.In order t