2. 南京邮电大学 传媒与艺术学院, 南京 210023
2. College of Media and Art, Nanjing University of Posts and Telecommunications, Nanjing 210023, China
艺用人体解剖学是根据艺术探究的需要, 以人的骨骼和肌肉作为研究对象, 研究人体内部结构、外部形象以及人体动作和姿态等基本规律的一门学科. 艺用人体解剖和医用人体解剖不一样, 其目的是在艺术创作中更准确地表达人体的外形. 据不完全统计, 为了更好地让学生掌握人体结构绘画和动画制作的方法, 很多高校的动画专业或者美术专业都需要学习艺用人体解剖的知识[1].
艺用人体解剖已经作为必修内容, 但是教学方法上一直存在缺陷. 很多教师还是以灌输的方式在授课, 作为一门理论课程, 学生需要反复记忆一些骨骼和肌肉的名称和作用, 效率低, 很难引起学生的兴趣, 也无法学以致用, 经调查发现[2], 传统的学习中主要存在以下几个问题:
(1)在学习初期, 学生大多只知道人物的大致画法, 但对人物比例, 骨骼肌肉状态的掌握相对比较稚嫩, 绘画时经常容易造成一些错误, 同时老师在授课时传统的图片展示, 以及视频讲解往往不能更加直观有效的让学生去理解.
(2)在学习过程中, 学生虽然掌握了解了基础的骨骼和肌肉的知识, 但是通常人物姿态发生变化后, 学生不能够清楚正确意识到人物骨骼肌肉变化规律, 在绘画时通常会造成错误.
(3)在课下自由练习时, 学生无法花巨额的资金去聘请模特, 对模特相片绘画, 只能选择相片拍摄者给出的角度, 往往不具备美感.
为了解决上述问题, 学者们都从提高艺用人体解剖的实践性方面开展研究[3]. 随着虚拟仿真技术的发展, 仿真模拟系统已广泛应用在各行业[4]. 本文引入虚拟现实技术(Virtual Reality, VR), 开发基于Forge平台的艺用人体结构仿真系统. 系统按照人体结构进行模型构建及可视化过程, 完全遵照动画运动规律, 模拟骨骼肌肉的运动仿真. 通过“漫画人物姿态仿真”模块, 实现学习者对漫画人物动作姿态的深刻认知, 提高绘画技巧. 学习者通过该平台可以全方位、多角度的自由浏览和认识人体骨骼系统和肌肉系统, 仔细观察特定部位的运动仿真, 充分表现了虚拟现实的沉浸感和交互性.
1 系统设计艺用人体结解剖绘画仿真系统的设计要求能模拟人体结构以及人体骨骼与肌肉的运动过程, 同时考虑到使用该系统的用户主要是美术专业、绘画专业、动漫专业的学生, 他们虽然从理论课的学习中大致了解了人体结构, 但是将理论运用在绘画和动画制作上尚有一段距离, 所以系统的设计旨在为用户提供一个虚拟的人体结构仿真平台, 通过对人体结构的模拟, 实现骨骼和肌肉系统动画. 同时为了让用户了解在绘画时不同的位姿对应的骨骼和肌肉变化, 把握绘画的技巧, 加入了漫画人物姿态仿真功能, 实现漫画人物的姿态仿真.
1.1 系统框架系统框架如图1, 通过对人体结构的了解, 人体结构从类型上分为男性和女性两类; 从认识的结构层次分为骨骼、肌肉、外部形态, 从认识部位分为头、躯干、四肢. 针对这些实际需求, 系统的设计方案为分类型选择、分层次学习. 分类型选择主要是进行平台后选择男性或者女性的人体结构; 分层次学习可分为骨骼的认识、肌肉的认识、骨连接处的肌肉运动演示、绘画中的关键动作对应的人体结构状态等. 学习者可以通过单击可交互结构来实现人体各部位的信息, 对人体结构的某一部位进行任意的操作或者从漫画人物动作库中任意选择一个动作进行观察, 实现对人体结构更深入地了解, 从而达到指导绘画的目的.
1.2 系统功能
根据系统的需求分析, 艺用人体解剖绘画仿真系统包含人体结构仿真和漫画人物姿态仿真. 人体结构仿真下用户可以观察骨骼、肌肉系统以及对应的关节动画; 漫画人物姿态仿真下, 用户可以用漫画人物动作库中任意选择一个动画, 观察其对应的骨骼和肌肉特征.
1.2.1 人体结构仿真人体建模一直是计算机图形学的研究热点之一. 目前人体建模技术主要包括三维扫描数字建模、参数化建模、三维软件建模等. 虽然三维软件建模成本相对较大, 但是几种人体建模方法中最精确美观的, 考虑到本系统的使用人群, 本系统选用三维软件建模方式[5], 分为骨骼、肌肉、外部形态, 选用基于物理的角色运动方法实现运动仿真[6,7]. 进入仿真平台后, 用户可以通过菜单选择学习男性人体结构或是女性人体结构. 通过UI界面选择学习人体的哪个部位, 包括头部、躯干、四肢, 进而选择学习骨骼系统或者肌肉系统. 用户每选择一个对象, 都会显示该对象的基本信息, 用户也可以对该对象进行隐藏、显示、旋转、缩放、测量、观看运动动画等操作.
1.2.2 漫画人物姿态仿真动漫专业、美术专业等都要求学生掌握漫画人物的绘画技巧, 而漫画人物虽形象上与普通人有所不同, 但她的动作即便夸张化也应当符合人体的动画运动规律. 在漫画人物姿态仿真模块, 用户可以从平台的漫画库中任意选择漫画人物的一个动作, 查看其对应的骨骼和肌肉状态, 体会绘画时的细节; 可以通过调整骨骼或肌肉, 观察漫画人物动作的同步变化, 从而更深刻掌握绘画技巧.
2 关键技术 2.1 人体结构建模人体结构模型使用几何建模法在3DsMax平台和Zbrush平台下按照人体结构比例、采用块面加线的模式完成人物模型的构件和可视化过程. 为了准确表现人体结构, 首先通过PhotoShop为绘制人体骨骼、肌肉分布线稿三视图, 并导入MAX中作为参考. 从骨骼开始构建人物模型框架, 先利用MaxScript生成对应尺寸的初始模型, 核心代码如下:
Cylinder()
$.name=初始名称
$.height=初始长度(cm)
$.radius=初始半径(cm)
$.heightsegs=初始的长度/2 (每2厘米分为一段)
$.position=初始的三维坐标
关键步骤如下:
第1步. 将初始模型转换为构成算法更加优秀的可编辑多边形, 通过修改器中的FFD(自由变形)、挤出、涡轮平滑、球面化等生成骨骼的初步模型.
第2步. 利用Zbrush平台, 对MAX中的制作模型进行二次模型雕刻, 可以得到更加细腻的模型.
第3步. 通过Substance Painter为模型绘制基础贴图、高度贴图、法线贴图、AO贴图, 使模型大大提高真实度[8].
在做肌肉模型时, 要考虑肌肉与肌腱、腱膜的关系, 以及肌肉的起始点和终止点. 这样制作出来的肌肉才会符合真实人体肌肉[9].
2.2 人体运动仿真为了在绘画和动画制作过程中, 使人物显得更自然、合理, 就需要研究时间、空间、张数、速度的概念以及彼此之间的关系, 也就是处理好动画和漫画人物动作的节奏规律. 动画运动规律大致分为人类、动物和自然现象3个方面. 本系统表现的是人体运动仿真, 因此首先要研究和掌握人物动作的一些基本规律, 比如走路时, 左右脚交替向前, 带动驱赶朝前运动; 奔跑时, 身体重心向前倾, 两手自然握拳, 手臂略成弯曲状等[10].
我国在人体运动仿真上也取得了一些研究成果, 以医学和体育方向的偏多. 文献[11]提到Minetti等通过计算机仿真, 研究了古希腊运动员为提高奥林匹克跳远比赛成绩而提重物训练的现象等. 本系统中人体运动仿真构建的主要方法是先以3DMax骨骼动画结合OptiTrack三维动作捕捉设备捕捉到的自然人真实的物理运动过程等数据作为基础, 运用计算机模拟人体运动过程, 并将运动过程赋予计算机建立的虚拟人体模型.
2.2.1 骨骼动画骨骼动画是当前模型两种动画方式之一, 是由互相连接的“骨骼”组成骨架结构, 通过改变骨骼的朝向和位置来生成动画. 骨骼动画通常包括骨骼层次结构数据、网格数据、网格蒙皮数据和骨骼动画关键帧数据[12].
骨骼层次结构数据决定了模型整体在世界坐标系中的位置和朝向, 首先要设置根骨骼, 然后根据骨骼之间的变化关系计算出各个骨骼的位置和朝向. 网格数据就是一层皮肤, 如果没有骨骼, 网格就和静态模型一样. 网格蒙皮数据是绑定到骨骼上的顶点数据, 包括顶点受哪些骨骼的影响以及影响的权重. 骨骼动画数据是骨骼的运动数据, 本文使用式(1)的线性插值来产生权重对动画的影响效果.
$ \mathop p\nolimits^{'} = \sum {i\left( {\mathop w\nolimits_i * \mathop p\nolimits_{i'} } \right)} $ | (1) |
其中,
以右手手指运动为例, 骨骼层次模型(腕掌关节-掌骨间关节-掌指关节-指间关节), 通过根骨骼的位置变化改变骨骼的朝向. 一个顶点可能有多个骨骼, 设置骨骼的权值, 获得最合适的骨骼运动效果.
2.2.2 动作捕捉动作捕捉[13,14]OptiTrack是一款主动式红外光学定位系统, 它利用多个红外发射摄像头、对室内定位空间进行覆盖, 再被追踪物体上放置红外反光点, 通过捕捉这些反光点反射回摄像机的图像, 确定对象在空间的位置信息. 整体流程可见图2.
本项目采用了8个130万像素分辨率的Flex13摄像头, 摄像头越多, 捕捉的动作越精确, 但是成本也越高. 首先通过摄像头捕捉3个光点的移动来计算三维空间的区域; 然后用L型标定直角对地面进行校准; 摄像机对空间进行红外线覆盖并拍摄, 提出画面中的Mark点; 最后将采集到的动作数据与三维人物绑定即可实现动作捕捉动画.
(1)系统配置
把8台摄像放置好并对准方向后, 演员可以任意姿态站在中间, 使用T型标定杆扫描场景, 划定运动空间. 用L型标定直角捕获3个Mark点进行地面校准, 图3是从相机视图中获取的8台相机的二维数据, 图4是在透视图中获取的三维数据. 一旦标定完成, 不能随便移动摄像头的位置, 否则会在后续的捕捉动画中出现数据溢出.
(2) Mark点捕获
选择标记定的绑定模式, 以Baseline为例, 该模式下绑定标记点37个, 测试人员需要完全按照示意图绑定标记点, 一旦绑定错误, 就会影响相机拍摄到的运动轨迹, 从而使动画数据出错.
(3)校准Mark点
如图6所示, 在动作帧面板, 红色代表X轴, 绿色代表Y轴, 蓝色代表Z轴, 从图中看出动画有断裂处, 表示动作数据出现错误, 这是由于在标定不准确造成, 可通过重新标定或手动修补动画的方式调整动作. 如若不调整, 将对后期动作绑定骨骼有很大的影响.
(4)与内置Actor进行数据传输
通过Motive软件获取动作数据后, 将动作数据导入motion bulider中, 进行骨骼绑定, 如图7所示.
(5)绑定三维模型
当运动数据和骨骼绑定后, 可以采用逆向动力学或者正向动力学来调整人体的运动, 逆向动力学是一种子节点驱动父节点运动的动画制作方法, 而正向动力学是父节点驱动子节点的运动, 两者共同点是让关节运动更加连贯, 表现更加真实. 绑定示意图见图8.
2.3 基于Forge云平台的人机交互本项目的人机交互部分采用了Autodesk Forge API服务, 由于该平台的数据中心是基于AWS的海外搭建, 国内部分地区访问Forge云端口的速度会受到影响. 特别是Forge Viewer浏览大型模型, 以及对反馈时间比较铭感且涉及关键业务的工作流等诸多场景时, 对服务端的存取效率有着较高要求. 因此, 项目中采用离线加载、云端缓存的方案, 实现了流程与性能的优化.
关于离线模型加载, 可以使用新近浏览器原生的Service-Worker和Cache API缓存模型的方案, 通过静态路径解决Viewer库和线上模型资源本身的缓存问题. 但是该实现也存在几点问题: 待缓存的静态链接是根据展示用的模型所需配置的, 模型更换后静态链接也需要手动更新, 一次性缓存了所有实例模型所需的资源, 超配且不必要, 影响加载性能, Viewer库版本一旦更新, 需手动更新缓存的静态资源链接. 因此, 文献[15]提出采用先注册完成缓存任务的Service Worker再加载Viewer库的流程. 这样, Viewer库依赖与模型资源的加载请求也会自动得到缓存, 无需手动干预缓存过程, 大幅增进代码的可维护性.
艺用人体解剖绘画仿真系统提供了360度旋转模型、测量模型角度、长度等功能, 通过group.addControl()和group.removeControl()新增或移除不需要的功能, 使用Three.js根据二维鼠标坐标与旋转角度, 计算出当前点击在三维世界的位置并生成弹窗, 根据旋转角度对弹窗大小进行修改, 调用骨骼动画. 本文使用的旋转角度修改弹窗大小的式(2)如下:
$ Scale = \alpha \left( {\mathop {Ratation}\nolimits_{\rm now} - \mathop {Ratation}\nolimits_{\rm init} } \right) $ | (2) |
其中,
漫画人物的绘画创作是美术专业学生的基础技能之一, 要求学生能从人物内部结构出发, 描绘出以骨骼为支撑、以肌肉作为填充的饱满、生动的人物形象. 传统教学中学生只能从解剖图谱、雕塑人体、局部放大的照片或教学道具中观察骨骼与肌肉, 但是这种理解缺乏交互性. 漫画人物的姿态仿真可以根据漫画人物的动作姿态在三维模型上呈现对应的骨骼和肌肉, 学生通过增减骨骼和肌肉来观察对应的漫画人物姿态.
在漫画人物姿态这部分, 漫画模块通过与Forge云三维模型模块的双向通信来完成实时交互. 漫画模块可以将自身索引传给Forge云模块, 且Forge云模块可以传数据给漫画人物模块. 系统中采用的是连接漫画人物姿态的索引与Forge云3d模型ID之间的关系, 使漫画人物姿态的索引能映射到模型ID上, 即存在α使式(3)成立:
$\mathop I\nolimits_m = \alpha \mathop I\nolimits_c $ | (3) |
同时Forge云的索引需要连接三维动画的部分, 比如, 如果人物漫画为躺着的人, 那么相应的骨骼三维动画将播放躺着的内容. 即存在式(4):
$\mathop I\nolimits_a = \beta \mathop I\nolimits_m $ | (4) |
连接上述公式得式(5):
$\mathop I\nolimits_a = \alpha \mathop I\nolimits_c $ | (5) |
由此得到三维动画索引与漫画索引的关系.
在漫画模块与Forge云模块通信的过程中, 按照式(5)做索引转换, 以此实现漫画与Forge云交互高亮, 动画切换. 当点击Forge云的部分骨骼, 将该索引映射到漫画界面, 在漫画界面将映射后的部分做出颜色修改, 以此实现选中骨骼与漫画高亮, 同时当点击漫画部分肢体时, 实现反向传输到Forge云上, 修改相应的骨骼状态与三维动画状态.
3 系统测试为了验证该系统是否满足美术类课程的要求, 笔者邀请了动画专业的200名学生以及5位教师对该系统各个模块进行了测试, 包括系统的功能测试和性能测试, 功能测试. 主要包括: 1)系统的人机交互是否有好; 2)人体结构仿真模型是否具有科学性; 3)人体运动仿真是否符合动画运动规律; 4)漫画人物姿态仿真是否合理. 测试结果如表1所示.
测试结果表明, 该系统具有较高的科学性和仿真度, 骨骼肌肉动画符合人体动画运动规律, 漫画人物的姿态与是三维仿真模型能做到高精度的匹配.
除功能测试外, 性能测试主要目的是在大用户量、数据量的超负荷下, 获得服务器运行时的相关数据, 如初步确定系统的最大在线用户数、系统在合理压力下稳定性运行情况等, 从而进行分析, 查看该网站系统是否能符合需求. 网络测试环境为CPU2核、内存4 GB, 带宽20 MB, 测试结果如表2所示.
测试结果表明, 并发人数对本系统的三维场景加载速度影响较大, 对网页响应时间影响较小. 但由于三维仿真系统的运行流畅程度与客户机的配置关系很大, 包括CPU和内存的性能等. 为此, 笔者也选择的4种不同配置类型的机器进行测试, 测试结果如表3所示.
测试结果表明, 用户机的配置CPU在双核及以上, 内存在4 GB及以上, 系统运行的流畅度较高.
4 结束语本系统基于Forge云开发了一个艺用人体解剖绘画仿真系统, 为美术类和动漫类学生提供了一个较为具象的仿真人体结构, 提供了丰富的人机交互功能, 从而加深学生对人体骨骼以及肌肉系统的认知, 更加准确地构造漫画人物造型和位姿. 系统采用3Ds MAX软件构建人体模型, 在遵照人物运动规律的前提下, 通过动作捕捉设备以及骨骼动画完成人体骨骼与肌肉的运动仿真, 采用Forge云平台和Three.Js实现人机交互, 为用户提供了旋转、测量、360度观察人体仿真模型的功能. 基于绘画的实践需求, 设计了漫画人物姿态仿真功能, 实现了漫画人物关键动作的三维仿真模拟, 允许用户任意删减骨骼或模型, 实时观察修改后的漫画姿态, 便于用户从实践角度把握绘画的技巧. 通过志愿者对系统的测试证明, 该系统的仿真度和易用性较高, 打破了现实条件以及空间的限制, 为数字化学习和移动学习提供了环境, 有助于学习者深入理解人体解剖结构的只是并正确掌握漫画人物的造型方法.
[1] |
曹兴军. 艺用解剖与造型. 杭州: 浙江人民美术出版社, 2011.
|
[2] |
陈方. 虚拟艺用人体解剖教学平台的设计与构建. 装饰, 2016(4): 126-127. |
[3] |
Liu CJ, Wechsler H. Gabor feature based classification using the enhanced fisher linear discriminant model for face recognition. IEEE Transactions on Image Processing, 2002, 11(4): 467-476. DOI:10.1109/TIP.2002.999679 |
[4] |
黄铭明, 苏其瑜, 曾维, 等. 下颌骨骨折虚拟手术培训系统研究. 计算机工程与应用, 2018, 54(23): 223-229. DOI:10.3778/j.issn.1002-8331.1708-0130 |
[5] |
赵建军, 魏毅, 夏时洪, 等. 基于物理的角色动画合成方法综述. 计算机研究与发展, 2015, 52(12): 2866-2878. DOI:10.7544/issn1000-1239.2015.20140634 |
[6] |
Pejsa T, Pandzic IS. State of the art in example-based motion synthesis for virtual characters in interactive applications. Computer Graphics Forum, 2010, 29(1): 202-226. DOI:10.1111/j.1467-8659.2009.01591.x |
[7] |
Hertzmann A, Zordan V. Physics-based characters. IEEE Computer Graphics and Applications, 2011, 31(4): 20-21. DOI:10.1109/MCG.2011.61 |
[8] |
苏刚, 胡新荣, 李佳黎, 等. 基于Sqrt3细分算法的人体模型网格平滑. 计算机与数字工程, 2019, 47(3): 662-665, 677. |
[9] |
蔡明辉. 基于3DMAX的影视动画制作研究. 现代电子技术, 2018, 41(13): 52-55, 60. |
[10] |
Agrawal S, Shen S, van de Panne M. Diverse motion variations for physics-based character animation. Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation. New York, NY, USA. 2013. 37–44.
|
[11] |
郝卫亚. 人体运动的生物力学建模与计算机仿真进展. 医用生物力学, 2011, 26(2): 97-104. DOI:10.3871/j.1004-7220.2011.02.104. |
[12] |
王蕊, 万旺根, 王瑞, 等. 基于iPhone平台的骨骼动画研究与实现. 计算机工程与设计, 2010, 31(23): 5043-5047. |
[13] |
杨俊超, 史越, 杨达玲, 等. 基于动作捕捉的航空装备虚拟维修训练系统. 装甲兵工程学院学报, 2016, 30(4): 78-82. |
[14] |
霍宇平, 张秀娥, 李兵, 等. 运动捕捉技术在变电站虚拟环境中的应用研究. 系统仿真学报, 2016, 28(10): 2632-2637. |
[15] |
BryanHuang. Forge云服务的本地化经验总结与优化实战. https://blog.csdn.net/weixin_33805743/article/details/88611025. (2019-02-15)[2019-02-28].
|