CN115063515A - 一种模型缩放方法和装置 - Google Patents
一种模型缩放方法和装置 Download PDFInfo
- Publication number
- CN115063515A CN115063515A CN202210704449.0A CN202210704449A CN115063515A CN 115063515 A CN115063515 A CN 115063515A CN 202210704449 A CN202210704449 A CN 202210704449A CN 115063515 A CN115063515 A CN 115063515A
- Authority
- CN
- China
- Prior art keywords
- bone
- node
- target
- bone node
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种模型缩放方法和装置,通过在模型缩放前对模型中的骨骼节点进行预处理,具体包括,确定针对第一骨骼节点的第一层级关系,区分目标第一骨骼节点和其他第一骨骼节点,基于第一根骨骼节点、第一子骨骼节点、第二根骨骼节点和第二子骨骼节点计算出针对多个骨骼节点的缩放参数,并在目标第一骨骼节点控制器处于开启状态下,基于第一层级关系,由上至下按照缩放参数缩放所述目标模型,也避免了模型在缩放后部分骨骼与模型的相对位置偏移导致脱模,从而完善了模型自动缩放机制,进而提升了制作游戏动作文件的效率。
Description
技术领域
本发明涉及模型缩放技术领域,特别是涉及一种模型缩放方法、一种模型缩放装置、一种电子设备以及一种计算机可读存储介质。
背景技术
现代三维游戏中有大量的人物模型或者动画模型、动画资源,骨骼模型是应用最广泛的三维模型。在游戏中,骨骼模型及其相关的动画,在对应的人物美术资源中占较大比例。
目前,针对骨骼模型进行缩放,一般通过人工调节,或借助动画渲染和制作软件中的插件自动调节。若采用人工调节,在缩放的过程中往往存在一定的手工误差,导致需要反复校正,从而增高了研发成本,也降低了研发效率。若采用动画渲染和制作软件中的插件自动调节,由于相关技术未完善缩放机制,导致无法得到理想的缩放结果,从而导致缩放效率低下。
发明内容
本发明实施例是提供一种模型缩放方法、装置、电子设备以及计算机可读存储介质,以解决针对模型缩放过程中骨骼变型和脱离模型的问题。
本发明实施例公开了一种模型缩放方法,可以包括:
确定目标模型;所述目标模型包括多个第一骨骼节点;
确定多个所述第一骨骼节点之间的第一层级关系;
从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点;所述目标第一骨骼节点具有对应的目标第一骨骼节点控制器,所述目标第一骨骼节点控制器与针对所述其他第一骨骼节点的控制器不同;所述目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,所述其他第一骨骼节点包括第二根骨骼节点和第二子骨骼节点;
基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数;
基于所述第一层级关系,按照所述缩放参数缩放所述目标模型。
可选地,所述确定目标模型的步骤可以包括:
遍历第二骨骼节点,并确定多个所述第二骨骼节点之间的第二层级关系;
基于所述第二层级关系,从多个所述第二骨骼节点中确定出第三子骨骼节点;
从多个所述第二骨骼节点中确定出目标第二骨骼节点;所述目标第二骨骼节点包括第三根骨骼节点;
当与所述第三子骨骼节点对应的父骨骼节点存在其他子骨骼节点时,从所述第三根骨骼节点中确定出与所述父骨骼节点对应的目标第三根骨骼节点;
当所述其他子骨骼节点与所述目标第三根骨骼节点不具有关联关系时,将所述其他子骨骼节点添加至所述目标第三根骨骼节点下;
将所述第三根骨骼节点,和与所述第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型。
可选地,所述其他第一骨骼节点具有对应的其他骨骼,所述第一根骨骼节点具有对应的根特殊骨骼节点坐标,所述第一子骨骼节点具有对应的第一子骨骼节点坐标,所述第二根骨骼节点具有对应的第二根骨骼节点坐标,所述第二子骨骼节点具有对应的第二子骨骼节点坐标,所述基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数的步骤可以包括:
采用所述根特殊骨骼节点坐标和所述第一子骨骼节点坐标计算出针对所述第一根骨骼节点和所述第一子骨骼节点的第一偏移量;
采用所述第一偏移量和预设缩放比例计算出针对所述第一根骨骼节点和所述第一子骨骼节点在缩放后的第二偏移量;
采用所述第二偏移量和所述第一子骨骼节点坐标计算出针对所述目标第一骨骼节点的第一目标位置坐标;
采用所述第二根骨骼节点坐标和所述第二子骨骼节点坐标计算出,针对所述其他骨骼的初始长度属性值;
采用所述初始长度属性值和预设缩放比例计算出,针对所述其他骨骼的目标长度属性值;
采用所述目标长度属性值和所述第二子骨骼节点坐标,计算出针对所述其他第一骨骼节点的第二目标位置坐标;
采用所述第一目标位置坐标和所述第二目标位置坐标作为缩放参数。
可选地,在所述确定目标模型的步骤之后,还可以包括:
当所述第一骨骼节点存在约束关系时,解除所述约束关系。
可选地,所述约束关系包括约束种类和链接关系,所述基于所述第一层级关系,按照所述缩放参数缩放所述目标模型的步骤之后,还可以包括:
基于所述第一层级关系,按照预设顺序,将偏离所述第一目标位置坐标的所述目标第一骨骼节点,放置于所述第一目标位置坐标上,并将偏离所述第二目标位置坐标的所述其他第一骨骼节点,放置于所述第二目标位置坐标上;
当所述其他骨骼的长度属性值与所述目标长度属性值不同时,采用所述目标长度属性值作为所述其他骨骼的长度属性值;
采用所述约束种类和所述链接关系,恢复针对多个所述第一骨骼节点的约束关系。
可选地,在所述从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点的步骤之后,还可以包括:
采用所述第一层级关系排列所述目标第一骨骼节点,并当存在针对所述目标第一骨骼节点的特殊骨骼节点约束关系时,解除所述特殊骨骼节点约束关系。
可选地,所述方法还可以包括:
从多个所述第一骨骼节点中确定出不可缩放骨骼节点,并将所述不可缩放骨骼节点修改为可缩放骨骼节点。
本发明实施例还公开了一种模型缩放装置,可以包括:
目标模型确定模块,用于确定目标模型;所述目标模型包括多个第一骨骼节点;
第一层级关系确定模块,用于确定多个所述第一骨骼节点之间的第一层级关系;
特殊骨骼节点区分模块,用于从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点;所述目标第一骨骼节点具有对应的目标第一骨骼节点控制器,所述目标第一骨骼节点控制器与针对所述其他第一骨骼节点的控制器不同;所述目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,所述其他第一骨骼节点包括第二根骨骼节点和第二子骨骼节点;
缩放参数计算模块,用于基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数;
模型缩放模块,用于基于所述第一层级关系,按照所述缩放参数缩放所述目标模型。
可选地,所述目标模型确定模块可以包括:
第二层级关系确定子模块,用于遍历第二骨骼节点,并确定多个所述第二骨骼节点之间的第二层级关系;
子骨骼节点企业都不敢子模块,用于基于所述第二层级关系,从多个所述第二骨骼节点中确定出第三子骨骼节点;
目标第二骨骼节点确定子模块,用于从多个所述第二骨骼节点中确定出目标第二骨骼节点;所述目标第二骨骼节点包括第三根骨骼节点;
第三根骨骼节点确定子模块,用于在与所述第三子骨骼节点对应的父骨骼节点存在其他子骨骼节点时,从所述第三根骨骼节点中确定出与所述父骨骼节点对应的目标第三根骨骼节点;
子骨骼节点添加子模块,用于在所述其他子骨骼节点与所述目标第三根骨骼节点不具有关联关系时,将所述其他子骨骼节点添加至所述目标第三根骨骼节点下;
目标模型确定子模块,用于将所述第三根骨骼节点,和与所述第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型。
可选地,所述装置还可以包括:
约束关系解除模块,用于在所述第一骨骼节点存在约束关系时,解除所述约束关系。
可选地,所述其他第一骨骼节点具有对应的其他骨骼,所述第一根骨骼节点具有对应的根特殊骨骼节点坐标,所述第一子骨骼节点具有对应的第一子骨骼节点坐标,所述第二根骨骼节点具有对应的第二根骨骼节点坐标,所述第二子骨骼节点具有对应的第二子骨骼节点坐标,所述缩放参数计算模块可以包括:
第一偏移量计算子模块,用于采用所述根特殊骨骼节点坐标和所述第一子骨骼节点坐标计算出针对所述第一根骨骼节点和所述第一子骨骼节点的第一偏移量;
第二偏移量计算子模块,用于采用所述第一偏移量和预设缩放比例计算出针对所述第一根骨骼节点和所述第一子骨骼节点在缩放后的第二偏移量;
第一目标位置坐标计算子模块,用于采用所述第二偏移量和所述第一子骨骼节点坐标计算出针对所述目标第一骨骼节点的第一目标位置坐标;
第三偏移量计算子模块,用于采用所述第二根骨骼节点坐标和所述第二子骨骼节点坐标计算出,针对所述其他骨骼的初始长度属性值;
第四偏移量计算子模块,用于采用所述初始长度属性值和预设缩放比例计算出,针对所述其他骨骼的目标长度属性值;
第二目标位置坐标计算子模块,用于采用所述目标长度属性值和所述第二子骨骼节点坐标,计算出针对所述其他第一骨骼节点的第二目标位置坐标;
缩放参数确定子模块,用于采用所述第一目标位置坐标和所述第二目标位置坐标作为缩放参数。
可选地,所述约束关系包括约束种类和链接关系,所述装置还可以包括:
骨骼节点修正模块,用于基于所述第一层级关系,按照预设顺序,将偏离所述第一目标位置坐标的所述目标第一骨骼节点,放置于所述第一目标位置坐标上,并将偏离所述第二目标位置坐标的所述其他第一骨骼节点,放置于所述第二目标位置坐标上;
长度属性值替换模块,用于在所述其他骨骼的长度属性值与所述目标长度属性值不同时,采用所述目标长度属性值作为所述其他骨骼的长度属性值;
约束关系恢复模块,用于采用所述约束种类和所述链接关系,恢复针对多个所述第一骨骼节点的约束关系。
可选地,所述装置还可以包括:
特殊骨骼节点约束关系解除模块,用于采用所述第一层级关系排列所述目标第一骨骼节点,并当存在针对所述目标第一骨骼节点的特殊骨骼节点约束关系时,解除所述特殊骨骼节点约束关系。
可选地,所述装置还可以包括:
可缩放骨骼节点修改模块,用于从多个所述第一骨骼节点中确定出不可缩放骨骼节点,并将所述不可缩放骨骼节点修改为可缩放骨骼节点。
本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
本发明实施例包括以下优点:
本发明实施例,通过在模型缩放前对模型中的骨骼节点进行预处理,具体包括,确定针对第一骨骼节点的第一层级关系,区分目标第一骨骼节点和其他第一骨骼节点,基于第一根骨骼节点、第一子骨骼节点、第二根骨骼节点和第二子骨骼节点计算出针对多个骨骼节点的缩放参数,并在目标第一骨骼节点控制器处于开启状态下,基于第一层级关系,由上至下按照缩放参数缩放所述目标模型,也避免了模型在缩放后部分骨骼与模型的相对位置偏移导致脱模,从而完善了模型自动缩放机制,进而提升了制作游戏动作文件的效率。
附图说明
图1是现有技术中一种针对缩放前后模型骨骼的变化示意图;
图2是现有技术中另一种针对缩放前后模型骨骼的变化示意图;
图3是现有技术中又一种针对缩放前后模型骨骼的变化示意图;
图4是本发明实施例中提供的一种模型缩放方法的步骤流程图;
图5是本发明实施例提供的一种针对Biped类型节点的Biped类型节点控制器和针对非Biped类型节点的控制器的对比示意图;
图6是本发明实施例提供的一种针对第二骨骼层级关系的示意图;
图7是本发明实施例中提供的一种模型缩放装置的结构框图;
图8是本发明各实施例中提供的一种电子设备的硬件结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为使本领域技术人员更好的了解本发明实施例,以下对本发明实施例所涉及的技术名词进行说明。
3D Studio Max:3D Studio Max简称3D Max,为Discreet公司基于计算机系统开发的三维动画渲染和制作软件。
Bone骨骼:Bone骨骼为3D Max中的一种常规模型骨骼类型,其Bone骨骼的骨骼节点不属于特殊骨骼节点,Bone骨骼的骨骼节点的控制器不属于特殊骨骼节点控制器。
Biped骨骼:Biped骨骼为3D Max中的一种两足动物骨骼类型,也可以理解为是一套有层级关系,且包含IK/FK等约束的骨骼系统,其属于特殊骨骼节点,具有对应的特殊骨骼节点,特殊骨骼节点可以用于在特殊骨骼节点上生成约束。
IK/FK:IK(Inverse Kinematics,反向运动),是指一种在3D电脑绘图动画中使用的程序。此程序中,相互连结的物件(动力链)中之每一个节点的参数都会自动计算以达到期望的位置,基本上,IK是指当子骨骼节点移动时,父节点会如何被牵动其位移及旋转的行为。FK(Forward Kinematics,正向运动),是指模型中某部份的关节在指定的时间产生位移及旋转,也就是说,FK意指当父节点移动或旋转时,子骨骼节点如何受其影响。
体型模式:体型模式即为3D Max中特殊控制器处于开启状态下的模式,体型模式可以更改Biped的结构并使其结构适合角色网格,也可以用于在网格附加到正确的Biped关节位置后调整Biped,还可以用于在网格附加到运动文件中的正确姿态后调整Biped,以及定义Biped结构,和缩放模型。
骨骼约束:由于骨骼在体型模式中的行为类似于物体,因此也可以像物体一样受到约束,骨骼约束可用于限制姿态变换中的自由度,例如,人的手肘不能向后旋转,除非折断手臂,也不能向侧面旋转,手肘的前转和旋转在给定的范围内受到限制,即为限定约束。
控制器:控制器的用途是用于在轨迹栏中展示“链接”约束关键点,并可以在此处操纵这些关键点,特殊骨骼节点具有对应的特殊控制器,例如,在3D Max中,针对Biped骨骼节点具有专用的特殊控制器,区别于针对Bone骨骼节点的控制器。
在实际应用中,在制作游戏动作文件时,通常需要提前确定好模型的比例,依据模型来架设骨骼,并进行蒙皮,然后通过制作骨骼的关键帧动画来实现动作效果。但是在实际工作中,为了压缩研发周期,研发人员往往无法按照先制作模型,再架设骨骼并进行蒙皮,最后制作关键帧动画这样的流水线进行生产,模型制作和动作制作往往需要同时开始进行,这便容易导致最终得到的模型和实际用于制作骨骼动画的模型之间存在比例误差,为了避免重新制作复杂的关键帧动画,通常会采用人工调整模型比例的方式,即,通过对模型进行缩放来解决误差问题,但在针对模型比例的调整过程当中,研发人员往往需要进行如重新架设骨骼、重新蒙皮、并且需要研发人员手动导入动画等工作,这需要研发人员付出巨大的工作量,所以导致了针对模型比例进行调整需要付出极大的人力成本,并且,执行模型比例调整工作需要一定的技术门槛,这便导致人力成本的进一步提升。采用人工对模型比例进行调整除了需要付出极大的人力成本,在缩放的过程中往往会出现手工误差,导致需要在缩放过程中需要反复校正,从而不但进一步增高了研发成本,也降低了研发效率,所以,相关技术也希望能采用系统自动调整模型比例的方式实现对模型的缩放,但是由于相关技术未对模型缩放机制进行完善,导致无法得到理想的缩放结果,为使本领域技术人员更详细的了解相关技术的技术方案,以下用四个示例进行说明。
例一,在3D Studio Max中,软件自带的缩放功能只考虑到对Bone骨骼的宽度和高度进行放缩,而未考虑到对长度进行放缩,从而容易出现在对模型缩放后,Bone骨骼变形的情况,参考图1,图1是现有技术中一种针对缩放前后模型骨骼的变化示意图,一骨骼节点在未缩放前处于相对位置101,由于系统未考虑对Bone骨骼的长度进行放缩,导致在缩放后该骨骼节点出现在了相对位置102上,即,同一个骨骼节点在缩放后与模型主体的相对位置产生了位移,导致骨骼变型。
例二,在缩放过程中,由于骨骼和模型缩放比例不匹配,或者,未对Biped骨骼在体型模式下进行放缩,所以导致之前和骨骼绑定好的模型节点出现了偏移,参考图2,图2是现有技术中另一种针对缩放前后模型骨骼的变化示意图,模型节点201在缩放前与人物模型相连接,但在缩放后,模型节点202已与人物模型脱离。
例三,在缩放过程中,针对受位置约束或层级约束绑定的骨骼,如用于约束子骨骼的父骨骼,父骨骼的位移/尺寸往往影响着子骨骼的位移/尺寸,所以含约束关系的骨骼,缩放后位置和尺寸会出现偏移,例如,父骨骼为A,子骨骼为B,A约束B,B受约束于A,若A缩小0.5倍,则预期B也应该缩小0.5倍,但现有插件忽略了层级关系,对所有的骨骼都进行了缩小,导致B实际只缩小了0.25倍,与预期目标不符。
例四,在缩放过程中,由于相关技术不会在体型模式下对骨骼进行缩放,所以在对Biped骨骼进行绑定时,无法保证保证绑定正确,从而导致纯Biped骨骼以及含Biped骨骼的模型在缩放后部分骨骼位置存在偏移,参考图3,图3是现有技术中又一种针对缩放前后模型骨骼的变化示意图,一骨骼在未缩放前处于位置301,由于系统未在体型模式下对骨骼进行缩放,导致在缩放后该骨骼出现在了位置302上。
参照图4,示出了本发明实施例中提供的一种模型缩放方法的步骤流程图,具体可以包括如下步骤:
步骤401,确定目标模型;所述目标模型包括多个第一骨骼节点;
步骤402,确定多个所述第一骨骼节点之间的第一层级关系;
步骤403,从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点;所述目标第一骨骼节点具有对应的目标第一骨骼节点控制器,所述目标第一骨骼节点控制器与针对所述其他第一骨骼节点的控制器不同;所述目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,所述其他第一骨骼节点包括第二根骨骼节点和第二子骨骼节点;
步骤404,基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数;
步骤405,基于所述第一层级关系,按照所述缩放参数缩放所述目标模型。
在具体实现中,本发明实施例可以应用于针对模型缩放的系统中,例如,3D Max三维动画渲染和制作软件,模型缩放系统可以具有由于展示模型的用户界面,该用户界面中可以存在一个或多个目标模型,目标模型可以为不与其他模型共用骨骼节点的独立模型。
本发明实施例可以确定出场景中的目标模型,目标模型可以包括多个第一骨骼节点。
在实际应用中,骨骼节点会具有对应的层级,多个骨骼节点之间会存在着层级关系,例如,节点A是第2层节点,而节点B是第3层节点,则可以将节点A称为父节点,节点B称为子骨骼节点,本发明实施例可以通过广度优先算法BFS遍历目标模型中的所有节点,从而确定多个第一骨骼节点之间的第一层级关系,因为BFS算法可以天然按照层次遍历,所以可以提高确定第一层级关系的效率,当然,本领域技术人员可以采用其他算法,如深度优先算法DFS遍历目标模型中的所有节点也是可行的,对此,本发明实施例不作限定。
本发明实施例的目标第一骨骼节点不同于其他其他第一骨骼节点,例如,在3DMax中Biped类型节点区别于非Biped类型节点,因为目标第一骨骼节点具有对应的目标第一骨骼节点控制器,该目标第一骨骼节点控制器不同于普通骨骼节点的控制器,例如,Biped类型节点具有对应的Biped类型节点控制器,非Biped类型节点具有针对非Biped类型节点的控制器,所以,若不对目标第一骨骼节点单独进行缩放操作,则会导致含有目标第一骨骼节点的目标模型在缩放后出现部分骨骼位置存在偏移的现象,所以需要对目标第一骨骼节点和其他第一骨骼节点的分类处理,所以,在确定出第一层级关系后,本发明实施例可以从多个第一骨骼节点中确定出目标第一骨骼节点,以及在目标模型中除目标第一骨骼节点以外的其他第一骨骼节点,目标第一骨骼节点具有对应的目标第一骨骼节点控制器,目标第一骨骼节点控制器与针对其他第一骨骼节点的控制器不同。
例如,在3D Max中,可以在目标模型的第一骨骼节点中确定出所有Biped类型节点,剩下的即可以为非Biped类型节点,如骨骼节点Bone、救助骨骼节点helper、可编辑网格骨骼节点Editable_mesh等等,Biped类型节点具有对应的Biped类型节点控制器,非Biped类型节点具有针对非Biped类型节点的控制器,参考图5,图5是本发明实施例提供的一种针对Biped类型节点的Biped类型节点控制器和针对非Biped类型节点的控制器的对比示意图,控制器501为针对Biped类型节点的Biped类型节点控制器,控制器502为针对非Biped类型节点的控制器。
本发明实施例的目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,而其他第一骨骼节点则可以包括第二根骨骼节点和第二子骨骼节点,即,第一根骨骼节点和第一子骨骼节点可以分别为目标第一骨骼节点的根节点和子节点,第二根骨骼节点和第二子骨骼节点可以分别为其他第一骨骼节点的根节点和子节点,例如,在对Biped和非Biped骨骼节点的分类后,可以通过第一层级关系从多个第一骨骼节点中确定出Biped骨架上的子骨骼节点和根骨骼节点,Biped根骨骼节点可以为Biped节点中具有对应目标第一骨骼节点控制器的节点,同理,可以通过第一层级关系从多个第一骨骼节点中确定出非Biped骨架上的子骨骼节点和根骨骼节点,非Biped根骨骼节点则可以为非Biped节点中具有对应控制器的节点。
由上可知,若在目标第一骨骼节点控制器关闭的情况下缩放模型,会导致特殊骨骼节点对应的特殊骨骼,以及含特殊骨骼节点的模型,在缩放后部分骨骼位置偏移,并且,由于骨骼的层级也会对骨骼的位置有所约束,父骨骼节点的位置的变化会带动子骨骼节点的位置的变动,若直接对模型整体进行缩放往往会导致部分骨骼脱离模型,另外,由于父节点的尺度变化也会影响子骨骼节点的尺度变化,直接对模型整体进行缩放往往会导致缩放后的模型的部分骨骼变型。在完成上述步骤后,本发明实施例可以基于第一根骨骼节点、第一子骨骼节点、第二根骨骼节点和第二子骨骼节点计算出针对多个骨骼节点的缩放参数,并在目标第一骨骼节点控制器处于开启状态下,基于第一层级关系,由上至下按照缩放参数缩放所述目标模型,例如,可以采用3D Max自带的缩放接口,在体型模式下,从第0层、第1层、第2层...的顺序按照缩放参数缩放所述目标模型。
本发明实施例,通过在模型缩放前对模型中的骨骼节点进行预处理,具体包括,确定针对第一骨骼节点的第一层级关系,区分目标第一骨骼节点和其他第一骨骼节点,基于第一根骨骼节点、第一子骨骼节点、第二根骨骼节点和第二子骨骼节点计算出针对多个骨骼节点的缩放参数,并在目标第一骨骼节点控制器处于开启状态下,基于第一层级关系,由上至下按照缩放参数缩放所述目标模型,也避免了模型在缩放后部分骨骼与模型的相对位置偏移导致脱模,从而完善了模型自动缩放机制,进而提升了制作游戏动作文件的效率。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在本发明的一个可选地实施例中,所述确定目标模型的步骤包括:
遍历第二骨骼节点,并确定多个所述第二骨骼节点之间的第二层级关系;
基于所述第二层级关系,从多个所述第二骨骼节点中确定出第三子骨骼节点;
从多个所述第二骨骼节点中确定出目标第二骨骼节点;所述目标第二骨骼节点包括第三根骨骼节点;
当与所述第三子骨骼节点对应的父骨骼节点存在其他子骨骼节点时,从所述第三根骨骼节点中确定出与所述父骨骼节点对应的目标第三根骨骼节点;
当所述其他子骨骼节点与所述目标第三根骨骼节点不具有关联关系时,将所述其他子骨骼节点添加至所述目标第三根骨骼节点下;
将所述第三根骨骼节点,和与所述第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型。
在实际应用中,制作模型的用户界面中可能包含多个(骨架)模型,在针对一个模型的缩放过程中,如果缩放到其他模型的部分骨骼会导致其他模型变型,但是,相关技术的缩放机制并没有对多个模型进行自动区分的机制,导致在场景中出现多个模型时,无法针对模型实现自动缩放,所以,本发明实施例需要确定用户界面中的目标模型,再对每个独立的目标模型单独进行缩放,从而达到整体缩放场景中所有目标模型的效果。
具体地,本发明实施例可以采用BFS算法遍历第二骨骼节点,并确定多个第二骨骼节点之间的第二层级关系,第二骨骼节点可以是用户界面中的所有骨骼节点,而第二层级关系可以是用于表达多个第二骨骼节点之间的层级关系。
例如,参考图6,图6是本发明实施例提供的一种针对第二骨骼层级关系的示意图,第二骨骼节点601位于第0层,第二骨骼节点602位于第1层,往后层级依次排序。
在确定出第二层级关系后,本发明实施例可以基于所述第二层级关系,从多个第二骨骼节点中确定出第三子骨骼节点,即,第三子骨骼节点可以为第二骨骼节点的子骨骼节点,例如,第二骨骼节点A位于第1层,第二骨骼节点B位于第2层,则第二骨骼节点B为第二骨骼节点A的子骨骼节点,第二骨骼节点A则为第二骨骼节点B的父节点。
本发明实施例还可以从多个第二骨骼节点中确定出目标第二骨骼节点,例如,在遍历用户界面中的所有骨骼节点后,可以从经遍历的骨骼节点中确定出Biped骨骼节点,其中,目标第二骨骼节点可以包括第三根骨骼节点,即,第三根骨骼节点可以为目标第二骨骼节点的根骨骼节点,在确定出第三根骨骼节点后,可以判断与第三子骨骼节点对应的父骨骼节点是否存在其他子骨骼节点,若是,则可以从第三根骨骼节点中确定与父骨骼节点对应的目标第三根骨骼节点,并在该其他子骨骼节点与目标第三根骨骼节点不具有关联关系时,将其他子骨骼节点添加至第三根骨骼节点下,即,该其他子骨骼节点与该父骨骼节点不关联同一个第三根骨骼节点时,将该其他子骨骼节点添加至与该父骨骼节点相同的第三根骨骼节点下,当所有的第三根骨骼节点完成上述操作时,则可以将第三根骨骼节点,和与该第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型。
例如,在遍历过程中,可以判断第二骨骼节点中哪些骨骼节点为Biped骨骼节点,若判定出存在Biped骨骼节点时,则可以将根Biped骨骼节点记录为数组skeleton=#(s1,s2,...sn),若不存在根Biped骨骼节点,则skeleton=#(root),即根骨骼节点为场景根骨骼节点,且场景中无Biped节点,即,Skeleton可以用于表达根Biped骨骼节点的数量。假设判定出某一子骨骼节点A对应的父骨骼节点B存在对应的其他子骨骼节点C,则需要先确定父骨骼节点B对应哪个根Biped骨骼节点,又假设与父骨骼节点B对应的根Biped骨骼节点为标号是s2的根Biped骨骼节点,而与子骨骼节点C对应的根Biped骨骼节点,为标号是s1的根Biped骨骼节点,则应该把子骨骼节点C添加至标号是s2的根Biped骨骼节点下,重复上述操作,直到遍历完所有的根Biped骨骼节点,即可认为,skeleton中包含了n个根Biped骨骼节点,其中,每个根Biped骨骼节点和与其具有关联关系的子骨骼节点都可以被视为一个目标模型。
本发明实施例,通过遍历第二骨骼节点,并确定多个所述第二骨骼节点之间的第二层级关系;
基于所述第二层级关系,从多个所述第二骨骼节点中确定出第三子骨骼节点;从多个所述第二骨骼节点中确定出目标第二骨骼节点;所述目标第二骨骼节点包括第三根骨骼节点;当与所述第三子骨骼节点对应的父骨骼节点存在其他子骨骼节点时,从所述第三根骨骼节点中确定出与所述父骨骼节点对应的目标第三根骨骼节点;当所述其他子骨骼节点与所述目标第三根骨骼节点不具有关联关系时,将所述其他子骨骼节点添加至所述目标第三根骨骼节点下;将所述第三根骨骼节点,和与所述第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型,在场景中出现多个模型时,自动识别场景中的多模型,从而实现了对场景中的所有模型整体进行缩放。
在本发明的一个可选地实施例中,所述其他第一骨骼节点具有对应的其他骨骼,所述第一根骨骼节点具有对应的根特殊骨骼节点坐标,所述第一子骨骼节点具有对应的第一子骨骼节点坐标,所述第二根骨骼节点具有对应的第二根骨骼节点坐标,所述第二子骨骼节点具有对应的第二子骨骼节点坐标,所述基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数的步骤包括:
采用所述根特殊骨骼节点坐标和所述第一子骨骼节点坐标计算出针对所述第一根骨骼节点和所述第一子骨骼节点的第一偏移量;
采用所述第一偏移量和预设缩放比例计算出针对所述第一根骨骼节点和所述第一子骨骼节点在缩放后的第二偏移量;
采用所述第二偏移量和所述第一子骨骼节点坐标计算出针对所述目标第一骨骼节点的第一目标位置坐标;
采用所述第二根骨骼节点坐标和所述第二子骨骼节点坐标计算出,针对所述其他骨骼的初始长度属性值;
采用所述初始长度属性值和预设缩放比例计算出,针对所述其他骨骼的目标长度属性值;
采用所述目标长度属性值和所述第二子骨骼节点坐标,计算出针对所述其他第一骨骼节点的第二目标位置坐标;
采用所述第一目标位置坐标和所述第二目标位置坐标作为缩放参数。
在本发明实施例中,其他第一骨骼节点可以具有对应的其他骨骼,第一根骨骼节点可以具有对应的根特殊骨骼节点坐标,第一子骨骼节点可以具有对应的第一子骨骼节点坐标,第二根骨骼节点可以具有对应的第二根骨骼节点坐标,第二子骨骼节点可以具有对应的第二子骨骼节点坐标,本发明实施例可以采用根特殊骨骼节点坐标和第一子骨骼节点坐标计算出针对第一根骨骼节点和第一子骨骼节点的第一偏移量;采用第一偏移量和预设缩放比例计算出针对第一根骨骼节点和第一子骨骼节点在缩放后的第二偏移量;采用第二偏移量和第一子骨骼节点坐标计算出针对目标第一骨骼节点的第一目标位置坐标;采用第二根骨骼节点坐标和第二子骨骼节点坐标计算出,针对其他骨骼的初始长度属性值;采用初始长度属性值和预设缩放比例计算出,针对其他骨骼的目标长度属性值;采用目标长度属性值和第二子骨骼节点坐标,计算出针对其他第一骨骼节点的第二目标位置坐标;采用第一目标位置坐标和第二目标位置坐标作为缩放参数,可选地,本发明实施例的缩放比例可以由用户预设,也可以由缩放系统根据历史数据自行预设。
例如,计算缩放参数,主要包含两类参数:一是每个Biped节点距离根骨骼节点的位置偏移量offset,便于缩放后调整每个节点的位置,保证和缩放前一致;二是bone骨骼的长度length属性值,缩放后bone骨骼的length值常常缩放失效,计算后可强制其按缩放比例缩放,使得缩放前后保持一致,具体地,初始时该节点的位置和根骨骼节点位置的偏移量originOffset=biped根骨骼节点位置坐标node.transform.pos-biped子骨骼节点的位置坐标bipedRoots.transform.pos;缩放后该节点位置和根骨骼节点位置的偏移量afterOffset=originOffset*用户预设缩放比例scale;缩放后该节点的位置坐标biped-afterPos=afterOffset+bipedRoots.transform.pos。初始时bone骨骼的长度length属性值为originlength=Bone根骨骼节点位置坐标node.transform.pos-Bone子骨骼节点的位置坐标lengthRoots.transform.pos;缩放后该bone骨骼的目标length属性值为afterlength=originlengtht*用户预设缩放比例scale;缩放后该bone骨骼节点的位置坐标Bone-afterPos=afterlength+lengthRoots.transform.pos。
在本发明的一个可选地实施例中,在所述确定目标模型的步骤之后,还包括:
当所述第一骨骼节点存在约束关系时,解除所述约束关系。
在实际应用中,一般而言,基于仿生学制作的骨骼模型如同生物骨骼一样,一些骨骼节点往往会存在约束关系用于约束多个目标物,由上可知,含约束关系的骨骼,缩放后位置和尺寸会出现偏移,所以,本发明实施例可以先遍历目标模型中的所有第一骨骼节点,判断第一骨骼节点中是否存在约束关系,并在第一骨骼节点中存在约束关系时,则可以解除针对第一骨骼节点的约束关系。
例如,在3D Max中,nodeA有位置约束,目标对象为nodeB,则记录:‘Position_Constraint’:nodeA,nodeB;将nodeA上的位置约束解绑,即,去除该位置上约束的控制器,即现在nodeB的位移并不会造成nodeA的位移。
本发明实施例可以通过在第一骨骼节点中存在约束关系时,则可以解除针对第一骨骼节点的约束关系,避免了模型在缩放过程中骨骼变形。
在本发明的一个可选地实施例中,所述约束关系包括约束种类和链接关系;所述基于所述第一层级关系,按照所述缩放参数缩放所述目标模型的步骤之后,还包括:
基于所述第一层级关系,按照预设顺序,将偏离所述第一目标位置坐标的所述目标第一骨骼节点,放置于所述第一目标位置坐标上,并将偏离所述第二目标位置坐标的所述其他第一骨骼节点,放置于所述第二目标位置坐标上;
当所述其他骨骼的长度属性值与所述目标长度属性值不同时,采用所述目标长度属性值作为所述其他骨骼的长度属性值;
采用所述约束种类和所述链接关系,恢复针对多个所述第一骨骼节点的约束关系。
在实际应用中,可能还会出现一些与缩放参数对应位置偏离的骨骼节点,所以,本发明实施例可以基于第一骨骼节所属的层级数,按照预设顺序,将偏离第一目标位置坐标的目标第一骨骼节点,放置于第一目标位置坐标上,并将偏离第二目标位置坐标的其他第一骨骼节点,放置于第二目标位置坐标上,例如,先将第0层的与缩放参数对应位置偏离的Biped骨骼节点,放置到Biped-afterPos上,并将与缩放参数对应位置偏离的bone骨骼节点,放置到Bone-afterPos上,再将第1层的与缩放参数对应位置偏离的Biped骨骼节点,放置到Biped-afterPos上,并将与缩放参数对应位置偏离的bone骨骼节点,放置到Bone-afterPos上以此类推。
在实际应用中,其他骨骼还可能会因为在缩放过程中未考虑长度属性变化导致在缩放后变型,所以,本发明实施例还可以在其他骨骼的长度属性值与目标长度属性值不同时,采用目标长度属性值作为其他骨骼的长度属性值,例如,在缩放后bone骨骼的length不为afterlength时,采用afterlength作为bone骨骼的length属性。
本发明实施例可以将偏离目标位置的骨骼节点放入至相应的目标位置坐标上,以保证所有的目标第一骨骼节点和其他第一骨骼节点不偏离目标位置,还可以在通过初始长度属性值计算出目标长度属性值后,然后强制按目标长度属性值对其他骨骼进行缩放,以保证缩放前后保持一致,避免因骨骼长度导致的模型变形。
在完成缩放后,为了恢复模型原有状态,本发明实施例可以恢复各骨骼节点的约束关系,具体地,本发明实施例的束关系可以包括约束种类和链接关系,例如,约束种类可以包括Link Constraint,Position Constraint,LookAt Constraint等约束,LinkConstraint是目标对象的缩放和位移都会影响被约束的节点的尺寸和位置的约束,Position Constraint约束/LookAt Constraint是目标对象的位移都会影响被约束的节点的位置的约束。而链接关系则可以用一个示例进行说明,A添加了一个位置约束,目标对象为B,约束种类:Position Constraint,链接关系即为A->B,即A受限于B,即A受到B的位置的约束,本发明实施例在解除约束关系时,可以记录下每个骨骼节点的约束种类和链接关系,在缩放完成后,可以基于约束种类和链接关系恢复模型中所有骨骼节点的约束关系,以使模型中各骨骼节点恢复到缩放前的状态。
在本发明的一个可选地实施例中,在所述从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点的步骤之后,还包括:
采用所述第一层级关系排列所述目标第一骨骼节点,并当存在针对所述目标第一骨骼节点的特殊骨骼节点约束关系时,解除所述特殊骨骼节点约束关系。
在本发明的一个可选地实施例中,所述方法还可以包括:
从多个所述第一骨骼节点中确定出不可缩放骨骼节点,并将所述不可缩放骨骼节点修改为可缩放骨骼节点。
在实际应用中,骨骼节点的类型具有多样性,对于不同骨骼节点的特有属性,在缩放后,有节点可能缩放失效,如Editable_mesh骨骼,这是因为有的骨骼类型在系统中默认是不可缩放的类型,所以,本发明实施例可以在模型缩放前,遍历第一骨骼节点中所有骨骼节点类型,预先将不可缩放的骨骼节点类型转化为可缩放节点类型。
本发明实施例通过从多个所述第一骨骼节点中确定出不可缩放骨骼节点,并将所述不可缩放骨骼节点修改为可缩放骨骼节点,从而保证了在模型缩放过程中,不会受到不可缩放骨骼节点的影像,避免了因不可缩放骨骼节点导致在缩放后骨骼变型,从而提高了针对模型的缩放效率。
由上可知,特殊骨骼节点因为具有目标第一骨骼节点控制器,所以,针对于整个模型解除第一骨骼节点的约束关系时,可能会有一些特殊骨骼节点未被解绑,所以,本发明实施例可以采用第一层级关系排列目标第一骨骼节点,遍历队列,并当存在针对目标第一骨骼节点的特殊骨骼节点约束关系时,解除所述特殊骨骼节点约束关系,以确保在缩放过程中所有的骨骼节点均不受约束影像,从而更进一步地完善了自动缩放机制。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明实施例中提供的一种模型缩放装置的结构框图,具体可以包括如下模块:
目标模型确定模块701,用于确定目标模型;所述目标模型包括多个第一骨骼节点;
第一层级关系确定模块702,用于确定多个所述第一骨骼节点之间的第一层级关系;
特殊骨骼节点区分模块703,用于从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点;所述目标第一骨骼节点具有对应的目标第一骨骼节点控制器,所述目标第一骨骼节点控制器与针对所述其他第一骨骼节点的控制器不同;所述目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,所述其他第一骨骼节点包括第二根骨骼节点和第二子骨骼节点;
缩放参数计算模块704,用于基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数;
模型缩放模块705,用于基于所述第一层级关系,按照所述缩放参数缩放所述目标模型。
可选地,所述目标模型确定模块可以包括:
第二层级关系确定子模块,用于遍历第二骨骼节点,并确定多个所述第二骨骼节点之间的第二层级关系;
子骨骼节点企业都不敢子模块,用于基于所述第二层级关系,从多个所述第二骨骼节点中确定出第三子骨骼节点;
目标第二骨骼节点确定子模块,用于从多个所述第二骨骼节点中确定出目标第二骨骼节点;所述目标第二骨骼节点包括第三根骨骼节点;
第三根骨骼节点确定子模块,用于在与所述第三子骨骼节点对应的父骨骼节点存在其他子骨骼节点时,从所述第三根骨骼节点中确定出与所述父骨骼节点对应的目标第三根骨骼节点;
子骨骼节点添加子模块,用于在所述其他子骨骼节点与所述目标第三根骨骼节点不具有关联关系时,将所述其他子骨骼节点添加至所述目标第三根骨骼节点下;
目标模型确定子模块,用于将所述第三根骨骼节点,和与所述第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型。
可选地,所述装置还可以包括:
约束关系解除模块,用于在所述第一骨骼节点存在约束关系时,解除所述约束关系。
可选地,所述其他第一骨骼节点具有对应的其他骨骼,所述第一根骨骼节点具有对应的根特殊骨骼节点坐标,所述第一子骨骼节点具有对应的第一子骨骼节点坐标,所述第二根骨骼节点具有对应的第二根骨骼节点坐标,所述第二子骨骼节点具有对应的第二子骨骼节点坐标,所述缩放参数计算模块可以包括:
第一偏移量计算子模块,用于采用所述根特殊骨骼节点坐标和所述第一子骨骼节点坐标计算出针对所述第一根骨骼节点和所述第一子骨骼节点的第一偏移量;
第二偏移量计算子模块,用于采用所述第一偏移量和预设缩放比例计算出针对所述第一根骨骼节点和所述第一子骨骼节点在缩放后的第二偏移量;
第一目标位置坐标计算子模块,用于采用所述第二偏移量和所述第一子骨骼节点坐标计算出针对所述目标第一骨骼节点的第一目标位置坐标;
第三偏移量计算子模块,用于采用所述第二根骨骼节点坐标和所述第二子骨骼节点坐标计算出,针对所述其他骨骼的初始长度属性值;
第四偏移量计算子模块,用于采用所述初始长度属性值和预设缩放比例计算出,针对所述其他骨骼的目标长度属性值;
第二目标位置坐标计算子模块,用于采用所述目标长度属性值和所述第二子骨骼节点坐标,计算出针对所述其他第一骨骼节点的第二目标位置坐标;
缩放参数确定子模块,用于采用所述第一目标位置坐标和所述第二目标位置坐标作为缩放参数。
可选地,所述约束关系包括约束种类和链接关系,所述装置还可以包括:
骨骼节点修正模块,用于基于所述第一层级关系,按照预设顺序,将偏离所述第一目标位置坐标的所述目标第一骨骼节点,放置于所述第一目标位置坐标上,并将偏离所述第二目标位置坐标的所述其他第一骨骼节点,放置于所述第二目标位置坐标上;
长度属性值替换模块,用于在所述其他骨骼的长度属性值与所述目标长度属性值不同时,采用所述目标长度属性值作为所述其他骨骼的长度属性值;
约束关系恢复模块,用于采用所述约束种类和所述链接关系,恢复针对多个所述第一骨骼节点的约束关系。
可选地,所述装置还可以包括:
特殊骨骼节点约束关系解除模块,用于采用所述第一层级关系排列所述目标第一骨骼节点,并当存在针对所述目标第一骨骼节点的特殊骨骼节点约束关系时,解除所述特殊骨骼节点约束关系。
可选地,所述装置还可以包括:
可缩放骨骼节点修改模块,用于从多个所述第一骨骼节点中确定出不可缩放骨骼节点,并将所述不可缩放骨骼节点修改为可缩放骨骼节点。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述模型缩放方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述模型缩放方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
图8为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、处理器810、以及电源811等部件。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元801可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器810处理;另外,将上行的数据发送给基站。通常,射频单元801包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元801还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块802为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元803可以将射频单元801或网络模块802接收的或者在存储器809中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元803还可以提供与电子设备800执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元803包括扬声器、蜂鸣器以及受话器等。
输入单元804用于接收音频或视频信号。输入单元804可以包括图形处理器(Graphics Processing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元806上。经图形处理器8041处理后的图像帧可以存储在存储器809(或其它存储介质)中或者经由射频单元801或网络模块802进行发送。麦克风8042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元801发送到移动通信基站的格式输出。
电子设备800还包括至少一种传感器805,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板8061的亮度,接近传感器可在电子设备800移动到耳边时,关闭显示面板8061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器805还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元806用于显示由用户输入的信息或提供给用户的信息。显示单元806可包括显示面板8061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板8061。
用户输入单元807可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元807包括触控面板8071以及其他输入设备8072。触控面板8071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板8071上或在触控面板8071附近的操作)。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器810,接收处理器810发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板8071。除了触控面板8071,用户输入单元807还可以包括其他输入设备8072。具体地,其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板8071可覆盖在显示面板8061上,当触控面板8071检测到在其上或附近的触摸操作后,传送给处理器810以确定触摸事件的类型,随后处理器810根据触摸事件的类型在显示面板8061上提供相应的视觉输出。虽然在图8中,触控面板8071与显示面板8061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板8071与显示面板8061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元808为外部装置与电子设备800连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元808可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备800内的一个或多个元件或者可以用于在电子设备800和外部装置之间传输数据。
存储器809可用于存储软件程序以及各种数据。存储器809可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器809可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器810是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器809内的软件程序和/或模块,以及调用存储在存储器809内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器810可包括一个或多个处理单元;优选的,处理器810可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。
电子设备800还可以包括给各个部件供电的电源811(比如电池),优选的,电源811可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备800包括一些未示出的功能模块,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种模型缩放方法,其特征在于,包括:
确定目标模型;所述目标模型包括多个第一骨骼节点;
确定多个所述第一骨骼节点之间的第一层级关系;
从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点;所述目标第一骨骼节点具有对应的目标第一骨骼节点控制器,所述目标第一骨骼节点控制器与针对所述其他第一骨骼节点的控制器不同;所述目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,所述其他第一骨骼节点包括第二根骨骼节点和第二子骨骼节点;
基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数;
基于所述第一层级关系,按照所述缩放参数缩放所述目标模型。
2.根据权利要求1所述的方法,其特征在于,所述确定目标模型的步骤包括:
遍历第二骨骼节点,并确定多个所述第二骨骼节点之间的第二层级关系;
基于所述第二层级关系,从多个所述第二骨骼节点中确定出第三子骨骼节点;
从多个所述第二骨骼节点中确定出目标第二骨骼节点;所述目标第二骨骼节点包括第三根骨骼节点;
当与所述第三子骨骼节点对应的父骨骼节点存在其他子骨骼节点时,从所述第三根骨骼节点中确定出与所述父骨骼节点对应的目标第三根骨骼节点;
当所述其他子骨骼节点与所述目标第三根骨骼节点不具有关联关系时,将所述其他子骨骼节点添加至所述目标第三根骨骼节点下;
将所述第三根骨骼节点,和与所述第三根骨骼节点具有关联关系的子骨骼节点作为一个目标模型。
3.根据权利要求1所述的方法,其特征在于,所述其他第一骨骼节点具有对应的其他骨骼,所述第一根骨骼节点具有对应的根特殊骨骼节点坐标,所述第一子骨骼节点具有对应的第一子骨骼节点坐标,所述第二根骨骼节点具有对应的第二根骨骼节点坐标,所述第二子骨骼节点具有对应的第二子骨骼节点坐标,所述基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数的步骤包括:
采用所述根特殊骨骼节点坐标和所述第一子骨骼节点坐标计算出针对所述第一根骨骼节点和所述第一子骨骼节点的第一偏移量;
采用所述第一偏移量和预设缩放比例计算出针对所述第一根骨骼节点和所述第一子骨骼节点在缩放后的第二偏移量;
采用所述第二偏移量和所述第一子骨骼节点坐标计算出针对所述目标第一骨骼节点的第一目标位置坐标;
采用所述第二根骨骼节点坐标和所述第二子骨骼节点坐标计算出,针对所述其他骨骼的初始长度属性值;
采用所述初始长度属性值和预设缩放比例计算出,针对所述其他骨骼的目标长度属性值;
采用所述目标长度属性值和所述第二子骨骼节点坐标,计算出针对所述其他第一骨骼节点的第二目标位置坐标;
采用所述第一目标位置坐标和所述第二目标位置坐标作为缩放参数。
4.根据权利要求1或2所述的方法,其特征在于,在所述确定目标模型的步骤之后,还包括:
当所述第一骨骼节点存在约束关系时,解除所述约束关系。
5.根据权利要求4所述的方法,其特征在于,所述约束关系包括约束种类和链接关系,所述基于所述第一层级关系,按照所述缩放参数缩放所述目标模型的步骤之后,还包括:
基于所述第一层级关系,按照预设顺序,将偏离所述第一目标位置坐标的所述目标第一骨骼节点,放置于所述第一目标位置坐标上,并将偏离所述第二目标位置坐标的所述其他第一骨骼节点,放置于所述第二目标位置坐标上;
当所述其他骨骼的长度属性值与所述目标长度属性值不同时,采用所述目标长度属性值作为所述其他骨骼的长度属性值;
采用所述约束种类和所述链接关系,恢复针对多个所述第一骨骼节点的约束关系。
6.根据权利要求1所述的方法,其特征在于,在所述从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点的步骤之后,还包括:
采用所述第一层级关系排列所述目标第一骨骼节点,并当存在针对所述目标第一骨骼节点的特殊骨骼节点约束关系时,解除所述特殊骨骼节点约束关系。
7.根据权利要求1所述的方法,其特征在于,还包括:
从多个所述第一骨骼节点中确定出不可缩放骨骼节点,并将所述不可缩放骨骼节点修改为可缩放骨骼节点。
8.一种模型缩放装置,其特征在于,包括:
目标模型确定模块,用于确定目标模型;所述目标模型包括多个第一骨骼节点;
第一层级关系确定模块,用于确定多个所述第一骨骼节点之间的第一层级关系;
特殊骨骼节点区分模块,用于从多个所述第一骨骼节点中确定出目标第一骨骼节点,以及在所述目标模型中除所述目标第一骨骼节点以外的其他第一骨骼节点;所述目标第一骨骼节点具有对应的目标第一骨骼节点控制器,所述目标第一骨骼节点控制器与针对所述其他第一骨骼节点的控制器不同;所述目标第一骨骼节点包括第一根骨骼节点和第一子骨骼节点,所述其他第一骨骼节点包括第二根骨骼节点和第二子骨骼节点;
缩放参数计算模块,用于基于所述第一根骨骼节点、所述第一子骨骼节点、所述第二根骨骼节点和所述第二子骨骼节点计算出针对多个所述骨骼节点的缩放参数;
模型缩放模块,用于基于所述第一层级关系,按照所述缩放参数缩放所述目标模型。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210704449.0A CN115063515A (zh) | 2022-06-21 | 2022-06-21 | 一种模型缩放方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210704449.0A CN115063515A (zh) | 2022-06-21 | 2022-06-21 | 一种模型缩放方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115063515A true CN115063515A (zh) | 2022-09-16 |
Family
ID=83202914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210704449.0A Pending CN115063515A (zh) | 2022-06-21 | 2022-06-21 | 一种模型缩放方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115063515A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690282A (zh) * | 2022-12-30 | 2023-02-03 | 海马云(天津)信息技术有限公司 | 虚拟角色的调整方法及装置 |
-
2022
- 2022-06-21 CN CN202210704449.0A patent/CN115063515A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690282A (zh) * | 2022-12-30 | 2023-02-03 | 海马云(天津)信息技术有限公司 | 虚拟角色的调整方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102476976B1 (ko) | 이미지 처리 방법 및 플렉서블 스크린 단말 | |
CN107967093A (zh) | 一种多段文本复制方法及移动终端 | |
CN107734179A (zh) | 一种消息提示方法、移动终端 | |
CN107872623A (zh) | 一种拍摄方法、移动终端及计算机可读存储介质 | |
CN109862258A (zh) | 一种图像显示方法及终端设备 | |
CN107943390A (zh) | 一种文字复制方法及移动终端 | |
WO2015131767A1 (en) | Video processing method and apparatus | |
CN110007837A (zh) | 一种图片编辑方法及终端 | |
WO2019179054A1 (zh) | 房屋立体化虚拟带看方法、装置、移动终端和存储介质 | |
CN108124059B (zh) | 一种录音方法及移动终端 | |
CN112035298A (zh) | 一种数据备份方法、装置、电子设备及存储介质 | |
CN108763317A (zh) | 一种辅助选取图片的方法和终端设备 | |
CN110007835A (zh) | 一种对象管理方法及移动终端 | |
CN108132752A (zh) | 一种文本编辑方法及移动终端 | |
CN107483836A (zh) | 一种拍摄方法及移动终端 | |
CN109542314A (zh) | 一种图片编辑方法及终端设备 | |
CN108681483A (zh) | 一种任务处理方法及装置 | |
CN108062196A (zh) | 一种播放进度的调节方法及移动终端 | |
CN110198413A (zh) | 一种视频拍摄方法、视频拍摄装置和电子设备 | |
CN109120800A (zh) | 一种应用程序图标调整方法及移动终端 | |
CN115063515A (zh) | 一种模型缩放方法和装置 | |
CN109144393A (zh) | 一种图像显示方法及移动终端 | |
CN108174110A (zh) | 一种拍照方法及柔性屏终端 | |
CN107992378B (zh) | 一种文件处理方法及移动终端 | |
CN109745699A (zh) | 一种响应触控操作的方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |