CN103885786A - 一种3d场景互动模型 - Google Patents
一种3d场景互动模型 Download PDFInfo
- Publication number
- CN103885786A CN103885786A CN201410140992.8A CN201410140992A CN103885786A CN 103885786 A CN103885786 A CN 103885786A CN 201410140992 A CN201410140992 A CN 201410140992A CN 103885786 A CN103885786 A CN 103885786A
- Authority
- CN
- China
- Prior art keywords
- scene
- interaction model
- virtuality
- subject
- describing
- 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
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种3D场景互动模型,包括:Avatar对象,用于描述3D场景中使用者主动控制的对象;Object对象,用于描述3D场景中非主动控制的对象;Trigger对象,用于描述3D场景中的触发区;Trail对象,用于描述3D场景中Avatar对象和Object对象运动的轨迹,能够对3D场景动态、实时地进行修改和更新,同时极大地减少了更新时的数据量。
Description
技术领域
本发明涉及3D场景领域,尤其涉及一种3D场景互动模型。
背景技术
目前3D场景交互模型普遍运用于3D游戏或者3D软件里,但是现有的3D场景交互模型,都是预先定制好并且固化到游戏和软件里的,不可以随便修改,或者修改起来相当复杂,需要开发这款游戏或者软件的专业人员才能修改,而且修好以后,需要更新版本,更新包的大小动辄几十、上百M,并不适合使用互联网传播。
发明内容
本发明鉴于上述情况而作出,其目的是提供一种3D场景互动模型,能够对3D场景动态、实时地进行修改和更新,同时极大地减少了更新时的数据量。
一种3D场景互动模型,包括:
Avatar对象(主体虚拟化对象),用于描述3D场景中使用者主动控制的对象,Avatar对象包括使用者主动控制的在3D场景中行走的人或者在3D场景活动的物体。
Object对象(客体对象),用于描述3D场景中非主动控制的对象,Object对象对Avatar对象的操作进行响应。
Trigger对象(触发器对象),用于描述3D场景中的触发区,当Avatar对象进入和/或离开触发区时,Trigger对象做出相应的响应。
Trail对象(轨迹对象),用于描述3D场景中Avatar对象 和Object对象运动的轨迹, Avatar 对象和/或Object对象沿着Trail对象进行移动。
进一步地,通过SDML(场景描述标记语言)文件记录所述3D场景的结构布局,描述3D场景中每个对象的大小位置和朝向。
通过SSL(场景样式语言)文件记录所述3D场景的样式,描述3D场景中每个对象的样式。
通过JS(JavaScript,基于对象和事件驱动的客户端脚本语言)文件记录所述3D场景中的互动行为,描述Avatar对象、Object对象和Trigger对象之间的互动行为。
进一步地,所述3D场景还包括视点对象,用于描述使用者在3D场景中的视点。
进一步地,Avatar对象的创建和使用方法包括以下步骤:
步骤S1,根据3D场景的设计需求在脚本中显式地创建一个或多个Avatar对象;
步骤S2,通过视点对象的attach方法将所述Avatar对象挂接到视点当中进行联动。
根据本发明,提供了一种3D场景互动模型,能够对3D场景动态、实时地进行修改和更新,同时极大地减少了更新时的数据量。
附图说明
图1是本发明实施方式的Avatar对象的创建和使用方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
本发明提供一种3D场景互动模型,能够对3D场景动态、实时地进行修改和更新,同时极大地减少了更新时的数据量。
一种3D场景互动模型,包括:
Avatar对象,用于描述3D场景中使用者主动控制的对象,Avatar对象包括使用者主动控制的在3D场景中行走的人或者在3D场景活动的物体, 如汽车、飞机、马等。
Object对象,用于描述3D场景中非主动控制的对象,Object对象对Avatar对象的操作进行响应, 如树木花草等。
当Avatar对象与Object对象产生交互时,Object对象根据Avatar对象的操作做出相应的响应,如当Avatar对象汽车撞上Object对象树时,Object对象树做出的响应为被撞倒折断。
Trigger对象,用于描述3D场景中的触发区,当Avatar对象进入和/或离开触发区时,Trigger对象做出相应的响应。
Trail对象,用于描述3D场景中Avatar对象 和Object对象运动的轨迹, Avatar 对象和/或Object对象沿着Trail对象进行移动。
Trail对象可以动态的生成,这样Avatar对象就可以根据动态生成的Trail对象导航到3D场景中的任意目的地。
3D场景互动模型通过SDML文件记录该3D场景的结构布局,描述3D场景中每个对象的大小、位置和朝向。
通过SSL文件记录该3D场景的样式,描述3D场景中每个对象的样式。
通过JS文件记录该3D场景中的互动行为,描述Avatar对象、Object对象和Trigger对象之间的互动行为。
这样整个3D场景通过SDML文件、SSL文件和JS文件来进行描述,与普通二维网页通过HTML文件、CSS文件和JS文件来进行描述类似。
3D场景中还包括视点对象,用于描述使用者在该3D场景中的视点。
图1是本发明实施方式的Avatar对象的创建和使用方法的流程示意图。
如图1所示,Avatar对象的创建和使用方法包括以下步骤:
步骤S1,根据3D场景的设计需求在脚本中显式地创建Avatar对象。
其中脚本通过JS文件来进行描述。
步骤S2,通过视点对象的attach方法将Avatar对象挂接到视点当中进行联动。
由于使用者的具体表达体存在不确定性,因此允许在同一时间内创建多个Avatar对象,并且每个Avatar对象可以有独立的视觉表达,而且可以挂接到视点的不同位置和不同朝向。
实施例1
创建Avatar对象:
avatar = new Avatar;
初始化Avatar对象:
设置Avatar对象的id,例如avatar.id=”my avatar”,该id在存在多个Avatar对象的情况下具有唯一可识别性,例如在Trigger对象的onEnter事件当中,可以通过comp.id来辨别是哪个Avatar对象进入了该区域。
确保视觉表达要素所需的资源已经准备就绪,并设置Avatar对象的视觉表达要素。
将Avatar对象挂接到视点当中。
Object对象的属性、方法和事件定义:
方法- playAnimation
功能
播放指定动画
返回值
无
方法- stopAnimation
功能
停止播放动画
返回值
无
方法- setFocus
功能
设置对象进入焦点状态(进入最佳视角)
返回值
无
方法- killFocus
功能
退出对象焦点状态(退出最佳视角)
返回值
无
方法- faceTo
功能
让对象面向指定目标点
返回值
无
事件- onPlayAnimationFinish
功能
每次动画播放完毕后调用此事件
返回值
整型,保留参数,当前要求返回0
事件-onFocus
功能
当对象的焦点状态发生。
返回值
整型,保留参数,当前要求返回0
事件-onHover
功能
当鼠标停留指示在对象上时,或者从停靠指示退出指示时,将会触发本事件。
返回值
整型,保留参数,当前要求返回0
事件-onLClick
功能
当鼠标左键点击在对象上时,将会触发本事件。
返回值
整型,保留参数,当前要求返回0
名称 | 类型 | 值域 | 说明 |
comp | object | 非空 | 鼠标点击的对象 |
evt.xxx | 参考onHover |
事件-onRClick
功能
当鼠标右键点击在对象上时,将会触发本事件。
返回值
整型,保留参数,当前要求返回0
名称 | 类型 | 值域 | 说明 |
comp | object | 非空 | 鼠标点击的对象 |
evt.xxx | 参考onHover |
Trigger对象的属性和事件
名称 | 类型 | 值域 | 说明 |
coords | string | 多边形坐标序列 | 描述area形状大小的具体坐标信息 |
事件-onEnter
功能
当Avatar对象进入到Area区域时,触发本事件。
返回值
整型,保留参数,当前要求返回0。
备注。
事件参数中只给出了穿越过程中的两个关键点,如果需要知道穿越后的具体方位,可以通过访问view对象的相关属性获得。
名称 | 类型 | 值域 | 说明 |
comp | object | 非空 | 进入区域的Avatar对象 |
evt.from | vector3 | 非空 | Avatar在本帧刷新中移动的起点 |
evt.across | vector3 | 非空 | 穿越区域时和区域的交点坐标 |
事件-onLeave
功能
当Avatar对象离开Area区域时,触发本事件。
返回值
整型,保留参数,当前要求返回0。
备注。
事件参数中只给出了穿越过程中的两个关键点,如果需要知道穿越后的具体方位,可以通过访问view对象的相关属性获得。
名称 | 类型 | 值域 | 说明 |
comp | object | 非空 | 离开区域的Avatar对象 |
evt.from | vector3 | 非空 | Avatar在本帧刷新中移动的起点 |
evt.across | vector3 | 非空 | 穿越区域时和区域的交点坐标 |
Trail对象的属性、方法和事件。
Trail对象是SDML-DOM体系的重要控制对象,其主要功能为:Object对象绑定到Trail对象后,Trail对象控制Object对象沿着特定轨迹按照不同方式进行移动。
名称 | 类型 | 值域 | 说明 |
coords | string | 一串三维坐标点 | Trail对象将字符串转换一系列三位坐标,作为对象移动的轨迹。 |
gravitational | bool | false、true | 对象移动时是否贴地 |
方法- attachObj
功能
Object对象绑定到Trail对象
返回值
无
方法- detachObj
功能
将Object对象从Trail对象上卸载下来停止移动
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 |
方法- setObjSpeed
功能
设置Object对象沿Trail对象移动时的速度
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
speed | float | 0,+ ∞ | 速度 |
方法- setObjToward
功能
设置Object对象沿Trail对象移动时的方向
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
toward | bool | false、true | false是向第0个轨迹点移动, true是向最大一个轨迹点移动 |
方法- setObjAcceleration
功能
设置Object对象沿Trail对象移动时的加速度
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
a | float | -∞,+∞ | <0时做减速运动,>0时做加速运动 |
方法- setObjIndex
功能
设置Object对象移动到Trail对象第几个轨迹点
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
index | int | 0、n | 将Object对象直接移动到Trail对象轨迹的第几个轨迹点 |
方法- setObjOrient
功能
设置Object对象沿着Trail对象轨迹移动时,Object对象的哪个坐标轴朝前
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
orient | string | -x、+x、-y、+y、-z、+z | Object对象沿着Trail对象轨迹移动时,对象的那个坐标轴朝前 |
方法- setObjVertical
功能
设置Object对象沿Trail对象移动时的是否保持重力方向
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
vetical | bool | false、true | false是无需保持重力方向, true保持自身重力方向 |
方法- setObjMonitored
功能
设置Object对象沿Trail对象移动时是否碰撞触发器
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
monitored | bool | false、true | false是不碰撞触发器, true是碰撞触发器 |
方法- setObjLoop
功能
设置Object对象沿Trail对象移动时的到达终点后的运动方式
返回值
无
名称 | 类型 | 值域 | 说明 |
obj | jObject* | Object对象 | |
loop | int | -1、0、1、2 | -1停止、0重复、1循环、2往返 |
方法- getVertexCount
功能
获取Trail对象轨迹点的总个数
返回值
整型 轨迹点总的个数
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1. 一种3D场景互动模型,其特征在于,包括:
主体虚拟化对象,用于描述3D场景中使用者主动控制的对象;
客体对象,用于描述3D场景中非主动控制的对象;
触发器对象,用于描述3D场景中的触发区;
轨迹对象,用于描述3D场景中主体虚拟化对象和客体对象运动的轨迹。
2. 根据权利要求1所述的3D场景互动模型,其特征在于,所述主体虚拟化对象包括使用者主动控制的在3D场景中行走的人或者在3D场景活动的物体。
3. 根据权利要求1所述的3D场景互动模型,其特征在于,所述客体对象对主体虚拟化对象的操作进行响应。
4. 根据权利要求1所述的3D场景互动模型,其特征在于,所述当主体虚拟化对象进入和/或离开触发区时,触发器对象做出相应的响应。
5. 根据权利要求1所述的3D场景互动模型,其特征在于,所述主体虚拟化对象和/或客体对象沿着轨迹对象进行移动。
6. 根据权利要求1至5任意一项所述的3D场景互动模型,其特征在于,通过场景描述标记语言文件记录所述3D场景的结构布局,描述3D场景中每个对象的大小位置和朝向。
7. 根据权利要求1至5任意一项所述的3D场景互动模型,其特征在于,通过场景样式语言文件记录所述3D场景的样式,描述3D场景中每个对象的样式。
8. 根据权利要求1至5任意一项所述的3D场景互动模型,其特征在于,通过基于对象和事件驱动的客户端脚本语言文件记录所述3D场景中的互动行为,描述主体虚拟化对象、客体对象和轨迹对象之间的互动行为。
9. 根据权利要求1至5任意一项所述的3D场景互动模型,其特征在于,所述3D场景还包括视点对象,用于描述使用者在3D场景中的视点。
10.根据权利要求9所述的3D场景互动模型,其特征在于,所述主体虚拟化对象的创建和使用方法包括以下步骤:
步骤S1,根据3D场景的设计需求在脚本中显式地创建一个或多个主体虚拟化对象;
步骤S2,通过视点对象的attach方法将所述主体虚拟化对象挂接到视点当中进行联动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410140992.8A CN103885786A (zh) | 2014-04-10 | 2014-04-10 | 一种3d场景互动模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410140992.8A CN103885786A (zh) | 2014-04-10 | 2014-04-10 | 一种3d场景互动模型 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103885786A true CN103885786A (zh) | 2014-06-25 |
Family
ID=50954696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410140992.8A Pending CN103885786A (zh) | 2014-04-10 | 2014-04-10 | 一种3d场景互动模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885786A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960475A (zh) * | 2017-03-30 | 2017-07-18 | 网易(杭州)网络有限公司 | 三维模型的部位点击处理方法及装置、存储介质和处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215495B1 (en) * | 1997-05-30 | 2001-04-10 | Silicon Graphics, Inc. | Platform independent application program interface for interactive 3D scene management |
CN1896985A (zh) * | 2005-07-15 | 2007-01-17 | 英业达股份有限公司 | 计算机游戏开发系统以及方法 |
CN101335916A (zh) * | 2008-07-22 | 2008-12-31 | 中山大学 | 一种通用的手机角色扮演(rpg)网络游戏引擎 |
CN102663245A (zh) * | 2012-03-30 | 2012-09-12 | 福建天趣网络科技有限公司 | 3d游戏世界编辑器 |
CN103019725A (zh) * | 2012-12-19 | 2013-04-03 | 四川长虹电器股份有限公司 | 基于3d模型的界面逻辑控制方法 |
-
2014
- 2014-04-10 CN CN201410140992.8A patent/CN103885786A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215495B1 (en) * | 1997-05-30 | 2001-04-10 | Silicon Graphics, Inc. | Platform independent application program interface for interactive 3D scene management |
CN1896985A (zh) * | 2005-07-15 | 2007-01-17 | 英业达股份有限公司 | 计算机游戏开发系统以及方法 |
CN101335916A (zh) * | 2008-07-22 | 2008-12-31 | 中山大学 | 一种通用的手机角色扮演(rpg)网络游戏引擎 |
CN102663245A (zh) * | 2012-03-30 | 2012-09-12 | 福建天趣网络科技有限公司 | 3d游戏世界编辑器 |
CN103019725A (zh) * | 2012-12-19 | 2013-04-03 | 四川长虹电器股份有限公司 | 基于3d模型的界面逻辑控制方法 |
Non-Patent Citations (2)
Title |
---|
李博: "游戏人工智能关键技术的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
韩逸晨: "游戏编辑器的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960475A (zh) * | 2017-03-30 | 2017-07-18 | 网易(杭州)网络有限公司 | 三维模型的部位点击处理方法及装置、存储介质和处理器 |
CN106960475B (zh) * | 2017-03-30 | 2020-05-05 | 网易(杭州)网络有限公司 | 三维模型的部位点击处理方法及装置、存储介质和处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Müller et al. | Sim4cv: A photo-realistic simulator for computer vision applications | |
Xu et al. | Crowd simulation and its applications: Recent advances | |
CN111260764B (zh) | 一种制作动画的方法、装置及存储介质 | |
EP3531248A1 (en) | Virtual sensor in a virtual environment | |
Feng et al. | An example-based motion synthesis technique for locomotion and object manipulation | |
CN104317297A (zh) | 一种未知环境下机器人避障方法 | |
CN105765488B (zh) | 虚拟环境的运动控制 | |
CN100524363C (zh) | 一种用于动态实体的分层避障方法 | |
CN106020223A (zh) | 飞行器的飞行控制方法、装置及系统 | |
CN106873767A (zh) | 一种虚拟现实应用的运行控制方法和装置 | |
CN101188025A (zh) | 一种高效实时的群体动画框架 | |
Navarro-Newball et al. | Gesture based human motion and game principles to aid understanding of science and cultural practices | |
CN103049266A (zh) | Delta3D三维场景漫游的鼠标操作方法 | |
CN103885786A (zh) | 一种3d场景互动模型 | |
Karim et al. | Procedural locomotion of multilegged characters in dynamic environments | |
Cimen et al. | Interacting with intelligent characters in ar | |
Chen et al. | Controlling the movement of crowds in computer graphics by using the mechanism of particle swarm optimization | |
KR101267570B1 (ko) | 2d 텍스쳐 기반의 유도장을 이용한 가상캐릭터 조정행동 표시방법 및 장치, 이를 사용한 가상 생태공원 가시화 시스템 | |
Wu et al. | Simulating the local behavior of small pedestrian groups using synthetic-vision based steering approach | |
Li et al. | Anchor‐based crowd formation transformation | |
TWI515644B (zh) | 遊戲觸控系統及其實施方法 | |
Kim et al. | An event-driven approach to crowd simulation with example motions | |
CN113018862A (zh) | 虚拟对象的控制方法、装置、电子设备及存储介质 | |
CN105635806A (zh) | 群体运动场景的渲染方法 | |
De Paolis et al. | The simulation of a billiard game using a haptic interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140625 |