用于仿真中的物理交互的系统和方法

文档序号:6594945阅读:241来源:国知局
专利名称:用于仿真中的物理交互的系统和方法
用于仿真中的物理交互的系统和方法与相关申请的交叉引用本申请要求2008年7月22日提交的题为"Physics Interactions in a Simulation”的序列号为61/082,679的美国临时专利申请的权益,这里通过引用将该申请
完全并入。
背景技术
大规模多玩家在线(Massively Multiplayer online,“ΜΜ0”)游戏非常受欢迎, 其中一些游戏的玩家数目达到数十万人或甚至数百万人。诸如MMO之类的仿真中的虚拟对象的运动和物理交互是由开发者制定的规则来控制的。增强这种运动和交互的真实感从而增强玩家沉浸感的一种方式是使用物理仿真器或引擎,其根据预定(但可更改)的物理规律来控制预定的物理对象(physics object)的运动。物理引擎提供了增强状态的真实感。使用二维或三维中的规律,例如能量和动量的转换以及身体的弹性变形,物理对象往往看起来会以比现有系统中符合预期且逼真得多的方式来运动。

发明内容
系统和方法的实现方式涉及仿真中的物品如何变成物理对象(其随后根据物理引擎或仿真器中的规则来做出行为)并且还涉及如何应用规则来管理物理对象。在实现方式中,物理对象的交互是自然发生的,而不完全是由初始的固定规则集合来规定的。诸如MMO中的仿真中的物理对象是基于物理仿真来运动或经历任何其他输入的虚拟对象。这样,它们可以是为仿真定义的虚拟3维对象的更大群组的子集。影响这种物理对象的力量和事件可能从偶然的碰撞到大爆炸不等。不按照物理仿真的规则操作的对象在这里被称为非物理对象。在以下上下文中,单独使用术语“对象”可以涉及物理对象和非物理对象中的任一者或两者。在所述一些实现方式中,物理对象不仅是预定的-玩家可以创建物理对象(例如, 损坏一墙壁的玩家角色(player character)可导致墙壁碎片变成物理对象),并且玩家甚至可将其自己或其他玩家的玩家角色变成物理对象。作为具体示例,在在线多玩家游戏中,玩家角色可毁坏一墙壁并随后拾起一块水泥并将其推向门,使得门在接触时旋转打开。一组非玩家角色随后可攻击该玩家角色。玩家角色可回击,向非玩家角色投掷另一块水泥,从而将非玩家角色抛向许多方向。一个非玩家角色可能撞上桌子,从而把它撞得穿过屋子。在此场景中,水泥块是从墙壁生成的动态创建的物理对象。非玩家角色在被抛过空中时变成物理对象,并且桌子也是物理对象。协同且自然发生的效果可能是由这些物理对象的交互而引起的,其中效果不是预定的,而是由物理对象的属性本身的交互而引起的。作为示例玩家角色A将玩家角色B冻在一块冰中。玩家角色C利用电为该冰块充电。玩家角色A随后拾起该冰块,被电击,然后该冰块被毁坏,从而释放了玩家角色B。
为了完成这些协同且自然发生的效果,物理对象与基本参数相关联,例如大小、形状、密度、状况(例如是运动的还是不动的、被损坏的或者被毁坏的)、以及游戏效果(例如施加到物理对象的游戏机械特性)。物理对象可被“武器化”,在此情况下它们可用于攻击敌方玩家角色。音频和视觉效果,例如表面损坏、微粒和声音,可进一步伴随着物理对象。游戏环境在其对物理对象的使用程度方面可有所不同,从而在其随后的可破坏性方面可有所不同。诸如标志性建筑物之类的一些对象可能具有“硬几何性”,并且这种对象是不可动的并且不会破损的,但其也可表现出暂时的表面损坏。其他具有“软几何性”的对象如果被碰撞则可移动,并且甚至可被完全毁坏。这些类型的对象可随着时间而自修复。在玩家的指导下产生的副本(instance)可能是更可破坏的,因为其是意图作为用于给定的一个或一组玩家的私密并且独特的环境的。在这些情况下,副本可重置并且所有物理对象可被恢复到其原始状况,以供下一玩家重新体验。许多变化是可能的。例如,物理交互的类型对于不同游戏可以是不同的;一些可能需要很高水平的真实感,而其他的可能更多的是刻画卡通真实感。在一个方面中,本发明针对一种计算机可读介质,其包括用于使得电子设备中的处理器执行在仿真中管理虚拟3维对象的方法的指令。该方法包括以下步骤将仿真中的虚拟3维对象的子集定义为物理对象;为物理对象中的第一物理对象定义至少第一基本参数和第一状态,第一基本参数由第一值和第一类型表征;为物理对象中的第二物理对象定义至少第二基本参数和第二状态,第二基本参数由第二值和第二类型表征,其中第一类型不同于第二类型;定义第一物理对象和第二物理对象之间的至少一个交互,交互的结果至少部分取决于第一参数和第二参数以及第一状态和第二状态;以及向渲染器发送信号并且渲染对交互的结果的指示。本发明的实现方式可包括以下各项中的一个或多个。定义至少一个交互可由在第一对象与第二对象之间检测到碰撞的发生而引起。定义至少一个交互可由在第一对象或第二对象与由玩家角色或非玩家角色指挥的抛射体之间检测到碰撞的发生而引起。至少一个状态可从由以下各项构成的组中选择运动的、不动的、被损坏的、被毁坏的或附着的。仿真可以是多玩家在线游戏。第一物理对象或第二物理对象中的至少一个可以是玩家角色或非玩家角色。该方法还可包括将第一物理对象或第二物理对象中的至少一个定义为具有软几何性,其中如果具有软几何性的物理对象的状态是被损坏的,则该方法还包括利用至少两个物理对象或一物理对象和一非物理对象来替换所述物理对象。该方法还可包括将第一物理对象或第二物理对象中的至少一个定义为具有硬几何性,其中如果具有硬几何性的物理对象的状态是被损坏的,则该方法还包括在具有硬几何性的物理对象上渲染损坏效果。第一类型和第二类型可从由以下各项构成的组中选择重量、大小、形状、密度和传导性。交互的结果可按对象规则集合或查找表来确定。该方法还可包括从先前未被定义为物理对象的虚拟3维对象之一定义物理对象。所定义的物理对象可以是玩家角色。所定义的物理对象可具有被定义为武器的状态。定义至少一个交互可包括定义至少一个规则集合,规则集合与具有共同类型的基本参数的物理对象有关。该方法还包括可为物理对象中的至少一个定义至少一个游戏效果,其中如果触发发生,则游戏效果发生。该方法还可包括为物理对象中的至少一个定义至少一个音频或视觉效果,其中如果触发发生,则音频或视觉效果被渲染。在另一方面中,本发明针对一种计算机可读介质,其包括用于使得电子设备中的处理器执行在仿真中管理虚拟3维对象的方法的指令。该方法包括将仿真中的虚拟3维对象的子集定义为物理对象;为物理对象中的第一物理对象定义至少第一基本参数和第一状态,第一基本参数由第一值和第一类型表征;定义至少一个触发,其中在触发发生时,第一物理对象被从第一状态转变到第二状态,转变的结果至少部分取决于第一参数和第一状态;以及向渲染器发送信号并且渲染对转变的结果的指示。本发明的实现方式可包括以下各项中的一个或多个。触发可从由以下各项构成的组中选择玩家角色或非玩家角色接触第一物理对象、玩家角色或非玩家角色损坏第一物理对象、玩家角色或非玩家角色拾起第一物理对象、玩家角色或非玩家角色投掷第一物理对象、或者预定的剧本事件。定义至少一个触发可包括定义可由玩家角色、非玩家角色或虚拟对象引起的至少一个触发,并且还可包括针对触发事件定义至少一个限定器 (qualifier),其中定义至少一个限定器包括定义允许哪些玩家角色、非玩家角色或虚拟对象引起转变或者何时允许发生转变。仿真可以是ΜΜ0。在另一方面中,本发明针对一种计算机可读介质,其包括用于使得电子设备中的处理器执行在仿真中管理虚拟3维对象的方法的指令。该方法包括将仿真中的至少一个虚拟3维对象定义为非物理对象;定义至少一个触发,其中在触发发生时,将至少一个虚拟 3维对象转变到物理对象;以及向渲染器发送信号并且渲染对转变的结果的指示。本发明的实现方式可包括以下各项中的一个或多个。触发可从由以下各项构成的组中选择玩家角色或非玩家角色接触虚拟3维对象、玩家角色或非玩家角色损坏虚拟3 维对象、玩家角色或非玩家角色拾起虚拟3维对象、玩家角色或非玩家角色投掷虚拟3维对象、或者预定的剧本事件。定义至少一个触发可包括定义可由玩家角色、非玩家角色或虚拟对象引起的至少一个触发,并且还可包括针对触发定义至少一个限定器,其中定义至少一个限定器包括定义允许哪些玩家角色、非玩家角色或虚拟对象引起转变或者何时允许发生转变。在另一方面中,本发明针对一种计算机可读介质,其包括用于在仿真中管理虚拟3 维对象的系统,该介质包括以下模块数据库模块,用于存储关于多个虚拟对象的数据,该多个虚拟对象包括物理对象,这些对象一部分是由状态定义的;以及物理引擎模块,包括触发定义模块,用于定义对象从第一状态向第二状态的转变。本发明的实现方式可包括以下各项中的一个或多个。第一状态可以是非物理对象,第二状态可以是物理对象。在另一方面中,本发明针对一种计算机可读介质,其包括用于在仿真中管理虚拟 3维对象的系统。该介质包括以下模块数据库模块,用于存储关于多个虚拟对象的数据, 多个虚拟对象包括物理对象,这些物理对象一部分是由状态定义的;以及物理引擎模块,包括交互定义模块,用于定义物理对象之间或者物理对象与非物理对象之间的交互;以及对象规则集合,用于定义物理对象之间或物理对象与非物理对象之间的交互的结果。本发明的实现方式可包括对象规则集合可以是查找表。上述各种定义步骤可以在特定对象的开发期间执行,以及在玩游戏期间或对于他人的游戏发起期间执行。本发明的优点可包括以下各项中的一个或多个。物理对象不只是预定的,而是对象可以在玩游戏期间转变成物理对象。规则定义什么对象是物理对象,以及转变如何发生。 规则还定义物理对象彼此如何交互。由此得到的过游戏过程可以是协同且自然发生的,并且可以通向不可预料的结果。


图1示出了诸如多玩家游戏之类的仿真的示例性环境,并且还示出了物理对象可如何被产生并以自然发生方式与其他物理对象交互。图2示出了可用于实现诸如多玩家游戏之类的仿真的系统的逻辑图,其中包括客户端-服务器体系结构。图3是诸如物理对象之类的虚拟对象的部分数据结构。图4是用于实现物理对象交互的一种方法的流程图。图5是用于实现物理对象交互的另一种方法的流程图。图6是用于从非物理对象创建物理对象的方法的流程图。
具体实施例方式参考图1,示出了诸如多玩家游戏之类的仿真的示例性环境。环境可以各种各样的,例如可以是奇幻仿真、科幻仿真、太空仿真、真实世界仿真、城市仿真、末日仿真、超级英雄仿真、离线游戏,等等。图1的示例性仿真示出了若干个角色32、33、34和35,并且他们被示为穿过游戏环境20内的各种街道31和37。在图1中,角色32、33和35想要刻画的是由玩家控制的玩家角色(图中的“PC”)。他们与其他玩家的玩家角色以及与计算机控制的角色或者说非玩家角色(图中的“NPC”)相交互。角色34想要刻画的是由仿真或游戏引擎控制的非玩家角色。即,非玩家角色是由仿真在服务器级或通过客户端软件控制的,并且其以用于该非玩家角色的软件指令和数据集合所要求的方式来做出举动。玩家可通过点击或以其他方式激活非玩家角色或与之相关联的图标来与非玩家角色34交互。还示出了若干个城市特征,例如银行22、市政厅M、便利店沈以及私人住宅28。 这些特征将根据可应用的游戏环境而有所不同。城市特征与预定类型的几何性相关联,并且这些几何性部分定义了城市特征在其与物理对象交互时将如何反应。某些城市特征本身可以是物理对象。在图1中,银行22和市政厅对各自具有“硬”几何性,从而一般是不可移动且不会破损的,因为这种虚拟对象,例如标志性建筑物,是玩家交互所必需的并且需要存在以便连续地玩游戏。硬几何性结构和区域具有恒定的位置,并且其一般不会由于碰撞或损坏而改变位置。然而,在玩家角色、非玩家角色或其他虚拟对象尝试损坏这种硬几何性特征时,其可能表现出暂时的表面损坏,但是一般仍代表环境中的永久固定物。作为具体示例,恶徒玩家角色32可能尝试毁坏银行22以便抢劫它。玩家角色32可攻击银行22,导致其墙壁有裂缝和伤痕;然而,银行22不会被毁坏。在此示例中,银行22具有硬几何性,无论向它施加何种损坏,它都将保持在相同位置并且具有相同的结构。另一方面,便利店沈和私人住宅观各自具有软几何性,这在一种实现方式中意味着它们如果被损坏或碰撞则可移动,或者甚至能够被完全毁坏,因为对这些特征的破坏或损坏可以不过度地破坏玩游戏的情况下实现。其损坏或破坏甚至可导致从其构成部件创建物理对象。在一种实现方式中,当软几何性对象被毁坏时,它创建不同类型的残骸以便表达该损坏。残骸可以是暂时存在的微粒,以及可能持续的物理对象。在上述示例中,恶徒玩家角色32可进入银行22并且定位到出纳员的柜台后面沿着墙壁的保险库。恶徒玩家角色32可以朝着柜台射击,从而导致形成孔洞并且留下碎石。在此示例,即使银行22具有硬几何性,柜台也是软几何体,其在被损坏后会破损并且产生例如木头块形式的物理对象。当然,关于哪些特征具有软几何性以及哪些具有硬几何性的选择是完全任意的并且取决于开发者的要求。在一些实现方式中,希望使具有一定变化的所有对象具有相同类型的几何性。这样,通过玩游戏的举动,玩家可以获知对象如何被损坏以及哪些对象是可破损的。图1还示出了各种可能的物理对象,具体地是车辆36、公车38和墙壁42。墙壁 42具有软几何性,从而能够被损坏或毁坏。图1图示了这个方面,示出了在箭头47的大体方向上的一次冲击波或其他破坏力之后的毁坏形态的墙壁,具有不可分的成分42’、43和 45。墙壁42在破坏之前可能是一物理对象,而在检测到碰撞后,墙壁可能转化成了一物理对象。类似地,成分42’、43和45中的一个或全部可被标记或分类为物理对象,但它们不一定要标记或分类为物理对象。例如,墙壁成分42’可被分类为非物理对象,但成分43和45 可被分类为物理对象。墙壁成分43和45也可被武器化,即被分类或标记为可对另一玩家角色或非玩家角色造成损坏的武器。箭头47还可代表如下方向玩家角色35可在该方向上投掷成分43和45中的一者或两者以便打击非玩家角色34。车辆36和公车38也可以是物理对象,并且图1以非常示意性的方式示出了玩家角色32如何可在由箭头49指示的方向上投掷车辆36,从而使得车辆36打击银行22并且停止在由车辆36’指示的损坏或毁坏的形态中。冲击可以导致银行22的暂时表面损坏,但此损坏可迅速愈合并且可能不会影响这种硬几何性结构的操作。在一些情形中,物品和环境的破坏将是常见的;因此,对这些交互的处理成为了仿真和用户体验的重要部分。例如,具有超级恶徒或巨大怪物角色的玩家可能希望创建大量的碎石和车辆碎片。下面联系图3-5来论述物理对象的交互的这些和其他方面。图2示出了可用于实现诸如多玩家游戏之类的仿真的系统30的逻辑图。系统30 包括MMO或仿真客户端计算设备71以及MMO或仿真服务器64,它们通过网络48通信。客户端计算设备71包括一个或多个处理器44,处理器44经由网络卡46或经由具备网络能力的处理器(未示出)与网络48通信。客户端计算设备71运行有客户端软件,该软件使能与网络48和服务器64通信。客户端计算设备71包括至少一个输入设备67,输入设备67可包括键盘、鼠标、游戏控制器、触感控制器、触摸屏或任何其他可向计算机提供输入的设备。客户端计算设备71 还包括计算机可读介质69,例如硬盘驱动器、闪存、固态驱动器等等,其存储用于处理器44 的指令65,包括用于仿真(例如ΜΜ0)的客户端操作的指令。计算机可读介质69还可存储媒体文件,其中包括图形文件和电影文件。这些媒体文件也可在需要时从服务器64流传输。在一些实现方式中,某些媒体文件可被下载到客户端,尤其是那些经常被使用的,而其他的则可被保留在服务器处供以后流传输,以免使客户端系统混乱。某些媒体文件也可被缓存在客户端系统处,例如与玩家角色的当前游戏现场有关的那些媒体文件。客户端计算设备71还包括声音渲染器64,例如声卡,利用该声音渲染器64,与游戏声音有关的信号可被形成为适用于在声音设备68 (例如计算机扬声器)上播放的形式。另外,客户端计算设备71还包括视频渲染器66,例如一个或多个GPU或视频卡或两者兼有, 利用该视频渲染器66,与游戏视频有关的信号可被形成为适用于在视频设备72 (例如计算机显示器)上播放的形式。视频渲染器66还可包括例如集成的图形处理软件。仿真服务器64控制游戏,并且可以是一游戏服务器,该游戏服务器具有处理器63 并且运行游戏引擎和其他组件,其中包括用户界面、输入/输出组件等等。服务器64还包括诸如物理引擎60和虚拟对象58的数据库之类的模块,虚拟对象58的一个子集57是物理对象。这些组件或模块中的某些可在计算机可读介质62上实现,计算机可读介质62包括用于执行这些和其他处理的指令。计算机可读介质62还可包括媒体文件(包括电影和其他图形文件),用于下载或流传输到客户端计算设备71。物理引擎60可进一步包括若干个模块或组件,其中每一个可存储在相同或不同的计算机可读介质62上。物理引擎的一些部分可包括可从加州旧金山的Havok公司获得的物理仿真器解决方案。首先,触发定义模块55可用于确定和定义在何种情况下对象状态被允许变化,例如从是非物理对象变成是物理对象。限定器定义模块56可用作触发定义模块55的一部分,用于确定和限制允许什么虚拟对象(例如什么玩家角色或非玩家角色)改变物理对象或非物理对象的状态,以及何时允许这种状态发生。触发可用于改变物理对象或非物理对象的状态,并且还可用于将非物理对象改变成物理对象或者反之。交互定义装置59可用于确定和定义何时两个或更多个对象(例如两个物理对象、 两个非物理对象或者物理对象和非物理对象)已交互了并从而需要计算来确定结果。具有一个或多个对象规则集合的模块61可用于确定和/或定义如何以及何时非物理对象转变以变成物理对象以及反之,以及确定和/或定义交互的对象(例如物理对象相互之间、物理对象与非物理对象以及物理对象与环境)的结果。在确定交互的结果时使用的一个这种示例性规则可以是在碰撞中动量守恒。查找表M也可被用作对象规则集合模块61的一部分以定义任意数目的其他结果,并且示例性的查找表由以下的表I例示。例如,如果一闪电球被投掷向玩家角色,则闪电球武器的特性可在该表中被定义成使得玩家角色将由于电击而遭损坏。该查找表还可定义和确定玩家角色的衣服和皮肤也可经历某种灼热损坏。在下文中更详细论述这些模块的功能。取决于仿真的类型,可以使用不同的规则集合。虽然对于真正的车辆仿真可能需要非常逼真的物理模型,但是对于反映卡通风格现实的游戏,更有活力和“有趣”的模型可能更好。然而,通过定义对象如何成为物理对象以及这些对象随后如何与其他对象以及游戏的玩家交互,游戏对象的交互变得灵活并且增强了玩家的满意度。图3是物理对象40的部分数据结构。非物理对象可具有类似的数据结构。在仿真的环境中对象交互的方式是基于所显示的若干因素的,包括其基本参数、条件和应用到其的游戏效果、以及其他因素,例如其是否被用作武器,即其是否已被“武器化”。基本参数用于控制物理对象以使得其外观和行为就像玩家所预期的那样。作为当遭受类似的力时不同的物理对象如何响应的示例,如果一超级英雄玩家角色正在追着街头黑帮穿过一仓库,则这些角色可能冲撞许多装运箱,从而将它们撞到旁边。较小的对象,例如油漆桶,可能被更猛烈地踢开,而更小的对象,例如瓶子,可能在冲击下粉碎。这些对象在其基本参数上有所不同,从而在冲击后具有不同的结果。虽然不是需要定义所有的物理属性,但是为物理对象40定义了具有重要影响的某些基本参数74,为了清晰在图3中只示出其中一个。一般来说,每个基本参数74将具有值76和类型78。例如,玩家角色的一个基本参数74可以是玩家角色重90kg或者温度为 37°C。基本参数可能是很多的;其他典型的参数包括大小、形状、密度和传导性。某些参数可能是给定区域中的所有对象共有的,例如重力的效果。虽然在一些实现方式中,甚至是重力的效果也可被配置成在不同物理对象之间有所不同。条件是对物理对象的约束,由此其只能以指定的方式做出举动和反应。这些可覆盖很宽范围的功能,并且可被划分成状态和触发。关于第一个,每个物理对象40可具有相关联的状态82。状态指的是物理对象如何对外界刺激做出举动或反应,例如物理对象40是否是运动的、不动的、武器化的、遭损坏的、遭毁坏的、附着于另一对象,等等。有了这里的教导,本领域的普通技术人员将会了解这些示例的许多变化。作为具体示例,玩家角色可尝试推动一只桶,而该桶很容易移动。玩家角色可尝试推动另一只桶,但该另一只桶不移动,并且调查表明其被粘在了地板上。在此示例中,一只桶的状态被设定成运动的,而另一只桶的状态被设定成不动的。关于第二类条件,每个物理对象40还可与多种触发83相关联。触发是允许对象状态变化的情况,例如“在接触时”、“在损坏时”、“在拾起时”、“在投掷时”、“在发生剧本事件时”。触发83可与限定器85相关联,限定器85表示允许谁或什么改变对象的状态,以及何时允许这种改变发生。在上述的不动的桶的示例中,玩家角色可能尝试击打该桶,该桶于是可随意地破损并且自由地移动。在此情况下,向桶施加损坏的举动是将桶的状态改变成运动的触发。在另一具体示例中,一超级英雄可追逐一罪犯到向下延伸几层的仓库的大型开放部分的边缘。该罪犯可跳到下面一小段距离处的悬挂的平台,超级英雄可跟随。超级英雄对平台的冲击力可能导致平台颤动、摇摆和倾斜,从而导致平台上的几只桶滚下。支持平台的链条中的一些随后可破损,导致超级英雄和罪犯跌落到仓库的地板,并且可能由于降落在地板上的一堆箱子上而中断跌落。在此示例中,当玩家角色降落在平台上时平台运动的方式是其如何被例如四条链条悬挂的结果。桶根据其物理对象数据结构40中的条件而滚动。当在平台上达到压力或重量阈值时,触发悬挂平台的链条松开;这可被视为在一段时间中施加的损坏。仓库地板上的箱子在冲击时(例如当遭受来自跌落的损坏时)被触发成立即破损。在一些情况下,箱子所遭受的损坏的量不是总计的,而可以按玩家角色和非玩家角色跌落的距离以及他们的重量来估计。例如,损坏可以以线性(或其他)方式增加,直到达到阈值距离和/或重量为止,在此之后箱子将被分类为完全毁坏的,并且也将被渲染成这样。当然,取决于环境的类型,其一般将在一段之后重新产生。每个物理对象40还可与游戏效果84相关联,其中游戏效果84与触发相联系。游戏效果是天生的或被施加到对象的机械特性,并且定义了对象如何对外界的刺激做出反应。例如,爆炸桶在被推动时将表现得像任何正常的桶那样,但是当被损坏时可能爆炸,并且在此情况下爆炸是该桶对象的触发的游戏效果。为了向物理对象赋予天生的游戏效果, 可以从游戏效果数据库中将一游戏效果链接到物理对象,以作为其数据结构40中的其属性之一。一些对象可被施加以永久的游戏效果。例如,“岩浆”石可以永远是过热的并且在被接触时总会灼热。持续的热量是与该对象相关联的游戏效果。也可由玩家向通常不与游
11戏效果相关联的对象施加游戏效果。在具体示例中,在跌落到地面上之后,罪犯可跳起来并开始奔跑。超级英雄可以将一电球充好电并向罪犯前方的一堆桶发射它。冲击可导致桶倾倒并阻挡罪犯的路径。带电的桶于是可随着电荷而发出劈啪声,以磁性吸引其他对象。如果罪犯尝试推开一只桶,则它们将由于小的闪电弧而受到损坏。在此示例中,玩家使用了其玩家角色的电能力来向先前没有电能力的物理对象施加游戏效果。此游戏效果进而损坏那些接触该物理对象的,并且还导致该对象以吸引其他以类似材料构成的对象的方式(即磁性方式)来做出举动。每个物理对象40还可与音频和/或视觉效果86 (称为“A/V效果”)相关联,该A/ V效果与触发相联系。A/V效果86 —般包括被渲染来供用户观看或听取的关于对象或与对象相关联的游戏效果的效果。因此,一些A/V效果与由交互导致的游戏效果相联系,但即使在没有交互的情况下在物理对象中也可存在一些A/V效果。A/V效果可包括以下非限制性示例中的一个或多个表面损坏,其一般是出现在对象的表面上的暂时损坏;微粒,其是在损坏之后的小块残骸;声音,其是来自损坏的音频反馈;劣化,其中对象可能由于损坏而崩溃;以及对象创建,其中可能由于损坏而创建新的对象。A/V效果可基于对象的状态而进一步变化。作为另一具体示例,玩家角色可撞碎并打开一卡车并去除其引擎块。玩家角色可朝着经过的车辆投掷该引擎块,导致该车辆的车篷由于冲击而跨塌。引擎块现在被严重刮擦,并且开始劈啪作响并闪光。玩家角色可以再次拾起该引擎块,将其投掷向其他玩家角色或非玩家角色。在与地面相撞后,引擎块可破裂。在此示例中,引擎块使用一系列声音和微粒来表达其状况。当车辆被打击时,其车篷和引擎显现出表面损坏和劣化。引擎块在乱擦时也显现出表面损坏,并且由于损坏而进一步显现出微粒(例如闪光)和声音(例如劈啪声)。当引擎块最终被毁坏时,可通过引擎块的外观的大变化以及可被创建来仿真其破裂的新对象来表达该破坏。通过所有这些变化,物理对象模型可被更新以反映和渲染对象所经历的视觉变化。作为另一示例,恶徒玩家角色可尝试抢劫银行,但发现其保险库是密封的。该玩家角色反复地打击保险库门,从而导致许多的凹痕,但没有开启它。该玩家角色随后可向悬得较低的房梁发射能量冲击波,从而导致大块水泥脱落下来并坠落在地面上。该冲击使银行地板裂开并且扬起了大量灰尘。房梁被缩减成了例如钢筋,只有少量的受到压力的水泥剩余。在此示例中,保险库门在被打击时劣化,而房梁在遭受能量冲击波时劣化成钢筋。水泥块是由于冲击波而创建的对象,它们在着陆时产生声音。地板由于冲击而受到表面损坏裂开,而灰尘是微粒效果。物理对象可被分类为以下类别中的一种或多种。在任何给定的仿真中,不需要表示所有类型,并且物理对象可属于不止一种类型。第一类物理对象是持续道具,其是保持在环境中直到重启为止的对象;这些对象可包括特定的目的、障碍、目标或探索所需要的特定的关键玩游戏元素。另一类是FX道具,其是在遭受损坏时可能毁坏的对象。另一类是武器化的道具,其是玩家角色可拾起并用作武器的对象。另一类是游戏效果道具,其是可与游戏机械系统相关联的对象。另一类是动态道具,其是作为游戏中事件的结果而实时创建的对象,与由开发者放置的道具相反。动态道具可包括作为由玩家角色导致的损坏的结果而创建的物理对象。
对于武器化的道具,当物理对象以这种方式被使用时,则它们获得依武器而定的功能并且以受控制的方式来做出行为。一些基本参数和条件仍可应用到武器化的物理对象。其中包括武器的耐久性、游戏效果和其他属性。在另一具体示例中,罪犯可以在滑向若干个桶时拾起一段钢筋,然后开始用它攻击超级英雄玩家角色。玩家角色可通过拾起一个箱子并将其用作对抗罪犯的武器来做出响应。钢筋在其打击超级英雄时可最终变形,并且最终可能变得不可使用。作为响应,超级英雄可向罪犯投掷箱子,从而使箱子破损并且使得罪犯失去知觉。在此示例中,超级英雄和非玩家角色罪犯都使用物理对象作为武器。敌方的非玩家角色罪犯将他的用作棍棒,而超级英雄玩家角色则将他的用作抛射体。可通过使用随着时间的损坏的计算来将钢筋的变形实现为游戏效果和A/V效果。可通过向特定对象赋予“生命力”来实现箱子的粉碎。一旦对象具有零生命力,其就被认为是已毁坏的,并被相应地渲染。在许多情况下,在其地点中将产生新的物理对象,例如动态道具。在一些情况下,这种动态道具在被产生后可以只存在几秒,但是其他情况可能要求这种对象保持在环境中并且就像任何其他物理对象那样做出举动和被使用。在另一具体示例中,超级英雄玩家角色可使用灯柱来损坏经过的车辆。车辆和灯柱都受到损坏,并且灯柱在其顶端附近折断。贯穿杆子的导线仍将顶部连接着。当玩家角色再次摆动灯柱时,顶部随机地四处挥打,但其仍是有效的武器。在此示例中,灯柱代表仍显现出物理学的影响的武器化的物理对象。即使基部由玩家控制,顶部也变得松散并且会做出响应。物理引擎在一些实现方式中可以将该运动仿真为自转和公转(如果其被摆动的话),并且在顶部上还叠加有另一个公转,即松散的顶部。物理对象也可由游戏事件产生。例如,游戏事件可触发环境破坏,并且环境破坏可触发游戏事件。在另一具体示例中,玩家角色正在追逐恶徒穿过城市下水道。玩家角色进入一个看起来是死路的黑暗分室。在玩家角色可以折回其脚步之前,发生了爆炸并且门上的天花板崩塌了,从而阻挡了其路径。玩家角色注意到在一面后墙上的小的带栅条的窗户。 玩家角色向栅条发射集中热力线,但是在这么做时触发了隐藏的武器的激活。在此示例中, 当玩家尝试离开屋子时的天花板崩塌代表由事件引起的环境破坏。当玩家角色攻击带栅条的窗户的软几何体时,攻击激活隐藏的武器;在此情况下,激活代表由环境破坏引起的事件。其他环境因素或非玩家角色或玩家角色能力也可影响诸如MMO之类的仿真中的物理对象。例如,可提供火山爆发,并且其可生成或喷发岩石和熔岩。可能发生地震,并且其可能驱逐玩家角色和非玩家角色,以及创建包括物理对象在内的各种对象。可提供可移动的奇点,其将玩家角色和对象牵拉向其自身,并且在一些实现方式中可进一步导致玩家角色或非玩家角色的远距传输的发生。可以向玩家角色提供气囊能力或效果,其中玩家角色随后被气囊所围绕,从而使得将玩家角色与物理对象和损坏蔽屏开来,但是也使得玩家角色弹跳而且不能有效地作战。玩家角色或非玩家角色可具有隔空取物的能力,从而其无需接触对象就能够移动它们。对象的子集可具有“接地”状态,在此状态中它们变得极为沉重,到了不能被移动或武器化的程度。在此状态中,空运的对象可能坠落到地面,而武器化的对象可能变得太沉重以至于不能携带。可以提供重力或反重力源;这些源可能是可移动的,其随后吸引或排斥附近的对象以及玩家角色或非玩家角色。还可提供“回弹”力,利用这种力,物理对象被从玩家角色发射出去。
在另一具体示例中,玩家角色走到街道上并且攻击正在接近的车辆,从而导致其翻倒。玩家角色随后拾起车辆并将其投掷向标志性的非玩家角色的大型铜雕像。车辆从雕像弹开,降落在一花圃上并毁坏该花圃。玩家角色尝试再次拾起该车辆,但是其正在着火并且太烫以至于无法接触。取而代之,玩家角色攻击雕像附近的喷泉,直到大块的大理石从喷泉上脱落下来为止。玩家角色随后拾起大理石块并将其投掷向雕像,从而损坏了雕像。在此示例中,车辆最初被分类为一类非玩家角色,但是在被投掷时其变成了武器化的道具,然后在其着火时变成了游戏效果道具。花圃可以是一个或多个FX道具。雕像是持续道具并且无法被毁坏,但是可能忍受小量的损坏,然后愈合,或者也可能被驱逐开。喷泉是软几何体,并且其大理石块是可被武器化的动态道具。图4是用于实现物理对象交互的一种方法50的流程图。在第一步骤中,将虚拟对象的一子集定义为物理对象(步骤94)。在下一步骤中,为每个物理对象定义至少一个基本参数和状态(步骤96),基本参数具有值和类型。步骤94和96 —般可在创建物理对象时执行,创建物理对象时可以是游戏最初加载时、在此之后的任何时间或者在开发时。下一步骤是确定具有不同基本参数类型的任何两个或更多个对象的交互的结果、 以及交互的结果(步骤98)。这个步骤可以通过若干种方式来实现。首先,某些交互将具有预定的结果。例如,一类交互是由碰撞检测所确定的对象(可能是物理对象和/或非物理对象)之间的碰撞,其具有由物理引擎规定的结果(步骤10幻。这里要注意碰撞可以是对象的任何接触。另一类交互是对象(例如物理对象或非物理对象)与抛射体之间的碰撞 (步骤104)。这类交互可以是玩家角色或非玩家角色例如通过格斗或远程武器、通过神奇的咒语、通过激光或其他电磁力等等攻击物理对象或非物理对象时典型的交互。上述碰撞示例是常见的。然而,系统可以提供甚至更多类型的交互。一般地,交互是由对象规则集合确定的,其中可包括对查找表的使用(步骤106)。查找表提供了考虑到可能发生的许多类型的交互以及随之可能发生的协同效果的一种方式。这种表在以下被例示为表I,其应当被理解为只是示例性的,因此与这种效果的可能数目相比是非常有限的。以上描述总地涉及对象交互,其中对象具有不同类型的基本参数。在一些情况下, 将为具有相同类型的基本参数的物理对象定义交互。例如,两个物理对象可各自具有相关联的重量基本参数。如果两者被联合起来,例如通过被撞击在一起或者通过磁效果被联合起来,则结果可以是重量为个体重量之和的单个物理对象。作为对交互的指示,可以向GPU或视频卡或声卡或者其组合发送信号(步骤108), 并且该信号随后可使得渲染对交互的指示(步骤112)。渲染可采取若干种形式。如果物理对象或非物理对象被分类或以其他方式分类为具有硬几何性,则可以渲染损坏效果(步骤114),例如可随着时间的过去而愈合的浅表或表面损坏效果。如果对象被分类为具有软几何性,则可以执行计算来确定对象被损坏到什么程度(步骤116)。例如,小量的损坏可导致诸如刮擦之类的表面损坏,而大量的损坏可导致对象破裂,例如破裂成较小的对象(这些对象进而可以是物理对象或非物理对象)、破裂成微粒、或者破裂成这两者。一种实现该计算的方式是向对象赋予生命力,并且作为损坏增加,生命力数字减小。一旦对象处于零生命力,就认为其已被毁坏。也可以使用特别精密的计算,其中包括对物理对象的材料属性(例如其结构的粒度、重量、体积等等)以及碰撞的对象(例如抛射体)的轨迹和其他特性的考虑。
方法50的下一步骤可被包括作为渲染对交互的指示的步骤(步骤11 的一部分,其包括渲染游戏效果(118)和渲染A/V效果(步骤122)。图5是用于实现物理对象交互的另一种方法70的流程图。在方法70中,使物理对象经历从第一状态到第二状态的转变。某些步骤与图4的方法相同。在第一步骤中,将虚拟对象的一子集定义为物理对象(步骤94)。在下一步骤中, 为每个物理对象定义至少一个基本参数和状态(步骤126),基本参数具有值和类型。然后可定义触发(步骤128),该触发使得物理对象从一个状态转变到另一状态。然后可为触发定义限定器(步骤13 ,限定器在上文中定义,例如,谁或者什么可导致该触发使状态转变。步骤124、126、1 和132 —般可在创建物理对象时执行,创建物理对象时可以是游戏最初加载时、在此之后的任何时间或者在开发时。在发生触发事件时,随后使物理对象从第一状态转变到第二状态(步骤134)。作为对该转变的指示,可以向GPU或视频卡或声卡或者其组合发送信号(步骤136),并且该信号随后可使得渲染该转变(步骤138)。与图4中一样,渲染可采取若干种形式。如果物理对象具有硬几何性,则可以渲染损坏效果(步骤14幻。如果物理对象具有软几何性,则可以执行计算来确定物理对象被损坏到什么程度(步骤144)。方法70的下一步骤可被包括作为渲染对转变的指示的步骤(步骤138)的一部分,其包括渲染游戏效果(146)和渲染A/V效果(步骤148)。如果在交互中涉及两个或更多个对象,例如物理对象,则可以为每个物理对象执行上述方法70,并且还可使用方法50来定义转变和交互的结果。这些方法还可用于确定游戏事件对物理对象的效果、由玩家角色和非玩家角色导致的损坏、以及由非物理对象对物理对象导致的损坏或者由物理对象对非物理对象导致的损坏。参考图6,示出了用于从非物理对象创建物理对象的方法80的流程图。该方法的第一步骤是定义至少一个虚拟对象为非物理对象(步骤15 。一般地,这种对象被建模为3 维对象,但该方法和系统并不限于此。下一步骤是定义一触发,在该触发发生时非物理对象将转变到物理对象(步骤154),并且可进一步为该触发定义限定器。触发和限定器一般可与以上针对将物理对象从第一状态转变到第二状态描述的那些相同,只不过在此情况下, 非物理对象在转变成物理对象。与以上所述的相应步骤一样,步骤152和巧4 一般可在创建物理对象时执行,创建物理对象时可以是游戏最初加载时、在此之后的任何时间或者在开发时。在触发发生时,非物理对象随后转变成物理对象(步骤156)。以下在表II中记载了特定触发和转变,它们应当被理解为只是示例性,因此与这种触发和转变的可能数目相比是非常有限的。如上所述,作为对转变的指示,可以向GPU或视频卡或声卡或其组合发送信号(步骤158),并且信号随后可使得渲染转变(步骤16 。渲染可以通过上述方式中的任何一种来执行。在物理对象被损坏或毁坏的情况下,系统和方法还提供了处理修复的方式。具体地,修复例程可用于帮助环境在交互后重置自身。一般地,大多数对象将随着时间过去而修复。然而,存在某些例外。例如,在一副本中,所有对象都可在该副本被重加载时自动重置。在一些实现方式中,被标记为“技师”的非玩家角色可修改损坏的对象。这些对象随后返回到其未损坏的状态并且不重置。 在具体示例中,恶行玩家角色可抢劫银行,损坏其外部和内部,然后逃离。玩家角色可注意到银行的内部和外部完全愈合了,从而没有损坏。在此示例中,银行的外部是开放游戏环境世界的一部分,因此当玩家角色在内部时其破坏被缓慢地修改。银行内部被认为是一副本,因此当玩家角色离开时,银行的内部内容立即重置。游戏环境内的不同类型的区域可不同地遭受损坏。这可部分取决于该区域的私密或公共程度如何。例如,城市可代表游戏的大的、开放世界部分。由于可能希望这种区域就几何性而言保持相对稳定,所以它们可能是最不可破坏的环境。这种区域可主要包括硬几何性对象和结构。也可存在特定的软几何性对象,以及一些预定的物理对象。所有这些对象和结构都具有与之相关联的不同量的A/V效果。在具体示例中,恶徒玩家角色可拾起一经过的车辆并将其扔向一店面,从而导致店面的遮阳篷落下并且其窗户粉碎且崩溃。该玩家角色可再次拾起该车辆并且将其投掷向一公寓建筑的侧面,从而导致一些水泥铸造物断裂并破碎。车辆降落在人行道上,留下裂缝。在此示例中,车辆和遮阳篷是物理对象。店面具有软几何性并因此变形,并且进一步产生玻璃微粒效果。水泥铸造物具有软几何性,而其所附着到的公寓建筑上具有硬几何性。水泥铸造物生成水泥碎块,这些水泥碎块是物理对象,而当车辆降落时,作为硬几何体的人行道受到表面损坏。副本是根据需要为一个或一群玩家创建的区域的私密版本。由于其是私密的,与开放的公开游戏环境中相比可以提供更多的软几何体,但硬几何体仍可构成这些区域的大部分。这些硬几何体区域与软几何体区域的比率由每个副本的设计来规定。副本还可具有大量的物理对象,并且在其内的许多对象上可存在A/V效果。在具体示例中,玩家角色超级英雄可能正在礼堂中与恶徒战斗。恶徒可攻击玩家角色超级英雄,将其投掷穿过屋子。玩家角色可毁坏若干行座位以及支撑柱,然后降落在后墙上,在冲击时使其裂开。在此示例中, 座位是物理对象并且柱子是软几何体;两者都在冲击时破损。后墙是硬几何体,并且其裂开是暗示损坏的A/V效果。其中损坏效果可能与开放世界游戏环境不同的另一个区域是竞技场,这是大的基于地形的多玩家区域。由于这些区域被设计成让玩家利用所有其能力和技能,所以在竞技场中提供的破坏可能是巨大的。物理对象可以更大,并且更多的软几何体可被构建到地形中和建筑物中。在具体示例中,玩家角色超级英雄可接近一敌方非玩家角色碉堡以便毁坏它。在玩家角色可以进入攻击范围之前,敌方坦克可从悬崖后开出。玩家角色疾跑向最近的悬崖壁并且击打它以敲下一些大的巨石。玩家角色随后举起巨石并投掷它。巨石降落在领头的坦克上,从而将其压碎并且在地面上留下巨大的裂缝。玩家角色随后跑向碉堡并攻击它,冻住一大的屋顶炮塔并且用能量冲击波来粉碎它。敌人随后从碉堡的正面入口发出力量。玩家角色打击这些力量并且将火力集中于门上。小块的碎石开始松动并落下。在一段时间后,门的门拱崩塌在入口前。在此示例中,悬崖壁具有软几何性并且位于硬几何性地形上方。作为物理对象的巨石是在软几何性悬崖壁被损坏时生成的。巨台的冲击压碎坦克, 坦克也是物理对象,并且利用A/V效果,地面看起来裂开了。碉堡的建筑主要是软几何体, 并且许多弱点,例如炮塔、门等等被配置为完全可破坏并且在破坏时生成碎石,这些碎石中的一些或全部可以是物理对象。已经描述了用于创建和处理物理对象的系统和方法。这些物理对象交互和随后玩游戏的组合效果看起来是自然发生的而不是规定的。系统和方法创建元素,这些元素基于玩家如何使用它们而以令人惊讶的方式交互。玩家能够创建物理对象、将其自身和其他玩家变成物理对象以及通过这些物理对象和力量以超乎简单的预定交互的方式交互来创建自然的、协同的效果。其他变化和实现方式也是可能的。因此,本发明的范围并不仅限于这里布置的具体示例。表 I可能的协同游戏/对象和A/V效果的查找表(部分)
权利要求
1.一种计算机可读介质,包括用于使得电子设备中的处理器执行在仿真中管理虚拟3 维对象的方法的指令,所述方法包括a.将仿真中的虚拟3维对象的子集定义为物理对象;b.为所述物理对象中的第一物理对象定义至少第一基本参数和第一状态,所述第一基本参数由第一值和第一类型表征;c.为所述物理对象中的第二物理对象定义至少第二基本参数和第二状态,所述第二基本参数由第二值和第二类型表征,其中所述第一类型不同于所述第二类型;d.定义所述第一物理对象和所述第二物理对象之间的至少一个交互,所述交互的结果至少部分取决于所述第一参数和第二参数以及第一状态和第二状态;e.向渲染器发送信号并且渲染对所述交互的结果的指示。
2.如权利要求1所述的介质,其中,定义至少一个交互是由在所述第一对象与第二对象之间检测到碰撞的发生而引起的。
3.如权利要求1所述的介质,其中,所述定义至少一个交互是由在所述第一对象或第二对象与由玩家角色或非玩家角色控制的抛射体之间检测到碰撞的发生而引起的。
4.如权利要求1所述的介质,其中,所述至少一个状态是从由以下各项构成的组中选择的运动的、不动的、被损坏的、被毁坏的或附着的。
5.如权利要求1所述的介质,其中,所述仿真是多玩家在线游戏。
6.如权利要求1所述的介质,其中,所述第一物理对象或第二物理对象中的至少一个是玩家角色或非玩家角色。
7.如权利要求4所述的介质,还包括将所述第一物理对象或第二物理对象中的至少一个定义为具有软几何性,其中如果具有软几何性的物理对象的状态是被损坏的,则还包括利用至少两个物理对象或一物理对象和一非物理对象来替换所述物理对象。
8.如权利要求4所述的介质,还包括将所述第一物理对象或第二物理对象中的至少一个定义为具有硬几何性,其中如果具有硬几何性的物理对象的状态是被损坏的,则还包括在具有硬几何性的物理对象上渲染损坏效果。
9.如权利要求1所述的介质,其中,所述第一类型和第二类型是从由以下各项构成的组中选择的重量、大小、形状、密度和传导性。
10.如权利要求1所述的介质,其中,所述交互的结果是按对象规则集合或查找表的。
11.如权利要求1所述的介质,还包括从先前未被定义为物理对象的虚拟3维对象之一定义物理对象。
12.如权利要求11所述的介质,其中,所定义的物理对象是玩家角色。
13.如权利要求11所述的介质,其中,所定义的物理对象具有被定义为武器的状态。
14.如权利要求1所述的介质,其中,所述定义至少一个交互包括定义至少一个规则集合,所述规则集合与具有共同类型的基本参数的物理对象有关。
15.如权利要求1所述的介质,还包括为所述物理对象中的至少一个定义至少一个游戏效果,其中如果触发发生,则所述游戏效果发生。
16.如权利要求1所述的介质,还包括为所述物理对象中的至少一个定义至少一个音频或视觉效果,其中如果触发发生,则所述音频或视觉效果被渲染。
17.一种计算机可读介质,包括用于使得电子设备中的处理器执行在仿真中管理虚拟3维对象的方法的指令,所述方法包括a.将仿真中的虚拟3维对象的子集定义为物理对象;b.为所述物理对象中的第一物理对象定义至少第一基本参数和第一状态,所述第一基本参数由第一值和第一类型表征;c.定义至少一个触发,其中在所述触发发生时,将所述物理对象中的第一物理对象从所述第一状态转变到第二状态,所述转变的结果至少部分取决于所述第一参数和所述第一状态;以及d.向渲染器发送信号并且渲染对所述转变的结果的指示。
18.如权利要求17所述的介质,其中,所述触发是从由以下各项构成的组中选择的玩家角色或非玩家角色接触所述第一物理对象、玩家角色或非玩家角色损坏所述第一物理对象、玩家角色或非玩家角色拾起所述第一物理对象、玩家角色或非玩家角色投掷所述第一物理对象、或者预定的剧本事件。
19.如权利要求18所述的介质,其中,定义至少一个触发包括定义可由玩家角色、非玩家角色或虚拟对象引起的至少一个触发,并且还包括针对触发事件定义至少一个限定器, 其中所述定义至少一个限定器包括定义允许哪些玩家角色、非玩家角色或虚拟对象引起转变或者何时允许发生转变。
20.如权利要求17所述的介质,其中,所述仿真是ΜΜ0。
21.一种计算机可读介质,包括用于使得电子设备中的处理器执行在仿真中管理虚拟 3维对象的方法的指令,所述方法包括a.将仿真中的至少一个虚拟3维对象定义为非物理对象;b.定义至少一个触发,其中在所述触发发生时,将所述至少一个虚拟3维对象转变到物理对象;d.向渲染器发送信号并且渲染对所述转变的结果的指示。
22.如权利要求21所述的介质,其中,所述触发是从由以下各项构成的组中选择的玩家角色或非玩家角色接触所述虚拟3维对象、玩家角色或非玩家角色损坏所述虚拟3维对象、玩家角色或非玩家角色拾起所述虚拟3维对象、玩家角色或非玩家角色投掷所述虚拟3 维对象、或者预定的剧本事件。
23.如权利要求21所述的介质,其中,定义至少一个触发包括定义可由玩家角色、非玩家角色或虚拟对象引起的至少一个触发,并且还包括针对所述触发定义至少一个限定器, 其中所述定义至少一个限定器包括定义允许哪些玩家角色、非玩家角色或虚拟对象引起转变或者何时允许发生转变。
24.如权利要求21所述的介质,其中,所述仿真是ΜΜ0。
25.一种计算机可读介质,包括用于在仿真中管理虚拟3维对象的系统,所述介质包括以下模块a.数据库模块,用于存储关于多个虚拟对象的数据,所述多个虚拟对象包括物理对象, 这些对象一部分是由状态定义的;以及b.物理引擎模块,包括触发定义模块,用于定义对象从第一状态向第二状态的转变。
26.如权利要求25所述的介质,其中,所述第一状态是非物理对象,所述第二状态是物理对象。
27.一种计算机可读介质,包括用于在仿真中管理虚拟3维对象的系统,所述介质包括以下模块 a.数据库模块,用于存储关于多个虚拟对象的数据,所述多个虚拟对象包括物理对象, 这些物理对象一部分是由状态定义的;以及b.物理引擎模块,包括i.交互定义模块,用于定义物理对象之间或者物理对象与非物理对象之间的交互;以及 .对象规则集合,用于定义物理对象之间或物理对象与非物理对象之间的交互的结: O
28.如权利要求27所述的介质,其中,所述对象规则集合是查找表。
全文摘要
提供了用于实现一种技术的系统和方法,该技术用于管理计算机仿真中的物理交互,例如在线计算机游戏中的对象的交互。仿真中的对象是或者能够变成物理对象,物理对象随后根据操作中的物理仿真器的规则来做出行为。对于物品如何变成物理对象以及什么规则用于管理物理对象,不同的实现方式可使用不同的规则。由于物理对象交互是基于其物理属性来确定的而不是遵守预定的交互,所以由此得到的交互是自然发生的而不是按照剧本的。
文档编号G06T13/20GK102160086SQ200980137235
公开日2011年8月17日 申请日期2009年7月22日 优先权日2008年7月22日
发明者德鲁·鲍尔斯, 杰恩斯·安德森 申请人:索尼在线娱乐有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1