《一种3D场景互动模型.pdf》由会员分享,可在线阅读,更多相关《一种3D场景互动模型.pdf(13页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103885786 A (43)申请公布日 2014.06.25 CN 103885786 A (21)申请号 201410140992.8 (22)申请日 2014.04.10 G06F 9/44(2006.01) G06T 17/00(2006.01) (71)申请人 南京长观信息科技有限公司 地址 210000 江苏省南京市雨花台区软件大 道 11 号 (花神大酒店 203 室) (72)发明人 宁权修 陈骏 蔡运涛 (54) 发明名称 一种 3D 场景互动模型 (57) 摘要 本发明公开了一种 3D 场景互动模型, 包括 : Avatar对象, 用于描述3D场。
2、景中使用者主动控制 的对象 ; Object 对象, 用于描述 3D 场景中非主动 控制的对象 ; Trigger对象, 用于描述3D场景中的 触发区 ; Trail 对象, 用于描述 3D 场景中 Avatar 对象和Object对象运动的轨迹, 能够对3D场景动 态、 实时地进行修改和更新, 同时极大地减少了更 新时的数据量。 (51)Int.Cl. 权利要求书 1 页 说明书 10 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书10页 附图1页 (10)申请公布号 CN 103885786 A CN 103885786 A 1/1 页。
3、 2 1. 一种 3D 场景互动模型, 其特征在于, 包括 : 主体虚拟化对象, 用于描述 3D 场景中使用者主动控制的对象 ; 客体对象, 用于描述 3D 场景中非主动控制的对象 ; 触发器对象, 用于描述 3D 场景中的触发区 ; 轨迹对象, 用于描述 3D 场景中主体虚拟化对象和客体对象运动的轨迹。 2. 根据权利要求 1 所述的 3D 场景互动模型, 其特征在于, 所述主体虚拟化对象包括使 用者主动控制的在 3D 场景中行走的人或者在 3D 场景活动的物体。 3. 根据权利要求 1 所述的 3D 场景互动模型, 其特征在于, 所述客体对象对主体虚拟化 对象的操作进行响应。 4. 根据权。
4、利要求 1 所述的 3D 场景互动模型, 其特征在于, 所述当主体虚拟化对象进入 和 / 或离开触发区时, 触发器对象做出相应的响应。 5. 根据权利要求 1 所述的 3D 场景互动模型, 其特征在于, 所述主体虚拟化对象和 / 或 客体对象沿着轨迹对象进行移动。 6. 根据权利要求 1 至 5 任意一项所述的 3D 场景互动模型, 其特征在于, 通过场景描述 标记语言文件记录所述 3D 场景的结构布局, 描述 3D 场景中每个对象的大小位置和朝向。 7. 根据权利要求 1 至 5 任意一项所述的 3D 场景互动模型, 其特征在于, 通过场景样式 语言文件记录所述 3D 场景的样式, 描述 3。
5、D 场景中每个对象的样式。 8. 根据权利要求 1 至 5 任意一项所述的 3D 场景互动模型, 其特征在于, 通过基于对象 和事件驱动的客户端脚本语言文件记录所述 3D 场景中的互动行为, 描述主体虚拟化对象、 客体对象和轨迹对象之间的互动行为。 9.根据权利要求1至5任意一项所述的3D场景互动模型, 其特征在于, 所述3D场景还 包括视点对象, 用于描述使用者在 3D 场景中的视点。 10.10. 根据权利要求 9 所述的 3D 场景互动模型, 其特征在于, 所述主体虚拟化对象的 创建和使用方法包括以下步骤 : 步骤 S1, 根据 3D 场景的设计需求在脚本中显式地创建一个或多个主体虚拟化。
6、对象 ; 步骤 S2, 通过视点对象的 attach 方法将所述主体虚拟化对象挂接到视点当中进行联 动。 权 利 要 求 书 CN 103885786 A 2 1/10 页 3 一种 3D 场景互动模型 技术领域 0001 本发明涉及 3D 场景领域, 尤其涉及一种 3D 场景互动模型。 背景技术 0002 目前 3D 场景交互模型普遍运用于 3D 游戏或者 3D 软件里, 但是现有的 3D 场景交 互模型, 都是预先定制好并且固化到游戏和软件里的, 不可以随便修改, 或者修改起来相当 复杂, 需要开发这款游戏或者软件的专业人员才能修改, 而且修好以后, 需要更新版本, 更 新包的大小动辄几十。
7、、 上百 M, 并不适合使用互联网传播。 发明内容 0003 本发明鉴于上述情况而作出, 其目的是提供一种3D场景互动模型, 能够对3D场景 动态、 实时地进行修改和更新, 同时极大地减少了更新时的数据量。 0004 一种 3D 场景互动模型, 包括 : Avatar 对象 (主体虚拟化对象) , 用于描述 3D 场景中使用者主动控制的对象, Avatar 对 象包括使用者主动控制的在 3D 场景中行走的人或者在 3D 场景活动的物体。 0005 Object 对象 (客体对象) , 用于描述 3D 场景中非主动控制的对象, Object 对象对 Avatar 对象的操作进行响应。 0006 。
8、Trigger 对象 (触发器对象) , 用于描述 3D 场景中的触发区, 当 Avatar 对象进入和 / 或离开触发区时, Trigger 对象做出相应的响应。 0007 Trail对象 (轨迹对象) , 用于描述3D场景中Avatar对象 和Object对象运动的轨 迹 , Avatar 对象和 / 或 Object 对象沿着 Trail 对象进行移动。 0008 进一步地, 通过 SDML(场景描述标记语言) 文件记录所述 3D 场景的结构布局, 描 述 3D 场景中每个对象的大小位置和朝向。 通过 SSL(场景样式语言) 文件记录所述 3D 场景的样式, 描述 3D 场景中每个对象的。
9、样 式。 0009 通过 JS(JavaScript, 基于对象和事件驱动的客户端脚本语言) 文件记录所述 3D 场景中的互动行为, 描述 Avatar 对象、 Object 对象和 Trigger 对象之间的互动行为。 0010 进一步地, 所述 3D 场景还包括视点对象, 用于描述使用者在 3D 场景中的视点。 0011 进一步地, Avatar 对象的创建和使用方法包括以下步骤 : 步骤 S1, 根据 3D 场景的设计需求在脚本中显式地创建一个或多个 Avatar 对象 ; 步骤 S2, 通过视点对象的 attach 方法将所述 Avatar 对象挂接到视点当中进行联动。 0012 根据。
10、本发明, 提供了一种 3D 场景互动模型, 能够对 3D 场景动态、 实时地进行修改 和更新, 同时极大地减少了更新时的数据量。 0013 附图说明 说 明 书 CN 103885786 A 3 2/10 页 4 0014 图 1 是本发明实施方式的 Avatar 对象的创建和使用方法的流程示意图。 0015 具体实施方式 0016 为使本发明的目的、 技术方案和优点更加清楚明了, 下面结合具体实施方式并参 照附图, 对本发明进一步详细说明。应该理解, 这些描述只是示例性的, 而并非要限制本发 明的范围。此外, 在以下说明中, 省略了对公知结构和技术的描述, 以避免不必要地混淆本 发明的概念。。
11、 0017 本发明提供一种 3D 场景互动模型, 能够对 3D 场景动态、 实时地进行修改和更新, 同时极大地减少了更新时的数据量。 0018 一种 3D 场景互动模型, 包括 : Avatar对象, 用于描述3D场景中使用者主动控制的对象, Avatar对象包括使用者主动 控制的在 3D 场景中行走的人或者在 3D 场景活动的物体 , 如汽车、 飞机、 马等。 0019 Object 对象, 用于描述 3D 场景中非主动控制的对象, Object 对象对 Avatar 对象 的操作进行响应 , 如树木花草等。 0020 当 Avatar 对象与 Object 对象产生交互时, Object 。
12、对象根据 Avatar 对象的操作 做出相应的响应, 如当 Avatar 对象汽车撞上 Object 对象树时, Object 对象树做出的响应 为被撞倒折断。 0021 Trigger 对象, 用于描述 3D 场景中的触发区, 当 Avatar 对象进入和 / 或离开触发 区时, Trigger 对象做出相应的响应。 0022 Trail对象, 用于描述3D场景中Avatar对象 和Object对象运动的轨迹, Avatar 对象和 / 或 Object 对象沿着 Trail 对象进行移动。 0023 Trail 对象可以动态的生成, 这样 Avatar 对象就可以根据动态生成的 Trail。
13、 对象 导航到 3D 场景中的任意目的地。 0024 3D场景互动模型通过SDML文件记录该3D场景的结构布局, 描述3D场景中每个对 象的大小、 位置和朝向。 通过 SSL 文件记录该 3D 场景的样式, 描述 3D 场景中每个对象的样式。 0025 通过 JS 文件记录该 3D 场景中的互动行为, 描述 Avatar 对象、 Object 对象和 Trigger 对象之间的互动行为。 0026 这样整个 3D 场景通过 SDML 文件、 SSL 文件和 JS 文件来进行描述, 与普通二维网 页通过 HTML 文件、 CSS 文件和 JS 文件来进行描述类似。 0027 3D 场景中还包括视。
14、点对象, 用于描述使用者在该 3D 场景中的视点。 0028 图 1 是本发明实施方式的 Avatar 对象的创建和使用方法的流程示意图。 0029 如图 1 所示, Avatar 对象的创建和使用方法包括以下步骤 : 步骤 S1, 根据 3D 场景的设计需求在脚本中显式地创建 Avatar 对象。 0030 其中脚本通过 JS 文件来进行描述。 0031 步骤 S2, 通过视点对象的 attach 方法将 Avatar 对象挂接到视点当中进行联动。 0032 由于使用者的具体表达体存在不确定性, 因此允许在同一时间内创建多个 Avatar 对象, 并且每个 Avatar 对象可以有独立的视觉。
15、表达, 而且可以挂接到视点的不同位置和不 说 明 书 CN 103885786 A 4 3/10 页 5 同朝向。 0033 实施例 1 创建 Avatar 对象 : avatar = new Avatar; 初始化 Avatar 对象 : 设置 Avatar 对象的 id, 例如 avatar.id=” my avatar” , 该 id 在存在多个 Avatar 对象 的情况下具有唯一可识别性, 例如在 Trigger 对象的 onEnter 事件当中, 可以通过 comp.id 来辨别是哪个 Avatar 对象进入了该区域。 0034 确保视觉表达要素所需的资源已经准备就绪, 并设置 A。
16、vatar 对象的视觉表达要 素。 0035 将 Avatar 对象挂接到视点当中。 0036 Object 对象的属性、 方法和事件定义 : 方法 - playAnimation 功能 播放指定动画 返回值 无 方法 - stopAnimation 功能 停止播放动画 说 明 书 CN 103885786 A 5 4/10 页 6 返回值 无 方法 - setFocus 功能 设置对象进入焦点状态 (进入最佳视角) 返回值 无 方法 - killFocus 功能 退出对象焦点状态 (退出最佳视角) 返回值 无 方法 - faceTo 功能 让对象面向指定目标点 返回值 无 事件 - onPl。
17、ayAnimationFinish 功能 每次动画播放完毕后调用此事件 返回值 整型, 保留参数, 当前要求返回 0 事件 -onFocus 功能 当对象的焦点状态发生。 0037 返回值 整型, 保留参数, 当前要求返回 0 说 明 书 CN 103885786 A 6 5/10 页 7 事件 -onHover 功能 当鼠标停留指示在对象上时, 或者从停靠指示退出指示时, 将会触发本事件。 0038 返回值 整型, 保留参数, 当前要求返回 0 说 明 书 CN 103885786 A 7 6/10 页 8 事件 -onLClick 功能 当鼠标左键点击在对象上时, 将会触发本事件。 003。
18、9 返回值 整型, 保留参数, 当前要求返回 0 名称类型值域 说明 compobject非空 鼠标点击的对象 evt.xxx 参考 onHover 说 明 书 CN 103885786 A 8 7/10 页 9 事件 -onRClick 功能 当鼠标右键点击在对象上时, 将会触发本事件。 0040 返回值 整型, 保留参数, 当前要求返回 0 名称类型值域 说明 compobject非空 鼠标点击的对象 evt.xxx 参考 onHover Trigger 对象的属性和事件 名称类型值域说明 coords string 多边形坐标序列描述 area 形状大小的具体坐标信息 事件 -onEnt。
19、er 功能 当 Avatar 对象进入到 Area 区域时, 触发本事件。 0041 返回值 整型, 保留参数, 当前要求返回 0。 0042 备注。 0043 事件参数中只给出了穿越过程中的两个关键点, 如果需要知道穿越后的具体方 位, 可以通过访问 view 对象的相关属性获得。 名称类型值域 说明 compobject非空 进入区域的 Avatar 对象 evt.fromvector3 非空 Avatar 在本帧刷新中移动的起点 evt.acrossvector3 非空 穿越区域时和区域的交点坐标 0044 事件 -onLeave 功能 当 Avatar 对象离开 Area 区域时, 触。
20、发本事件。 0045 返回值 整型, 保留参数, 当前要求返回 0。 0046 备注。 0047 事件参数中只给出了穿越过程中的两个关键点, 如果需要知道穿越后的具体方 位, 可以通过访问 view 对象的相关属性获得。 名称类型值域 说明 compobject非空 离开区域的 Avatar 对象 evt.fromvector3 非空 Avatar 在本帧刷新中移动的起点 evt.acrossvector3 非空 穿越区域时和区域的交点坐标 0048 Trail 对象的属性、 方法和事件。 0049 Trail 对象是 SDML-DOM 体系的重要控制对象, 其主要功能为 : Object 对。
21、象绑定到 Trail 对象后, Trail 对象控制 Object 对象沿着特定轨迹按照不同方式进行移动。 名称类型值域说明 coordsstring一串三维坐标点Trail 对象将字符串转换一系列三位坐标, 作为对象移动的轨迹。 gravitationalboolfalse、 true对象移动时是否贴地 说 明 书 CN 103885786 A 9 8/10 页 10 0050 方法 - attachObj 功能 Object 对象绑定到 Trail 对象 返回值 无 方法 - detachObj 功能 将 Object 对象从 Trail 对象上卸载下来停止移动 返回值 无 名称 类型值域。
22、 说明 objjObject* Object 对象 方法 - setObjSpeed 功能 设置 Object 对象沿 Trail 对象移动时的速度 返回值 无 名称类型值域说明 objjObject* Object 对象 speed float0, + 速度 方法 - setObjToward 说 明 书 CN 103885786 A 10 9/10 页 11 功能 设置 Object 对象沿 Trail 对象移动时的方向 返回值 无 名称类型值域说明 objjObject* Object 对象 toward boolfalse、 truefalse 是向第 0 个轨迹点移动 ,true 是。
23、向最大一个轨迹点移动 方法 - setObjAcceleration 功能 设置 Object 对象沿 Trail 对象移动时的加速度 返回值 无 名称 类型值域说明 objjObject* Object 对象 afloat- , + 0 时做加速运动 方法 - setObjIndex 功能 设置 Object 对象移动到 Trail 对象第几个轨迹点 返回值 无 名称类型值域 说明 objjObject* Object 对象 index int0、 n将 Object 对象直接移动到 Trail 对象轨迹的第几个轨迹点 方法 - setObjOrient 功能 设置 Object 对象沿着 。
24、Trail 对象轨迹移动时, Object 对象的哪个坐标轴朝前 返回值 无 名称类型值域说明 objjObject* Object 对象 orientstring-x、 +x、 -y、 +y、 -z、 +zObject 对象沿着 Trail 对象轨迹移动时, 对象的那个坐标轴朝前 方法 - setObjVertical 功能 设置 Object 对象沿 Trail 对象移动时的是否保持重力方向 返回值 无 名称类型值域说明 objjObject* Object 对象 vetical boolfalse、 truefalse 是无需保持重力方向 ,true 保持自身重力方向 方法 - setO。
25、bjMonitored 功能 设置 Object 对象沿 Trail 对象移动时是否碰撞触发器 说 明 书 CN 103885786 A 11 10/10 页 12 返回值 无 名称类型值域说明 objjObject* Object 对象 monitored boolfalse、 truefalse 是不碰撞触发器 ,true 是碰撞触发器 方法 - setObjLoop 功能 设置 Object 对象沿 Trail 对象移动时的到达终点后的运动方式 返回值 无 名称 类型值域说明 objjObject* Object 对象 loop int-1、 0、 1、 2-1 停止、 0 重复、 1 。
26、循环、 2 往返 方法 - getVertexCount 功能 获取 Trail 对象轨迹点的总个数 返回值 整型 轨迹点总的个数 应当理解的是, 本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原 理, 而不构成对本发明的限制。 因此, 在不偏离本发明的精神和范围的情况下所做的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 此外, 本发明所附权利要求旨在 涵盖落入所附权利要求范围和边界、 或者这种范围和边界的等同形式内的全部变化和修改 例。 说 明 书 CN 103885786 A 12 1/1 页 13 图 1 说 明 书 附 图 CN 103885786 A 13 。