CN1203418C - 一种在互联网上实现交互式动画系统的方法 - Google Patents

一种在互联网上实现交互式动画系统的方法 Download PDF

Info

Publication number
CN1203418C
CN1203418C CN 01130185 CN01130185A CN1203418C CN 1203418 C CN1203418 C CN 1203418C CN 01130185 CN01130185 CN 01130185 CN 01130185 A CN01130185 A CN 01130185A CN 1203418 C CN1203418 C CN 1203418C
Authority
CN
China
Prior art keywords
action
server
client
state
buffering
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.)
Expired - Fee Related
Application number
CN 01130185
Other languages
English (en)
Other versions
CN1430155A (zh
Inventor
利文劲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen City Music Dingxun Technology Co. Ltd.
Original Assignee
利文劲
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 利文劲 filed Critical 利文劲
Priority to CN 01130185 priority Critical patent/CN1203418C/zh
Publication of CN1430155A publication Critical patent/CN1430155A/zh
Application granted granted Critical
Publication of CN1203418C publication Critical patent/CN1203418C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种在互联网上实现交互式动画系统的方法。系统对在客户端上的两种不同的动作请求做出不同的处理方法:对于不会引起冲突的动作请求,直接把动作传到服务器,服务器再简单的转发给各个客户端来做出处理;否则,各客户端发起时统一上报到服务器,由其实时或定时做计算处理,把结果分发给各客户端,客户端平滑的向服务器的计算结果做同步,显示动画内容,并在客户端采用有效的缓冲行动来立即响应动作请求。本发明使动画系统对操作及时地做出响应,消除了多客户端对系统的影响,较好的克服了网络抖动的影响,客户端的动画效果具有很好的连贯性、平滑性和一致性,本发明可以在互联网QOS较差的状况下开发出流畅的动画应用系统。

Description

一种在互联网上实现交互式动画系统的方法
技术领域:
本发明涉及一种在互联网上实现交互式动画系统的方法,它用于在互联网QOS较差的状况下开发流畅的网上交互式动画系统。
背景技术:
现在互联网上稀少有交互式的网上动画应用系统。除了一些网上游戏外,基本还没有多媒体化、动画形式的网上应用系统。将来,互联网上的应用肯定是朝着多媒体、图形化、动画化、虚拟现实的方向发展的。随着宽带技术的逐渐成熟,现在互联网上传输多媒体图象、声音等信息已没什么问题,这为实现网上多媒体化应用打下了基础。但是,现在互联网的QOS(quality of service,网络服务质量)比较差,表现为传输数据带宽不能很好保证(宽带的发展使这个问题不太突出);传输时延大,在网络繁忙的时候经常时延达到200ms或更大;网络抖动大,有时还会出现网络阻塞。较差的网络质量使得互联网上难以顺畅的传送实时数据。而QOS在相当一段时间内是难以有很大改善的。QOS差给开发多媒体、动画效果的网上应用带来了很大困难。
现在运行在互联网上的动画应用(绝大多数是网络游戏)基本都是采用如图1所示的技术来实现各计算机之间的数据交互。其中client1…client n为系统在互联网上的多个客户端,server为通信服务器。请注意,在很多系统中server会和其中的某一个client在同一台计算机上,为描述方便不妨也把它划成两部分,其原理是一样的。当某个客户端用户进行一个操作时(比如下发一条命令,或点击鼠标键等),不妨假设是client 1发起的,则对该操作的处理流程是:先client 1对该操作做处理。client 1处理完后,把状态数据传给server(箭头1),然后client 1静止不动。server把收到的状态数据分发给其它客户端client 2…client n(箭头2)。Client 2…client n收到状态数据后,同步自己的数据为和client 1一样,然后回应答给server(箭头3)表明本客户端已完成数据同步,同时也静止下来。当server收取完了所有client 2…client n的应答后,通知各个客户端继续运行(箭头4)。一个用户操作经过4轮的网络传送过程后才处理完成。其中server只起到通信转发的功能,它不做计算。这是传统的、典型的网上动画应用系统计算机之间交互数据的处理技术。这种技术有如下缺点:
(1)系统对每次操作的响应都要经历4轮的网络传送(在传送2、3中还要以传输花费最长的时间来算),造成系统对操作的响应有延时。在网络好的时候,这问题不突出。但在网络繁忙,或者计算机之间网络组成比较复杂(比如经历了比较多的路由器节点)时,其响应的时延就能明显感觉出来,从而使用效果比较差。假设网络较差时时延到200ms,则用户每个操作的响应迟缓时间将达到800ms。
(2)每个操作都需同时等待多台客户端的应答,这样在客户端比较多的时候,很容易因某台客户端与服务器之间的网络延时大(可能网络忙、网络瞬间抖动或两计算机之间组网复杂引起的),而使得整个系统对操作的响应速度受到减慢。在客户端较多时出现网络抖动的概率是比较大的,因此一旦用户多起来,系统的运行效果就会很差。因此,这种技术开发的系统无法支持许多客户端同时使用。
(3)一旦发生网络抖动,系统就在画面中表现出来了,这种技术没有对网络抖动采取规避措施,造成动画效果经常一颤一抖的。
图1是传统的互联网动画应用系统对交互数据的处理方法。由于以上原因,在现在QOS较差的状况下采用这种技术难以开发出流畅、优秀的、支持多用户的网上动画应用来。虽然该技术能实时的保证各客户端运行状态在每个瞬间的一致性,在实时性要求很强的系统里,如实时战斗游戏,很多都采用这种技术,但在互联网QOS较差的状况下很多动画应用都无法采用它来开发。
实际上,在互联网上有很多很有应用前景、应用范围很广的应用并不要求要非常实时。比如动画聊天室系统,人物在上面能走动,能做各种各样的动作和表情,形象的显示谈话内容,这种系统不要求非常实时,不需要一个动作必须在很短的时间内必须完成,但要求动画做的很流畅、逼真,操作能及时得到响应,使人用起来觉得很好,而且需支持许多用户同时使用。类似的还有动画式的网上商场、动画式的网上学校等等,在未来的互联网上,将会有非常多这种虚拟现实的网上应用出现。在现在互联网QOS较差的状况下,采用传统的互联网数据处理技术是行不通的。
发明内容:
本发明的目的就是为了解决以上问题,提供一种在互联网上实现交互式动画系统的方法,以便在现在互联网QOS较差的状况下开发出流畅的网上动画应用系统。
为实现上述目的,本发明提出一种在互联网上实现交互式动画系统的方法,其特征是包括如下步骤:1)客户端接收用户输入的动作请求,判断该动作是会与其他动作发生冲突。2)对于不会与其它动作发生冲突的动作请求,发起动作的客户端把动作传到服务器,服务器再简单的转发给各个客户端,各个客户端对动作做出处理——包括计算和显示动画内容;其中发起动作的客户端可在上报动作前,或者在服务器把动作转发过来后对动作做出处理——包括计算和显示动画内容;也可以发起动作的客户端对动作做出处理的同时,直接把动作转发给其它客户端来处理——包括计算和显示动画内容。3)对于会与其它动作发生冲突的动作请求,各客户端发起时,统一向服务器上报,服务器定时的启动计算对动作请求进行处理,解决物体间行为、状态的冲突,计算出当时时刻物体应处的状态,把结果送给客户端;所有客户端都以服务器的计算结果为准,且客户端平滑的向服务器的计算结果做同步,显示动画内容。
在多数的动画系统开发中,在发起动作的客户端把动作传到服务器的同时,该客户端根据动作采用相应的缓冲行动,这样使客户端的操作请求得到及时的响应。
采用以上的方案后,系统中各个物体的冲突得以很好解决,客户端发起一个操作请求时不需等待其它客户端的应答,消除了多客户端对系统的影响,还因采用了客户端不断平滑同步服务器状态的技术使动画效果具有很好的连贯性和平滑性,较好的克服了网络抖动对系统造成的影响。采用这样的技术可以在现在互联网QOS较差的情况下来开发出流畅的动画应用系统。
如果服务器进行实时启动计算的处理,则可以达到更加实时的效果;如果客户端做出缓冲动作则能使用户发出的动作请求被立即得到响应,动画效果更平滑。
附图说明:
图1是传统的网上动画系统中客户端之间数据交互的处理技术示意图。
图2是本发明对不会引起冲突的动作的处理方法流程示意图。
图3是本发明对会引起冲突的动作在服务器端的处理流程示意图。
图4是本发明对会引起冲突的动作在客户端的处理流程示意图。
具体实施方式:
下面通过具体的实施例并结合附图对本发明作进一步详细的描述。
为描述的方便,先定义几个文中用到的名词:
物体:应用系统中的动画实物。本文只关心受操作者命令(包括点击鼠标、下命令等)使唤的实物,文中提到的物体也均指这些。
状态:应用系统中的物体所在的位置和其当时的情形。如系统中人物的位置和它所正在做的事情等。通过状态来唯一表示出物体当时的所有特征。
行为:状态的变迁。如人在行走,人伸手拿杯子等。
动作:驱动物体的状态发生改变,也即行为的驱动。如点击鼠标让小人走动等。
数据结构:存储有特定含义的数据的单元,它储存在计算机的存储器中。
本发明对两种不同的动作采用不同的方法来处理。在一个应用系统中,有些动作是和系统中本物体及其它物体的状态不会发生冲突的,也就是说这动作和其它的动作是无关系的(包括时间先后关系),如聊天室中某人物说话动作,它不会跟其他人的位置或动作发生冲突。又如人物做微笑表情等。对于这种动作,处理方法是客户端发起动作时,把动作传到服务器,服务器再简单的转发给各个客户端,各个客户端对动作做出处理。其中发起动作的客户端可在上报动作前,或者在服务器把动作转发过来后对动作做处理,如图2所示。有些系统甚至可采用发起动作的客户端直接把动作转发给其它的客户端处理,而不经过服务器转发的方法。
第二种动作是会和物体的状态发生冲突的,也就是说和其它的动作有关系的,比如人走路的动作(假设两个人位置不能重叠)、人拿杯子的动作(假设两个人不能同时拿一个杯子)等。对于这种动作,需要解决它们之间的冲突关系等,处理比较复杂。下文将对此种情况展开详细描述。为简便,下文所提到的动作无特别说明均指第二种动作,提到的状态也无特别说明的话均指与这种动作有关系的状态。
服务器为系统的计算中心。客户端发起操作动作请求时,立即向服务器汇报。服务器收到动作请求后,启动计算,检查新接收到的动作请求相对于物体当时状态而言是否有效,解决物体间行为、状态的冲突,计算出当时时刻各物体应处的状态,然后分发给各个客户端来同步。服务器也定时的进行运算,计算出各个定时时刻各物体的状态(这同样要解决冲突等问题),分发给各客户端。所有客户端都是以服务器的计算结果为准的,从而保证了各客户端行为的一致性。在一些系统中,可省去收到动作请求时立即进行计算的处理,只在定时计算时处理,这样减轻了服务器的负担,但实时效果受一定的减弱。服务器端的处理流程见图3。
在客户端,用户发起一个动作时(点击鼠标、下发一条命令等),客户端立即向服务器上报该动作,同时,在客户端马上根据动作请求让物体做出相应的缓冲行动。这需要解决缓冲行动与其它状态和行动的冲突问题。通过缓冲行动,保证了动作被实时得到响应。缓冲行动执行一段时间后,物体进入不断与服务器发过来的状态数据进行同步的过程,衔接到服务器计算出来的状态结果。平时,客户端接收到服务器的同步状态信息时,驱动物体的状态平滑的向服务器的状态来同步。以上是客户端所做的主要工作。缓冲行动要根据动作的特点来进行设计,使之很好的跟服务器计算出来的行动相配合。在一些系统中可省去客户端做缓冲动作的处理,这样整个系统比较简单,但对操作的响应就会有延时。客户端的处理流程见图4。
通过图2-4所示的方法,能开发出流畅的互联网交互式动画系统来。用户发出的动作请求能被及时得到响应,系统中各个物体的冲突也得以很好解决。客户端发起一个操作请求时不需等待其它客户端的应答,消除了多客户端对系统的影响。还因采用了客户端不断平滑同步服务器状态的技术使动画效果具有很好的连贯性和平滑性,较好的克服了网络抖动对系统造成的影响。
以下对应用上述方法时的一些技术细节进一步描述。
服务器接收来自客户端的动作请求。服务器通过一系列数据结构记录各物体的动作请求。服务器启动计算时,判断新接收到的动作请求相对于物体当时时刻所处的状态是否有效,若无效则丢弃该请求。如果有效,则根据定好的该类型请求的替代原则判断是否替代原来记录着的该物体同类型的动作请求(如果原来无记录,则直接记录该新请求)。动作请求的替代原则可为新代替旧、高优先级代替低优先级等。各物体记录的动作请求引导着物体的状态变化,它是每次服务器计算的依据。动作请求一直保留在数据结构中,一直到它终止。动作请求有四种终止的情况:一是该请求得以正常完成;二是该请求对于该物体当时状态而言是无效的;三是该请求与其它物体的状态或行为发生冲突或持续的发生冲突而被异常终止;四是被该物体新的同类型的请求代替。
服务器计算时,根据各个物体前一计算时刻所处的状态和各物体的动作请求,以及当前时刻距前一时刻的时间长短,计算出当前时刻各个物体应处的状态。计算时要解决各物体状态、行为之间的冲突,如防止两个物体发生位置重叠、同时操作一个只能被一人操作的物品等等,解决冲突的策略要根据实际动作的性质来定,如两人走路位置的冲突可采取离相交位置较远的一方静止下来让给较近一方,若一段时间冲突还不能消失则其放弃走路动作否则等冲突消失后继续前进的解决策略。每次计算完后各物体已终止的请求将从数据结构中删掉,未终止的仍继续保留下来,用于下一次的计算。服务器把计算结果分发给各个客户端来同步。
服务器在接收到客户端的动作请求时实时的启动计算和定时的计算,两种计算过程是一样的。一些系统可省掉实时计算的处理,这样可减轻服务器的负担,但对系统的实时性有一定的影响。定时启动计算并分发状态这一过程是必不可少的。
服务器定时计算时间的长短关系到客户端动画的显示效果,时间越短则客户端动画显示会越连贯、平滑,但服务器的计算量和通信量会越大,实际中需根据情况来选择恰当的时长。
客户端做的工作是不断同步服务器发过来的计算结果,显示动画内容。同时,在发起一个动作请求时,让相应物体做出恰当的缓冲行动,一段时间后过渡到同步服务器计算结果的正常行动过程。客户端为实现上面的处理过程,具体的实现方法有多种。下面以简单有效的目标状态方法来阐述客户端的具体处理过程和如何设计恰当的缓冲行动的技术细节。其它实现方法其原理是一样的,实现结果客户端完成的工作也是一样的,只是实现细节上有所不同。
客户端通过数据结构记录各个物体的当前状态和目标状态。客户端做的工作是不断的根据各个物体的当前状态和目标状态计算出每一时刻它应处的状态来,显示动画画面。目标状态是引导物体状态迁移的目标的状态,它的来源有两个:一个是服务器的状态同步,另一个是本客户端发起一个动作。客户端每收到服务器的状态同步信息时,相应的把同步信息中各个物体的状态作为它的目标状态,以引导客户端物体的状态向服务器的状态同步。当本客户端发起一个动作请求时,客户端立即把请求汇报给服务器,同时也修改所作用物体的目标状态(如何修改再后面的技术问题二将有详细的论述),并标识该物体进入缓冲行动期,这样物体马上做出缓冲行动而使动作及时被得到响应。缓冲行动为区别于物体正常动作的一种行动过程,它通常是以较慢的速度来进行状态变迁,或者做一系列的中间动作过程,所起的作用是对动作实时做出响应,并很好的过渡到一段时间后和服务器状态同步的正常行动过程。缓冲行动将会持续一小段时间,这段时间称之为缓冲行动期。在缓冲行动期里,该物体的状态将不和服务器的状态相同步,以防止动作发生抖动。缓冲期完后,物体恢复和服务器的状态同步。缓冲行动期的长短将在技术问题三中详细论述。比如在点击鼠标让人物走动时,小人可立即做出缓慢行走的缓冲行动,缓冲时间可定为1秒,经过1秒的较缓慢的行走后,小人不断同步服务器的状态而进入正常走路过程。又如点击小人去拿一杯子时,小人做出伸手的缓冲行动等等。
客户端不断的计算各个物体的状态,显示动画帧。有两种启动计算的方式,一种是定时启动计算。客户端定时根据各物体的目标状态和上一时刻的状态,计算出当前时刻物体应处的状态来,以显示动画画面。客户端定时的时长通常要比服务器的定时同步状态的时长小。第二种方法是事件驱动方法,事件包括收到服务器的定时同步信息和本客户端发起一个动作请求两种。每发生一个事件时启动计算。计算时根据各物体的目标状态,计算出一段时间里各个时刻所有物体的状态,作为显示动画画面的依据。这计算的时间的长短是这样定的:一直计算到所有非缓冲行动期的物体都到达了目标状态,所有缓冲行动期的物体或到达了目标状态,或执行完缓冲行动期+缓冲延续期的行动(缓冲延续期在后面技术问题六里将有详细的解释)为止。这里,就相当于假设网络将进入永远阻塞状态,来计算出所有时刻的状态来。第二种方法在正常情况下增加了许多无谓的计算,并且集中式的计算方式使客户端瞬间的负担加大,因此一般情况第一种方法比较优越。
计算时,对于非缓冲行动,因服务器已做了冲突处理,客户端可基本不做冲突处理。对于缓冲行动,需判断它是否与各物体的正常行动发生冲突,做出相应的冲突处理,通常的方法是暂停该物体的缓冲行动。
总而言之,客户端所做的工作是不断的计算各物体的状态,让物体向目标状态靠拢。目标状态来源有两个,一个是服务器发过来的状态同步信息,另一个是本客户端发起动作请求而进入缓冲行动期。在计算时要避免缓冲行动与正常行动发生冲突。根据计算的结果显示动画画面。客户端根据物体的动作类型作出恰当的缓冲动作,技术问题二将会详细讨论。
客户端有以下一些技术问题:
一、所有的缓冲行动都要可回退的。这点容易做到,如走路的缓冲行动的回退动作可为退回来走;伸手的回退动作可为把手缩回来等。回退动作在服务器计算某一动作请求时因请求被丢弃,或因发生状态冲突等原因而需客户端的缓冲行动退回来时用到,用到的机会比较少。
二、缓冲行动的策略问题。归纳起来有两种设计缓冲行动的策略。一种是动作请求发起后,把物体的目标状态直截了当的改为所请求的状态,然后缓冲行动期间物体采用比正常速度较慢的速度向请求状态变迁。这种缓冲策略通常用于位置发生移动的动作。这种缓冲策略的缺点是有可能在缓冲回退时发生与其它物体相冲突的现象,从而该方法适用于对冲突要求不非常高的动作。如点击小人走路,缓冲期间小人以较缓慢的速度向目标前进,而因小人之间偶然的发生少量位置重叠对系统的运行效果影响不大,因此可采用这种缓冲方法。但有一些动作是严格要求不能发生冲突的,另外有一些非位置变化的动作难以采用第一种缓冲策略,这时候,可选择第二种缓冲策略,即动作发起后,物体经历一连串的中间过渡状态,而这些状态是不会与其它物体的状态和行动发生冲突的。如小人去按一个进入其它房间的按钮,其缓冲动作可为把手伸向按钮的过程。这种缓冲策略在动作发起时目标状态为这一连串中间过渡状态的最后状态。
三、在缓冲行动期间,物体是不与服务器发过来的该物体的状态进行同步的,这样是为了防止物体在缓冲期间受服务器同步状态的干扰而产生动作来回移动的不良效果。缓冲期的长短比较灵活,第一种方法是设成定长,根据实际动作的特点来定,一般定的比较短,如1秒。当定时时长到或物体到达了目标状态时,缓冲期结束。第二种方法是不定长,这种方法主要用于第二种缓冲策略。该方法要在客户端上报动作请求的信息包里增加序号,服务器返回给该客户端的计算结果里带上最后处理到的序号,这样来表明服务器是否已处理了该动作请求。缓冲行动一直延续下去,直到该物体到达了目标状态,或者服务器处理完了该动作把计算结果发过来为止。需要说明一下,动作的缓冲期可在应用系统中根据实际动作的性质来灵活设计,甚至可以根据客户端与服务器之间的网络延时(采用测量出来的两机之间大多数情况的网络延时)来决定缓冲期长短及具体的缓冲行动。但主要采用以上两种方法。
四、对于前面说的第一种缓冲策略,为使得物体在缓冲行动完成后能很好的和往后的正常行动衔接起来,需缓冲行动的速度慢于正常行动,并且在缓冲期间动作的行走路径需不超过物体以正常速度在缓冲时长减去两倍网络延时的期间所行走路径,以保证缓冲期完成后,物体基本不出现回退的现象。这里的网络延时最好以网络较差时的延时来算,可用250ms。如小人走路的动作,若设缓冲时长为1秒,假设小人正常走路的速度为s,则1秒的缓冲行动里小人走的距离不要超过(1-0.25*2)*s。另外,为使速度也很好的衔接到正常的速度,缓冲行动的速度一般采用由慢渐快最终到达正常速度的方法。如小人在缓冲期间开始走的比较慢,后来慢慢加快,到达正常速度。
五、前面说的缓冲行动只是针对本客户端发起动作的物体,而对于在其它客户端发起的动作请求来说,物体需不需要在本客户端也经历一段缓冲行动呢?这需要根据动作的性质和实际效果来定。对于有些动作采不采用缓冲动作差异不明显的,则这些动作在非发起的客户端可不做缓冲动作;对于差异比较明显的动作,则最好也做缓冲动作。这种缓冲行动的做法又有两种,一种是在服务器计算时对该动作做缓冲行动,这种方法的优点是在客户端显示动画时不会发生冲突,因为客户端和服务器的行动是一致的。缺点是一定要服务器的缓冲行动要快于发起客户端所做的缓冲行动,缓冲期要短一些。另一种是服务器还按正常行动来计算,而在非发起动作的客户端做计算时增加该动作的缓冲行动。这种方法的特点刚好跟第一种相反,可以非发起的客户端的缓冲行动跟发起端一样,这样,发起动作和非发起动作的客户端对动作请求做出的行为响应就一致了,但因这样处理会使客户端的行动相对于服务器有少量的滞后,从而动画有可能发生少量的冲突。实际可根据动作的特点来选择处理方法。特别说明,文中其它地方(包括流程图)中所指的缓冲行动和缓冲行动期均指动作发起客户端对动作请求所做的缓冲行动。文中所提的正常行动均指除动作发起客户端所做的缓冲行动外的行动。
六、网络有可能会偶然发生阻塞,网络延时突然间变的非常大,这个时候就可能发生缓冲期已结束了一段时间,但服务器的同步数据还不到来的现象。对于第一种缓冲策略而言,如果不做技术处理,就有可能在这种情况下,出现物体按缓冲行动行走了很长的距离,而和服务器状态偏离很大的尴尬场面。为解决这问题,可采取如下两个技术处理方法:一是动作缓冲期结束时,如果物体还未到达目标状态,物体继续缓冲行动,在一段时间(这里称这段时间为缓冲延续期)里如果接收到了服务器的同步状态信息,则把物体的目标状态改为该同步状态,从而过渡到正常行动;如果缓冲延续期结束时还没接收到服务器的同步状态数据,则把物体的目标状态改为其当前状态,让物体静止下来,等待服务器的状态同步信息过来。缓冲延续期是为了让缓冲行动平滑的过渡到正常行动去,它的时长一般设成和服务器定时计算的时长一样。二是对于第一种缓冲策略的缓冲行动,在缓冲期间监视服务器的同步状态信息的到来情况,当同步信息尚未到来时,缓冲动作最好不要一直做下去,它最多延续最后一次同步信息到来时刻加上一次服务器定时同步时长的时间后静止下来,等待服务器的同步信息过来后继续缓冲行动。静止时缓冲期的时间也处于休眠停走状态,整个客户端就静止下来等待服务器的同步信息。之所以说最好,是指不做这样的处理也问题不大,因为缓冲期本身就是一段时间后会终止的,但加上这样的技术处理后会使系统有更好的运行效果。
另外需要说明的是,一些系统会采用服务器和其中一个客户端运行在同一台计算机上的方式,其原理也是一样的。这种方式下,服务器软件和客户端软件相互独立,它们各自持有自己的数据结构和计算过程,不发生干扰,工作过程和前述是一样的,只是之间的联系由其它客户端与服务器间的网络传输通信关系变为本计算机的两软件程序之间的通信关系。
本发明人应用本发明的方法,在互联网上开发了小范围试用的一套动画式的网上聊天实验系统,取得了很好的效果。本聊天系统和传统的互联网聊天室在形式上有很大不同。传统聊天室是在一种抽象的环境上聊天的。而本动画化聊天室则具有动画化、形象化的特点。在一间装饰的很舒适的房间里,有桌子、凳子、花盘等摆设。每个聊天的用户都对应着一个动画小人(动画小人的形象可由用户定制),动画小人在房里可走动,坐在凳子上,可做微笑、点头、摇头、转头、转身等表情或动作。小人说话时,如同漫画书中一样从嘴边弹出一个椭圆框形象的显示谈话内容。因为主要用于实验用,所以系统支持的功能比较简单。这种虚拟现实的聊天系统在形式上比起传统聊天室有了很大的飞跃,在上面聊天的感觉有很大的不同。
该聊天系统服务器端软件运行在PIII计算机Windows 2000操作系统上,客户端的计算机要求32M内存以上,运行Windows平台。有授权的客户端上互联网后在一个网页上点击一按钮,就会自动下载并运行客户端软件,它和服务器取得联系后进入聊天室系统。
本应用系统采用了本发明的方法处理客户端计算机之间的数据交互。
本系统的物体为聊天的各个小人,动作请求包括行走到某处、坐到某个凳子上两种。状态数据包括小人的位置、小人面向的方向和小人当时的姿势(站或坐)。
对于不会和别的动作发生冲突的动作请求,如说话、人物微笑、点头、摇头、转头、转身等,客户端每发起这些动作时在本客户端进行处理,然后把动作上传给服务器,服务器再简单的转发给其它客户端做处理。
对于会和别的动作发生冲突的动作请求,服务器在收到动作请求时,启动计算,判断请求相对于小人当时时刻的状态是否有效,解决小人之间的各种冲突,计算出当时时刻各小人的位置和情形来,然后分发给各个客户端同步。解决冲突的方法是离冲突点(包括行走时的相遇点和两个小人想坐的同一张凳子两种)较远的物体暂时静止下来,等待冲突消失,如果一段时间冲突消失了,则静止下来的小人继续执行原来的动作请求;如果一段时间还不消失,则终止该小人的动作请求,小人静止不动。平时服务器每0.5秒启动一次计算。在服务器的计算中,小人是不做缓冲行动的。
客户端发起动作请求时,立即向服务器汇报,同时进入缓冲行动期。因为本系统的动作都是位置变化型,所以都采用了第一种缓冲策略。当发起点击小人走到某一处或坐到某凳子上的动作时,客户端把小人的目标状态写为点击的位置和相应的人物情形(站或坐),小人进入缓冲行动期。缓冲行动时长固定设为1秒。在缓冲行动期间,小人先以1/4正常速度行动0.5秒,再以1/2正常速度行动0.5秒。缓冲行动期间判断缓冲行动是否与其它小人的位置发生冲突,若冲突则缓冲行动暂时不动。缓冲延续期设为0.5秒。平时,客户端处于非缓冲状态的小人不断的以正常速度向服务器发过来的同步状态迁移。客户端定时0.1秒做一次计算并显示动画帧。非发起动作的客户端不对动作做缓冲行动。
系统还有许多如计算小人当时应该面向的方向、小人进入聊天室前按门铃征求在线的人的同意等许多功能和技术处理,使系统做的更形象、逼真,这里不做赘述。另外,本套系统完全支持传统聊天室的功能,当点击系统中的“切换”按钮时,系统切换到传统的聊天室。
本套系统拿到网上多人一起聊天使用时,动画效果非常流畅、平滑、逼真,用起来感觉很好。应该说这种形式的聊天系统以及这种虚拟现实的网上应用具备有非常广阔的应用前景。
当然,本发明不只是可以应用于动画聊天系统。采用本发明开发出来的动画系统具备了流畅、响应及时的特点,动画效果很逼真,并能同时支持许多客户端,可用于开发许多类型的网上动画应用系统。本发明不能保证各个客户端运行状态的瞬间一致性,因此不适用于开发实时性要求非常强的网上应用,如实时战斗游戏等,但和传统技术一样,本技术也是严格保证了各客户端运行效果的一致性的。

Claims (11)

1、一种在互联网上实现交互式动画系统的方法,其特征是包括如下步骤:
1)客户端接收用户输入的动作请求,判断该动作是否会与其他动作发生冲突;
2)对于不会与其它动作发生冲突的动作请求,发起动作的客户端把动作传到服务器,服务器再简单的转发给各个客户端,各个客户端对动作做出处理——包括计算和显示动画内容;其中发起动作的客户端可在上报动作前,或者在服务器把动作转发过来后对动作做出处理——包括计算和显示动画内容;也可以发起动作的客户端对动作做出处理的同时,直接把动作转发给其它客户端来处理——包括计算和显示动画内容;
3)对于会与其它动作发生冲突的动作请求,各客户端发起时,统一向服务器上报,服务器定时的启动计算对动作请求进行处理,解决物体间行为、状态的冲突,计算出当时时刻物体应处的状态,把结果送给客户端;所有客户端都以服务器的计算结果为准,且客户端平滑的向服务器的计算结果做同步,显示动画内容。
2、如权利要求1所述的一种在互联网上实现交互式动画系统的方法,其特征是:在发起动作的客户端把动作传到服务器的同时,该客户端采用缓冲行动来立即响应操作请求。
3、如权利要求1所述的一种在互联网上实现动画应用的方法,其特征是:服务器通过一系列数据结构记录各物体的动作请求;服务器在启动计算时,判断新接收到的动作请求相对于物体当时时刻所处的状态是否有效,若无效则丢弃该请求,如果有效,则根据定好的该类型请求的替代原则判断是否替代原来记录着的该物体同类型的动作请求,如果原来无记录,则直接记录该新请求;动作请求一直保留在数据结构中,一直到它终止。
4、如权利要求1所述的一种在互联网上实现交互式动画系统的方法,其特征是:服务器计算时,根据各个物体前一计算时刻所处的状态和各物体的动作请求,以及当前时刻距前一时刻的时间长短,计算出当前时刻各个物体应处的状态;在计算时解决各物体状态、行为之间的冲突;每次计算完后各物体已终止的请求将从数据结构中删掉,未终止的仍继续保留下来,用于下一次计算;服务器把计算结果分发给各个客户端来同步。
5、如权利要求3所述的一种在互联网上实现动画应用的方法,其特征是:客户端接收到服务器的同步状态信息时,驱动处于非缓冲行动期的物体平滑的向服务器的状态同步。
6、如权利要求1或所述的一种在互联网上实现交互式动画系统的方法,其特征是:客户端不断的根据各个物体当前状态和目标状态计算出每一时刻它应处的状态来,显示动画画面;所述目标状态是引导物体状态迁移的目标的状态,它的来源有两个:一个是服务器的状态同步,另一个是本客户端发起的动作;客户端每收到服务器的状态同步信息时,相应地把同步信息中各个物体的状态作为它的目标状态,以引导客户端物体的状态向服务器的状态同步;当本客户端发起一个动作请求时,客户端在立即把请求汇报给服务器的同时,也修改所作用物体的目标状态,并标识该物体进入缓冲行动期,这样让物体马上做出缓冲行动而使动作及时被得到响应,客户端计算时避免缓冲行动与正常行动发生冲突。
7、如权利要求1所述的一种在互联网上实现交互式动画的方法,其特征是:客户端在根据各个物体当前状态和目标状态计算出每一时刻它应处的状态来并显示动画画面的启动方式有以下两种:一种是定时启动计算;客户端定时根据各物体的目标状态和上一时刻的状态,计算出当前时刻物体应处的状态来,以显示动画画面;客户端定时的时长比服务器的定时同步状态的时长小;第二种方法是事件驱动方法,事件包括收到服务器的定时同步信息和本客户端发起一个动作请求两种;每发生一个事件时启动计算;计算时根据各物体的目标状态,计算出一段时间里各个时刻所有物体的状态,作为显示动画画面的依据;这计算的时间的长短是这样定的:一直计算到所有非缓冲行动期的物体都到达目标状态,所有缓冲行动期的物体或到达了目标状态,或执行完缓冲行动期+缓冲延续期的行动为止;计算时,对于非缓冲行动,客户端可不做冲突处理;对于缓冲行动,需判断它是否与各物体的正常行动发生冲突,做出相应的冲突处理。
8、如权利要求2所述的一种在互联网上实现交互式动画系统的方法,其特征是:所述缓冲行动都是可回退的;缓冲行动的策略有以下两种:一种是物体在缓冲行动期间物体采用比正常速度慢的速度向请求状态变迁;第二种是动作发起后,物体经历一连串的中间过渡状态。
9、如权利要求2所述的一种在互联网上实现交互式动画系统的方法,其特征是:所述缓冲行动期间物体不与服务器发过来的该物体的状态进行同步;所述缓冲期的长短确定方法有如下三种:第一种方法是定成定长;第二种方法是不定长,在给客户端上报动作请求的信息包里加上序号,服务器返回给该客户端的计算结果里写上最后处理到的序号,这样来表明服务器是否已处理了该动作请求;缓冲行动一直延续下去,直到该物体到达了目标状态,或者接收到服务器处理完该动作后的计算结果发过来为止;第三种方法是根据客户端与服务器之间在多数情况下的网络延时来决定缓冲期长短及具体的缓冲行动。
10、如权利要求1所述的一种在互联网上实现交互式动画系统的方法,其特征是:对于在其它客户端发起的动作请求,根据动作的性质选择物体在本客户端是否也经历一段缓冲行动;如果需要经历缓冲行动,其做法有两种:一种是在服务器计算时对该动作做缓冲行动;另一种是服务器计算时不对该动作做缓冲行动,即还按正常行动来计算,而在非发起动作的客户端做计算时增加该动作的缓冲行动。
11、如权利要求1所述的一种在互联网上实现交互式动画系统的方法,其特征是:为防止网络阻塞对系统造成很大的影响,处理方法有两种:一是动作缓冲期结束时,如果物体还未到达目标状态,则继续缓冲行动,在一段称为缓冲延续期的时间里如果接收到了服务器的同步状态信息,则物体平滑的向服务器的状态同步;如果缓冲延续期结束时还没接收到服务器的同步状态数据,则让物体静止下来,等待服务器的状态同步信息过来;二是在缓冲期间监视服务器的同步状态信息的到来情况,当同步信息尚未到来时,缓冲动作最多延续最后一次同步信息到来时刻加上一次服务器定时同步时长的时间后静止下来,等待服务器的同步信息过来后继续缓冲行动;静止时缓冲期的时间也处于休眠停走状态。
CN 01130185 2001-12-30 2001-12-30 一种在互联网上实现交互式动画系统的方法 Expired - Fee Related CN1203418C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 01130185 CN1203418C (zh) 2001-12-30 2001-12-30 一种在互联网上实现交互式动画系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 01130185 CN1203418C (zh) 2001-12-30 2001-12-30 一种在互联网上实现交互式动画系统的方法

Publications (2)

Publication Number Publication Date
CN1430155A CN1430155A (zh) 2003-07-16
CN1203418C true CN1203418C (zh) 2005-05-25

Family

ID=4669809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 01130185 Expired - Fee Related CN1203418C (zh) 2001-12-30 2001-12-30 一种在互联网上实现交互式动画系统的方法

Country Status (1)

Country Link
CN (1) CN1203418C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345827B (zh) * 2008-08-26 2012-11-28 北京中星微电子有限公司 一种交互式动画播放方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7034834B2 (en) * 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
CN100416551C (zh) * 2006-06-23 2008-09-03 浙江大学 基于前次偏差的控制点平滑化方法
US8295684B2 (en) * 2007-10-08 2012-10-23 Sony Computer Entertainment America Inc. Method and system for scaling content for playback with variable duration
CN108854066B (zh) * 2018-06-21 2024-03-12 腾讯科技(上海)有限公司 游戏中行为状态处理方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345827B (zh) * 2008-08-26 2012-11-28 北京中星微电子有限公司 一种交互式动画播放方法及系统

Also Published As

Publication number Publication date
CN1430155A (zh) 2003-07-16

Similar Documents

Publication Publication Date Title
KR100711661B1 (ko) 액티브티 기반 협력을 위해 사용되는 분산 컴퓨터시스템에서 데이터 변경 요청의 우선순위를 결정하고데이터 일관성을 유지하기 위한 방법 및 장치
KR100722355B1 (ko) 동적 관리자가 장치된 컴퓨터 시스템에 의한액티브티-베이스 협력 방법 및 장치
Greenhalgh et al. Inside MASSIVE-3: Flexible support for data consistency and world structuring
US8689115B2 (en) Method and system for distributed computing interface
JP3694167B2 (ja) パーソナル会議方法及びシステム
EP1451672B1 (en) Rich communication over internet
KR20080025689A (ko) 데이터 공유가 행해지는 인스턴트 메시징
WO2004102885A1 (fr) Procede de representation d'une image virtuelle sur un dispositif de messagerie instantanee
Sung et al. Concurrency control in CIAO
CN1203418C (zh) 一种在互联网上实现交互式动画系统的方法
Kim et al. A global timestamp-based approach to enhanced data consistency and fairness in collaborative virtual environments
St. John et al. Supporting P2P gaming when players have heterogeneous resources
Trefftz System-wide constraints and user preferences in collaborative virtual environments
Greenhalgh Understanding the network requirements of Collaborative Virtual Environments
Broll Bringing people together-an infrastructure for shared virtual worlds on the internet
Bouras et al. Architectures And Protocols For Educational Virtual Environments.
Wedlake et al. Sailing the high seas with the NAVL virtual reality system
Herrtwich Summary of the second international workshop on network and operating system support for digital audio and video
Yamabiraki et al. Development and evaluation of a hybrid shared tele-haptic system
Trossen et al. Implementing the Shared Event Paradigm
Bouras et al. A platform for sharing educational virtual environments
WO2002037790A2 (en) Method and apparatus for improving interactive animation over a computer network
Huang et al. Mcast: A multicast multimedia communication software development platform
Kim et al. Toward enhanced data consistency in distributed virtual environments
Dit A COREA EASED PLATFORM AS COMMUNICATION SUPPORT FOR SYNCHRONOUS COLLABORATIVE LLLLLL S LGGLGLGGGGGGGGS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHENZHEN LEDINGXUN TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: LI WENJING

Effective date: 20120213

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518054 SHENZHEN, GUANGDONG PROVINCE TO: 518052 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20120213

Address after: 518052 Guangdong city of Shenzhen province Futian District City moving home Tsui Road Building C 2708

Patentee after: Shenzhen City Music Dingxun Technology Co. Ltd.

Address before: Shenzhen City, Guangdong Province saw building Nanyou 518054 Dragon Pavilion 22G

Patentee before: Li Wenjin

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050525

Termination date: 20121230