diguy入门教程_第1页
diguy入门教程_第2页
diguy入门教程_第3页
diguy入门教程_第4页
diguy入门教程_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vega DI GUY 平台的虚拟人物仿真教程 别别忘了加精啊 忘了加精啊 节选于 基于 Multigen Vega 虚拟现实平台的开发与应用 D 张继伟 中国海洋大学 2006 Jun pp 22 38 人物是虚拟仿真程序中的灵魂之一 为仿真程序中增添人的因素将会大大增强虚拟仿真程序的真实感 本章将结合实验室相关基础 重点论述虚拟现实中人物的建模方法及仿真实现过程 4 1 虚拟人物的建模技术 虚拟人的建模是研究虚拟人的第一步 主要是进行人体几何建模 既需要考虑人体的基本结构也需要 考虑人体运动的动态特性 最初生成的人体几何模型有棒模型 体模型 这两种模型的真实感较差 随着虚拟人建模技术的发展及先进建模软件的不断出现 逼真的人体造型已经逐渐成为了可能 人体 具有复杂而且不规范的表面 从几何的角度来看 人体模型的问题就是产生不规则形状的问题 为了产生具有真实外观的人体几何模型 需对人体的运动结构进行分析 根据人体的测量结果 基于 人的骨架模型进行基于非均匀有理 B 样条 NURBS 曲面的外形建模 并结合构造实体几何法 CSG 创建人体几何模型 4 1 1 人体的运动结构分析 从解剖学的角度来看 人体运动系统由骨 骨连接和骨骼肌通过运动关节组成 骨骼外面附着皮肤 可随骨骼一起运动 人体的动作不是由骨骼自身的变化引起的 而是由连接在关节上的骨骼位置和方 向的变化所决定 运动中各骨骼长度和形状是不变的 通过关节连在一起 身体各部分在神经系统的 调节和其他系统的配合下 在空间中运动并使各骨骼在空间的位置相对改变 由于可指定骨骼的形状 和连接骨骼的关节属性 所以用骨骼模型来构建人体几何模型是可行的 关节属性中最重要的是连接在关节上的骨骼自由度和身体可移动范围 连接在关节上的骨骼可以关节 为中心进行旋转或移动 因骨骼的移动非常微小 所以大部分情况将人体模型简化为只考虑旋转的情 况 4 1 2 虚拟人的几何模型 通常 人体几何模型可以在三个层次上进行构造 骨架 肌肉和皮肤 由于一般情况下我们不考虑人 体模型运动过程中的肌肉的变化 所以只进行骨架和皮肤两个层次的建模 这样做的优点是既可以通 过骨架模型来指定精确的运动 表示人体的内部结构 又可以用皮肤模型来描述人体的外部形状 刻 画逼真的人物形象 1 骨架模型 骨架模型是将人体表示为一组关节和肢体的集合 可将人体的骨架模型简化为 17 个杆件共 37 个自由 度 如图 4 1 所示 把人体的关节统一视为球形关节 在具体的应用中再对某些关节的运动加以约束 使之限制在合理的运动范围内 4 14 1 图 4 1 基于 NURBS 的人体曲面模型 Snap3 jpg 35 48 KB 下载次数 36 Snap4 jpg 25 72 KB 下载次数 33 4 1 34 1 3 人体模型的构造实体几何法人体模型的构造实体几何法 Snap5 jpg 36 68 KB 下载次数 40 4 24 2 虚拟人的运动建模虚拟人的运动建模 关节连接体由关节及连接各关节的骨架组成 它描述了人体模型中各肢体之间的运动连接关系 以腰 关节为节点 对于相邻的两个关节 设定靠近腰关节的关节为父节点 连接在父节点之下的关节就设 定为子节点 为了表达人体模型的层次结构 可选用树结构来进行描述 采用自上而下完成分层结构 的构造 根据图 4 3 中所示的人体骨架模型 把关节分层次结构如图 4 3 所示 Snap6 jpg 15 1 KB 下载次数 37 基于人体的关节连接体层次结构 将各肢体抽象为简单的刚性几何体 关节抽象为一个球体 为了描 述人体骨架模型中各关节之间的相对位置和姿态的变化 这里定义了三类坐标系 世界坐标系 人体 基坐标系和各关节的局部坐标系 坐标设定如图 4 4 所示 Snap7 jpg 12 76 KB 下载次数 31 人体坐标系的制定规则如下 取人体腰关节为人体质心 在此处设立人体极坐标系 设水平面与额状 面的交线为 X 轴 额状面与矢状面的交线为 Z 轴 水平面与矢状面的交线为 Y 轴 从而与世界坐标 系各轴的方向保持一致 由此出发 沿图示顺序设立各关节的局部坐标系 取关节轴的方向为 Z 轴正 方向 取上一关节和该关节的连线方向为 X 轴的正方向 然后按照右手规则建立 Y 轴正方向 另外 规定各肢体绕每个坐标轴转动时 从该轴的正方向看 逆时针为正方向 顺时针为负方向 并 规定人体的起始姿态为直立姿态 所有的动作角度均为相对于初始姿态的角度 Snap8 jpg 3 01 KB 下载次数 38 Snap9 jpg 27 7 KB 下载次数 32 Snap10 jpg 8 16 KB 下载次数 32 Snap11 jpg 25 59 KB 下载次数 34 4 3 Vega 中虚拟人物的仿真 Vega 中进行人物仿真基本上可以分为三种方式 借助 Multigen Creator 中所附带的动画序列 Animation Sequence 技术产生动画效果 借助多种建模工具 生成基于骨架 蒙皮的人物模型 然后通过软件之间的接口将人物模型转化为 Vega 能够识别的模型结构 然后进行仿真 通过专用软 件进行仿真 由于第一种方法所采用的是模拟传统二维动画创作的方法 通过连续播放一系列动画画 面来产生人物连续运动的效果 在 Creator 中就是通过按照指定的顺序依次显示组节点下的单个子节 点来实现这个过程 但在复杂的仿真过程中 当对动作的频率 样式等要求较高时 此种人物仿真就 显得过于单调 失去了真实性 因此在这里不过多叙述 4 3 1 多种建模软件的联合建模及在 Vega 中的人物仿真实现 4 3 1 1 问题的提出 如前所述 Multigen Creator 是对大地形场景建模最好的工具 这同时也决定了它对于人物建模这样 细节要求较高的建模方式并不擅长 因此需要其它软件的辅助 才能够很好的进行人物建模 3D Max 虽然对细节建模较为擅长 但由于人体的体构造的复杂性 对于非艺术建模出身的人来说建立精确而 美观的人体模型仍是一件很困难的事情 因此也不适合快速进行人体建模 4 3 1 2 多软件联合人物建模的实现 本文采用专业级的人物建模软件 Poser 来完成人物的制作 借助其与 3D Max 的接口将其转化为 3D Max 所支持的 3DS 格式 通过 Creator 与 3D Max 的接口读取 3DS 格式的人物模型文件进行后续处 理 Poser 是 Fractal Design 出品的三维人物绘制软件 可以用它绘制人物 再利用其它的软件进行加工 启动 Poser 程序时 缺省新建文件中已有一个普通男性人体 其类型 Figure type 为普通男性 Male Casual 高度 Figure Height 为 Ideal Adult 左手 Left hand 和右手 Right hand 缺省为放松姿 势 Relaxed 这些都可在 Figure 菜单下进行更改 Poser 提供了九种缺省的男性类型 九种女性类 型和五种小孩 包括少年 的类型 还包括一种木偶类型 在九种成人类型中均有骨骼造型 这对一些 特殊用途的作品十分有用 如果你不满足于使用缺省的类型 可以用工具箱中的工具进行修改 修改 工具包括旋转 Rotate Tool 按自坐标旋转 Twist Tool 移动 Translate Tool Z 轴移动 Ztranslate Tool 末端缩放 TaperTool 断开链接 Chain Break Tool 关键节点 Focal LengthTool 选择 Pose 模式时 这些工具针对身体的各个部分进行操作 选择 Body 模式时 这些工 具则对整个身体进行操作 Poser 的界面如图 4 5 所示 Snap12 jpg 6 12 KB 下载次数 31 对一般的作品来说 缺省的人体比例更为匀称 在 Poser 的库中存储了一百多种经典的姿势 包括大 卫 维纳斯 奔跑 游泳 交谈等等 在 File 菜单下选择 Export 可以看到不少选项 可以生 成 3DS DXF OBJ 3MF 等后缀名的文件 这些都是其它三维软件的格式 如果输出以后姿势不会再 有变化 就不要复选 Export object groups for each body part 本文中选择 3DS 格式为输出格式 在 Poser 中构建好相应的人物后 使用 Export 命令就可以将 所构建的模型导成 3DS 格式 导出后 在 Creator 的 File 菜单中选择 Import 然后选择 3DS 格式 就可以将建好的 3DS 格式文件导入到 Creator 中进行后续处理 导入后的效果如图 4 6 所示 Snap13 jpg 5 32 KB 下载次数 29 4 3 1 3 DOF 节点的创建及设置 完成上述模型导入后就可以进行对人物 DOF 节点的设置 要在模型数据库中使用 DOF 节点需要进行 如下几个步骤 1 创建 DOF 节点 因为 DOF 节点与组节点的级别相同 所以创建 DOF 节点时必须以组节点或其 他同级别的节点 如 LOD 节点等 作为父节点 用户可以使用创建工具箱中的创建 DOF 工具在模型 数据库的层级视图中创建 DOF 节点 2 使需要设置自由度的模型对象的对应节点成为 DOF 节点的子节点 DOF 节点可以控制层次视图 中其所有的子节点 包括其子 DOF 节点 而且 DOF 节点具有继承性 以保证所有的子节点都能符合 逻辑的运动 比如 在上面的人模型中 人的手臂处的 DOF 可以控制整个手臂的运动 人的手腕处的 DOF 又可以单独控制手的运动 3 使用 Local DOF Position DOF 菜单创建局部坐标系 为模型对象定义自由度 必须创建相应 的局部坐标系 因为模型对象的所有运动都是相对于该局部坐标系的 要在图形视图中显示局部坐标 系 必须启动视图面板上的显示 DOF 坐标轴 View DOF Axes 按钮 人模型的局部坐标系在图形视 图中的显示效果如图 4 7 所示 Snap15 jpg 5 99 KB 下载次数 31 4 设置 DOF 节点的自由度的范围 可使用 Local DOF Set DOF Limits 菜单命令 在 DOF 节点属性窗口中设置自由度范围 要注意的是 所设置的所有自由度属性都是相对于 局部坐标系而言的 5 检查应用效果 使用 Local DOF DOF Viewer 菜单命令 可以检查模型数据库中所 有 DOF 的应用效果 DOF 节点创建完毕后 其所对应的模型数据库如图 4 8 所示 Snap16 jpg 14 82 KB 下载次数 39 DOF 节点设置 Snap17 jpg 56 71 KB 下载次数 33 4 3 1 4 基于 DOF 节点技术的 Vega 人物仿真程序实现 当所有的 DOF 均设置完毕后 就可以将其导出形成 OpenFlight 格式 flt 的文件了 在 Vega 中 可以通过其强大的 API 函数库来对所创立的具有多 DOF 节点的人物模型进行控制了 这里以人物的头部转动为例 给出在 Vega 中实现的程序代码 Snap18 jpg 15 71 KB 下载次数 32 Snap19 jpg 12 55 KB 下载次数 30 Snap20 jpg 23 64 KB 下载次数 35 其它部位在 Vega 中的 DOF 控制方法与上述控制方法一致 涉及到各 DOF 节点的协调控制 在此不 再赘述 但在使用 DOF 节点在 Vega 中进行仿真时 需要注意以下两点 DOF 节点名称的字母数 量不能是 2 也不能是 4 的倍数 否则 在 VC 结合 Vega API 编程的时候使用 vgFindPart 函数将 无法找到节点 DOF 节点下不能有外部引用 否则也无法找到节点 为了解决这个问题 可 以把 flt 的 OpenFlight 格式转化成 fst 格式 在 Vega 场景中引入 fst 格式的模型 这样就可以对 DOF 节点进行很好的控制 整体人物仿真效果如图 4 9 所示 Snap21 jpg 9 36 KB 下载次数 28 4 3 2 基于 Boston Dynamics DI Duy 软件的 Vega 人物仿真 4 3 2 1 DI Duy 软件概述 Boston Dynamics 公司的 DI Guy 软件 是以 OpenFlight 格式为基础的三维人物仿真软件 可以完全 集成到 Vega 工具包中 每个 人物 可以根据简单的指令在环境中漫游 DI Guy 自动地给人物提供 相应的特征 而不需要动画师的处理 甚至在人物间的转换中 也可以提供自然的运动和无缝地转化 用户还可以通过 Vega 中的 Lynx 控制 面板和 DI Guy API 定义特别的行为 例如 人物的衣服和装备 被赋予的行为等 Dl Guy 是全程交互的软件 可以响应所有实时的指令 软件通过运动缓存优化 可变动作差补 高水 平细节的转化 运动细节的转化 任务水平的控制等来达到逼真的实时效果 这些技术使同时显示几 十种连接的 DI Guy 特征成为可能 DI Guy 最初是为美国军方进行兵力仿真而进行设计的 其中包括 一套描绘步兵特征的选项 它利用了真实士兵训练的特征 具有达七级细节水平的全纹理模型 多种 制服 战斗服 沙漠伪装 陆战服 伊拉克绿等 武器 Ml6 AK47 M203 和多种附属装备 背 包 水壶 刺刀等 它可定义的行为包括 站 跪 匍匐前进 走 跳 潜行 使用武器 及其他 活动 除此之外 DI Guy 也包括一些其他种类人物及其相关动作 这使得使用变得非常简单 DI Guy 软件动作类型及人物的模型相当丰富 基于 DI Guy 的虚拟人运动控制主要是利用 DI Guy 强 大的 API 函数 其虚拟人的运动动作非常逼真 能够产生较好的沉浸感 DI Guy 的多提供的各类人 物及其仿真效果如图 4 10 所示 Snap22 jpg 9 69 KB 下载次数 28 4 3 2 2 DI Duy 人物仿真实现 由前文所述可知 单纯的使用 DOF 节点需要对人物模型添加并设置多个 DOF 节点 且人物的仿真程 度越高 效果越好所需要的 DOF 节点数就越多 在 Vega 中进行 DOF 节点控制时 所需要编写的多 DOF 节点之间的协调控制算法就越为复杂 而且需要大量的测试才能达到用户所需效果 既费时又费 力 DI Guy 很好的将基于 OpenFlight 格式的人物及其动作进行了封装 以面向对象的方式提供给了用户 API 函数库 使得用户不需要进行大量的 DOF 节点的运动协调操作就可以在 Vega 中直接调用其 API 函数进行人物动作的控制与仿真 但 DI Guy 不是作为 Multigen Vega 的一部分 需要单独购买安装 才能与 Vega 结合 将 DI Guy 安装后并添加相应的许可证文件后 将在 Vega 的 LynX 控制面板的 左侧选项卡中出现 DI Guy 的模块选项 如图 4 11 所示 Snap23 jpg 12 74 KB 下载次数 36 此时在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论