机器人动画表情实现方法、装置及存储介质
技术领域
[0001] 本
发明涉及机器人领域,特别是涉及一种机器人动画表情实现方法、装置、机器人及可读存储介质。
背景技术
[0002] 机器人的眼睛可以为显示屏,根据不同的状态在眼睛播放不同的图片来作为机器人的表情,实现与使用者的交互。然而表示表情的图片种类很少,与真正的人眼相差很大,并且不同表情之间的切换非常突兀,眼睛表情的表现不好,交互性能不佳。
发明内容
[0003] 本发明主要解决的技术问题是提供一种机器人动画表情实现方法、装置、机器人及可读存储介质,能够解决
现有技术中空闲状态下的机器人眼睛表情的交互性能不佳的问题。
[0004] 为了解决上述技术问题,本发明提供了一种机器人动画表情实现方法,该方法包括:接收播放动画表情的指令;解析存储动画表情的Java脚本对象符号JSON文件;根据解析结果在眼睛屏幕上播放动画表情。
[0005] 为了解决上述技术问题,本发明提供了一种机器人动画表情实现装置,该装置包括至少一个处理器,单独或协同工作,处理器用于执行指令以实现前述的机器人动画表情实现方法。
[0006] 为了解决上述技术问题,本发明提供了一种机器人,该机器人包括处理器和眼睛屏幕,处理器连接眼睛屏幕,处理器用于执行指令以实现前述的机器人动画表情实现方法。
[0007] 为了解决上述技术问题,本发明提供了一种可读存储介质,存储有指令,指令被执行时实现前述的机器人动画表情实现方法。
[0008] 本发明的有益效果是:通过接收播放动画表情的指令;解析存储动画表情的Java脚本对象符号JSON文件;根据解析结果在眼睛屏幕上播放动画表情,使用动画来表现眼睛的表情,与图片相比更加生动活泼,改善机器人眼睛的交互性能,同时使用JSON格式的文件存储动画表情,可以有效的减少动画表情占用的存储空间。
附图说明
[0009] 图1是本发明机器人动画表情实现方法一
实施例的流程示意图;
[0010] 图2是本发明机器人动画表情实现方法一具体实施例中动画表情各图层的示意图;
[0011] 图3是本发明机器人动画表情实现装置一实施例的结构示意图;
[0012] 图4是本发明机器人一实施例的结构示意图;
[0013] 图5是本发明可读存储介质一实施例的结构示意图。
具体实施方式
[0014] 下面结合附图和实施例对本发明进行详细说明。以下各实施例中不冲突的可以相互结合。
[0015] 如图1所示,本发明机器人动画表情实现方法一实施例包括:
[0016] S1:接收播放动画表情的指令。
[0017] 播放播放动画表情的指令可以是响应用户的交互命令而发送的,也可以是在没有用户交互的情况下自行发送的,例如机器人待机时自行播放动画表情。
[0018] S2:解析存储动画表情的Java脚本对象符号((JavaScript Object Notation,JSON)文件。
[0019] JSON是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。易于人阅读和编写。同时也易于机器解析和生成。
[0020] 动画表情包括多个图层。动画表情用于表示机器人的眼睛表情,图层可以包括组成眼睛的多个部分。例如,在本发明一具体实施例中,多个图层可以包括上眼皮、下眼皮、眼白、虹膜、晶状体、反光和高光,除了这些图层之外,可以进一步包括遮罩,用于遮盖眼睛屏幕除去图层之外的其他部分,如图2所示。
[0021] JSON文件包括多个关键
帧及变化参数。解析JSON文件以获取关键帧及变化参数作为解析结果。
[0022] 关键帧指图层运动或变化过程中的关键动作所处的那一帧。关键帧之间的帧可以被称为过渡帧。过渡帧的每个图层可以根据相邻关键帧及变化参数生成。动画表情的第一帧和最后一帧一般为关键帧。
[0023] 变化参数包括图层的变化模型。变化模型包括图形轨迹模型和/或图形速度模型。图形轨迹模型表示图层中的图形在屏幕上以怎样的轨迹运动,例如直线运动、圆弧运动等。
图形速度模型表示图层中的图形沿着轨迹运动过程中的速度变化情况,例如匀速运动、先
加速然后减速等。可以设置图形轨迹模型/图形速度模型的缺省值,例如可以设置图形轨迹模型的缺省值为直线运动,图形速度模型的缺省值为匀速运动。若图形轨迹模型/图形速度模型为缺省值,则可以被省去。
[0024] 每个关键帧包括至少一个图层的图形数据,图形数据包括对应的图层中至少一个图形的显示参数。显示参数包括图形的形状、
位置、
颜色、透明度中的至少一种。由于动画表情中的各图层可能不会同时运动/变化,运动/变化也不一定同步,因此可能出现某些图层运动/变化过程中的关键帧并不是其他图层的关键帧。对于只是部分图层的关键帧,可以不包括不作为关键帧的其他图层的图形数据。
[0025] S3:根据解析结果在眼睛屏幕上播放动画表情。
[0026] 具体的,可以利用关键帧及变化参数生成多个动画帧并在眼睛屏幕上依次播放动画帧。动画帧包括关键帧和关键帧之间的过渡帧。
[0027] 每个动画帧由多个图层组合而成,不同的图层可以具有不同的叠放顺序,靠上的图层会
覆盖靠下的图层。
[0028] 每个图层是利用对应的图形数据绘制的。若当前的动画帧是关键帧,则可以利用解析得到的图形数据直接绘制图层。若当前的动画帧不是关键帧或动画帧为关键帧但不包括图层的图形数据,图层的图形数据是利用相邻关键帧中的图层的图形数据及变化参数对应的插值器获取的。对于每个图层,相邻关键帧是指分别在当前的动画帧之前和之后且包括该图层的图形数据的两个关键帧。对于同一个动画帧,不同图层的相邻关键帧可能不同。
[0029] 通过本实施例的实施,使用动画来表现眼睛的表情,与图片相比更加生动活泼,改善机器人眼睛的交互性能,同时使用JSON格式的文件存储动画表情,可以有效的减少动画表情占用的存储空间。
[0030] 举例说明,JSON格式的动画表情文件包括上眼皮、下眼皮、眼白、虹膜、晶状体、反光和高光共7个图层,表现的表情动作为眼睛从中间向左移动然后回到中间,接着抬眼望天后回到中间。其中眼白、虹膜、晶状体、反光和高光同步运动,为便于描述,统称为眼球图层组。
[0031] 解析JSON文件得到的第1帧为初始的关键帧,眼睛位于中间;第二个关键帧为第a帧,眼睛位于向左移动的终点;第三个关键帧为第b帧,眼睛回到中间;第四个关键帧为第c帧,眼睛抬到最高点;第五个关键帧为第d帧,也是最后一帧,眼睛回到中间。
[0032] 在眼睛从中间向左移动再回到中间,即从第1帧到第b帧的过程中,上眼皮和下眼皮静止不动,眼球图层组运动,从第b帧到第d帧的过程中,所有图层运动。
[0033] 第1帧包括所有图层的图形数据,第a帧只包括眼球图层组的图形数据,第b、c和d帧都包括所有图层的图形数据。第1帧和第b帧之间的各帧(包括第a帧)的上眼皮和下眼皮图层的图形数据是根据第1帧和第b帧的上眼皮和下眼皮图层的图形数据及变化参数得到的。第1帧和第a帧之间的过渡帧中,眼球图层组的图形数据是根据第1帧和第a帧的眼球图层组的图形数据以及对应的变化参数的插值器计算得到的。第a帧和第b帧之间的过渡帧中,眼球图层组的图形数据是根据第a帧和第b帧的眼球图层组的图形数据以及对应的变化参数的插值器计算得到的。第b帧和第c帧之间的过渡帧中,每个图层的图形数据是根据第b帧和第c帧的对应图层的图形数据以及变化参数的插值器计算得到的。第c帧和第d帧之间的过渡帧中,每个图层的图形数据是根据第c帧和第d帧的对应图层的图形数据以及变化参数的插值器计算得到的。
[0034] 以第c帧和第d帧之间的过渡帧e中上眼皮图层位置参数为例说明图形数据的计算过程。利用第c帧和第d帧之间的上眼皮图层的图形速度模型确定上眼皮图层的运动速度插值器x=f(n),其中n表示帧号,x表示利用运动速度插值器计算得到的等效时间;并利用第c帧和第d帧中上眼皮图层的位置参数以及上眼皮图层的图形轨迹模型确定上眼皮图层的运动轨迹插值器y=g(x),y表示位置,x表示等效时间。将n=e代入运动速度插值器求出xe=f(e),再将xe代入运动轨迹插值器求出ye=g(xe),ye即为过渡帧e中上眼皮图层的位置参数。
[0035] 可以分别为一个动画帧绘制所有图层后组合成为该动画帧,也可以一次性绘制多个动画帧中的多个图层,然后分别将同一动画帧中的图层进行组合,在此不做限制。
[0036] 如图3所示,本发明机器人动画表情实现装置一实施例包括:处理器110。图中只画出了一个处理器110,实际数量可以更多。处理器110可以单独或者协同工作。
[0037] 处理器110控制机器人动画表情实现装置的操作,处理器110还可以称为CPU(Central Processing Unit,中央处理单元)。处理器110可能是一种集成
电路芯片,具有
信号序列的处理能
力。处理器110还可以是通用处理器、
数字信号序列处理器(DSP)、
专用集成电路(ASIC)、现成可编程
门阵列(FPGA)或者其他
可编程逻辑器件、分立门或者晶体管逻辑器件、分立
硬件组件。通用处理器可以是
微处理器或者该处理器也可以是任何常规的处理器等。
[0038] 处理器110用于执行指令以实现本发明机器人动画表情实现方法任一实施例以及不冲突的组合所提供的方法。
[0039] 如图4所示,本发明机器人一实施例包括:处理器210和眼睛屏幕220,处理器210连接眼睛屏幕220。
[0040] 处理器210控制机器人的操作,处理器210还可以称为CPU(Central Processing Unit,中央处理单元)。处理器210可能是一种集成电路芯片,具有信号序列的处理能力。处理器210还可以是通用处理器、数字信号序列处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0041] 处理器210用于执行指令以实现本发明机器人动画表情实现方法任一实施例以及不冲突的组合所提供的方法。
[0042] 如图5所示,本发明可读存储介质一实施例包括
存储器310,存储器310存储有指令,该指令被执行时实现本发明机器人动画表情实现方法任一实施例以及不冲突的组合所提供的方法。
[0043] 存储器310可以包括
只读存储器(ROM,Read-Only Memory)、
随机存取存储器(RAM,Random Access Memory)、闪存(Flash Memory)、
硬盘、光盘等。
[0044] 在本发明所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模
块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些
接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0045] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0046] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用
软件功能单元的形式实现。
[0047] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,
服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0048] 以上所述仅为本发明的实施方式,并非因此限制本发明的
专利范围,凡是利用本发明
说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。