当前位置: 首页 > 专利查询>黄海波专利>正文

一种创建活动布娃娃的方法技术

技术编号:24518915 阅读:43 留言:0更新日期:2020-06-17 07:14
本发明专利技术公开了一种创建活动布娃娃的方法,包括:导入普通骨骼动画模型,在unity编辑器模式下创建一个新的物体puppetObj,获取普通骨骼动画模型的预制体,将该预制体复制一份作为物体slaveObj,该物体puppetObj作为物体slaveObj和普通骨骼动画模型的父物体;为物体slaveObj下的所有子物体添加刚体和可配置关节组件,获取所有的可配置关节组件,设置可配置关节组件的属性值,为物体slaveObj下所有的子物体添加关节同步模块,为物体slaveObj下所有的子物体添加物理碰撞器模块,设置动画控制状态机执行预设动画,观察角色与场景的交互情况对部分骨骼关节和碰撞体进行手动修正,完成创建。通过上述方案,本发明专利技术达到了减少游戏角色动作开发成本、周期的目的,在游戏开发领域具有很高的实用价值。

【技术实现步骤摘要】
一种创建活动布娃娃的方法
本专利技术涉及游戏开发领域,尤其是一种创建活动布娃娃的方法。
技术介绍
在游戏开发领域中,游戏角色动作的传统制作方法是通过动画师人工制作关键帧或者动态捕捉等技术制作动画,然后播放制作好的动画来表现其动作。这样的缺点在于,如果需要细致的和其他环境、物体的交互反馈表现,就需要考虑各种情况下角色部位可能出现的动作,并制作对应的动画,动画制作量和所需时间、成本等会非常之大。更重要的是,由于游戏的随机性,即使制作大量动画,也无法预测所有可能的情况,当这些情况发生时,角色要么无法反应(因为没有预先制作的对应动画),要么反应很不自然(使用相近动画作为临时替代)。目前主流的游戏引擎中提供有布娃娃系统,布娃娃系统是基于物理引擎的一种技术,由于布娃娃系统是通过物理引擎进行驱动,所以角色天然地能与其他角色以及环境物理实体进行良好的物理交互效果运算,从而产生丰富自然的互动反馈效果。但是游戏引擎中提供的布娃娃系统只对角色的物理骨骼关节的连接进行了模拟用于表现角色的受力表现,导致布娃娃技术一直局限于表现处于昏迷状态的角色或人物尸体等没有自主活动能力的物体。
技术实现思路
本专利技术的目的在于提供一种创建活动布娃娃的方法,基于现有布娃娃系统的思想创建一种基于物理引擎、能自行运动且可以被人为控制的活动布娃娃,主要解决现有技术中存在的角色动作开发成本大、周期长的问题。为了实现上述目的,本专利技术采用的技术方案如下:一种创建活动布娃娃的方法,包括以下步骤:(S1)导入普通骨骼动画模型;(S2)在unity编辑器模式下创建一个新的物体puppetObj,获取普通骨骼动画模型的预制体,将该预制体复制一份作为物体slaveObj;(S3)为物体slaveObj下的所有子物体添加刚体和可配置关节组件;(S4)获取所有的可配置关节组件,设置可配置关节组件的属性值;(S5)为物体slaveObj下所有的子物体添加关节同步模块;(S6)为物体slaveObj下所有的子物体添加物理碰撞器模块;(S7)设置动画控制状态机执行预设动画,观察角色与场景的交互情况对部分骨骼关节和碰撞体进行手动修正;(S8)完成活动布娃娃的创建。具体地,所述步骤(S2)还包括:设置puppetObj和slaveObj与普通骨骼动画模型的位置一样,设置puppetObj的为普通骨骼动画模型和slaveObj的父物体;设置slaveObj的Animator动画组件为禁用状态;设置普通骨骼动画模型和其所有子物体的层级对Unity摄像机不可见。具体地,所述步骤(S3)还包括:设置可配置关节组件的连接刚体为父物体上的刚体组件;设置可配置关节组件的x、y、z方向上的移动为锁定模式。具体地,所述步骤(S4)中的具体步骤为:使用GetComponentsInChildren函数获取步骤(S3)中添加的所有可配置关节组件,设置可配置关节组件的旋转驱动模式为RotationDriveMode.XYAndZ,设置angularXDrive和angularYZDrive的弹力参数、阻力系数、最大力量。更进一步地,所述弹力参数默认值为20000,阻力系数为200,最大力量值为5000。具体地,步骤(S5)中所述关节同步模块的主要功能是在角色运动中实时地(在系统更新函数FixedUpdate中)对关节的施力方向和大小进行控制。更进一步地,所述关节同步模块的工作流程为:a.获取关节同步模块所属物体上的可配置关节组件;b.关节同步模块初始化时,设置同步仿真物体的旋转方向为初始旋转角度值;c.当角色开始运动后,在unity更新回调方法update中获取同步仿真物体实时的旋转方向值;利用Unity提供的四元数取反函数对旋转方向值处理;将处理后的旋转方向值与步骤b中所述初始旋转角度值相乘获取当前角度的四元数差值;将当前角度的四元数差值设为所属父物体上的可配置关节组件的targetRotation属性的值。其中,所述同步仿真物体是关节同步模块所属物体在普通骨骼动画模型上相对应的物体。具体地,所述步骤(S6)的具体步骤:通过Unity新建一个物体为碰撞器对象,设置碰撞器对象的父物体为当前处理关节;设置碰撞器对象相对于父对象位置的属性值为Vector3.zero;设置碰撞器对象旋转方向的属性值为当前处理物体相对于碰撞器对象的方向;为碰撞器对象添加unity提供的碰撞体组件;设置碰撞体组件的方向为2,高度为当前关节和碰撞器对象之间的距离,中心位置的z值为高度的一半以及设置半径的初始默认值为0.04,该初始默认值可根据用户需要改变大小。具体地,所述步骤(S6)中对骨骼关节调节是指对弹力参数默认值、阻力系数、最大力量值的默认值进行修改,对碰撞体调节是指对碰撞体对象半径进行调节。与现有技术相比,本专利技术具有以下有益效果:通过本专利技术建立的活动布娃娃,生成特有物理模型对象,对物理模型对象添加可配置关节以及碰撞器对象,使得创建的活动布娃娃可以基于物理引擎对角色和其他物体接触造成的物理效果进行及时反馈,在游戏场景的交互过程中显得更加真实,减少了常规手段使用动作捕捉,绘制动画帧的高成本,周期长的问题。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需使用的附图作简单介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对保护范围的限定,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术的流程示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步说明,本专利技术的实施方式包括但不限于下列实施例。实施例该创建活动布娃娃的方法,包括以下步骤:(S1)将普通骨骼动画模型导入Unity中。(S2)使用Unity创建一个puppetObj,调用Unity的库函数PrefabUtility.GetCorrespondingObjectFromSource获取普通骨骼动画模型对应的预制体prefab,在调用库函数PrefabUtility.InstantiatePrefab将该预制体prefab复制一份作为slaveObj,设置puppetObj为骨骼动画模型和slaveObj的父物体;设置puppetObj对象和slaveObj的位置和骨骼动画模型的位置相同;使用GetComponentInChildren库函数获取slaveObj上动画组件并且设置为禁用;设置骨骼动画模型和骨骼动画模型下子物体的层级对Unity摄像机不可见。其中,该物体puppetObj作为物体slaveObj和普通骨骼动画模型的父物体。(S3)获取slaveObj,设slaveObj根节点的Transform为rootBoneTrans,将该值传参给递归方法addPuppetJointForRootTrans。本文档来自技高网...

【技术保护点】
1.一种创建活动布娃娃的方法,其特征在于,包括:/n(S1)导入普通骨骼动画模型;/n(S2)在unity编辑器模式下创建一个新的物体puppetObj,获取普通骨骼动画模型的预制体,将该预制体复制一份作为物体slaveObj;/n(S3)为物体slaveObj下的所有子物体添加刚体和可配置关节组件;/n(S4)获取所有的可配置关节组件,设置可配置关节组件的属性值;/n(S5)为物体slaveObj下所有的子物体添加关节同步模块;/n(S6)为物体slaveObj下所有的子物体添加物理碰撞器模块;/n(S7)设置动画控制状态机执行预设动画,观察角色与场景的交互情况对部分骨骼关节和碰撞体进行手动修正;/n(S8)完成活动布娃娃的创建,puppetObj物体为创建的活动布娃娃。/n

【技术特征摘要】
1.一种创建活动布娃娃的方法,其特征在于,包括:
(S1)导入普通骨骼动画模型;
(S2)在unity编辑器模式下创建一个新的物体puppetObj,获取普通骨骼动画模型的预制体,将该预制体复制一份作为物体slaveObj;
(S3)为物体slaveObj下的所有子物体添加刚体和可配置关节组件;
(S4)获取所有的可配置关节组件,设置可配置关节组件的属性值;
(S5)为物体slaveObj下所有的子物体添加关节同步模块;
(S6)为物体slaveObj下所有的子物体添加物理碰撞器模块;
(S7)设置动画控制状态机执行预设动画,观察角色与场景的交互情况对部分骨骼关节和碰撞体进行手动修正;
(S8)完成活动布娃娃的创建,puppetObj物体为创建的活动布娃娃。


2.根据权利要求1所述的一种创建活动布娃娃的方法,其特征在于,所述步骤(S2)还包括:设置puppetObj和slaveObj与普通骨骼动画模型的位置一样,设置puppetObj的为普通骨骼动画模型和slaveObj的父物体;设置slaveObj的Animator动画组件为禁用状态;设置普通骨骼动画模型和其所有子物体的层级对Unity摄像机不可见。


3.根据权利要求1所述的一种创建活动布娃娃的方法,其特征在于,所述步骤(S3)还包括:设置可配置关节组件的连接刚体为父物体上的刚体组件;设置可配置关节组件的x、y、z方向上的移动为锁定模式。


4.根据权利要求1所述的一种创建活动布娃娃的方法,其特征在于,所述步骤(S4)中的具体步骤为:使用GetComponentsInChildren函数获取步骤(S3)中添加的所有可配置关节组件,设置可配置关节组件的旋转驱动模式为RotationDriveMode.XYAndZ,设置angularXDrive和angularYZDrive的弹力参数、阻力系数、最大力量。


5.根据权利要求4所述的...

【专利技术属性】
技术研发人员:黄海波
申请(专利权)人:黄海波
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1