论文部分内容阅读
动漫产业有着广阔的发展前景,被称为21世纪创意经济中最有希望的朝阳产业和21世纪的“无烟工业”。对于大规模场景和角色设计而言,传统意义上的单机操作会产生大量的人力、物力消耗,协同设计的提出为其提供了较好的解决方法,能在多个客户端同时进行场景和角色设计,提高动画创作效率。工业CAD系统中的协同设计研究成果较多,但基于Maya平台的协同设计研究相对较少。因此,借鉴工业CAD系统的一些成功经验,可为Maya协同设计提供较好的思路。本文针对Maya系统的特殊性,通过基于角色以及造型指令类型的优先级来调整Mel造型指令序列的并发控制机制,克服传统令牌环机制的弊病,解决Maya多用户协同的冲突问题。同时,使用Maya C++API以及WinSocket技术,通过插件的方式扩展Maya协同设计功能,并通过局域网基础上的Maya协同实例进行实验,验证其有效性。Maya软件内置的Mel脚本语言方便扩展,Maya的所有菜单及命令都由Mel脚本语言执行,用户的所有操作也会转化为Mel指令执行,这使得在Maya平台上实现协同设计系统时,在各个客户端传递的数据有明确简易的语义,从而大大减少了协同设计的工作量。本文在Maya内置脚本Mel语言的基础上,借鉴工业CAD协同系统的设计方法,对Maya实时协同设计系统中的并发控制机制进行研究,提出一种基于角色控制和调整Mel造型指令序列的并发控制机制,用来减少因消极冲突避免所带来的执行效率问题,并通过协同实例验证了本文所提出方法的有效性。概括来说,本文的主要工作和创新点有以下三点:(1)分析了传统协同设计系统的发展,当前并发控制方式进行了研究,提出了适用于Maya协同设计的系统结构。(2)提出一种能够适用于Maya平台间协同设计的冲突控制策略——基于协同服务器的非加锁策略,来解决多用户协同设计的冲突问题。(3)在局域网基础上,使用C/S模式,借助网络传输Mel指令语义,使用协同服务器控制冲突,通过Maya C++API以及WinSocket技术,实现Maya的协同设计功能。之所以将协同工作环境设置在局域网中,是因为局域网网络环境比较理想,基本上不存在延迟,各个客户端都能及时地接收并响应消息,对于问题的研究能有所简化。程序从Maya操作指令中获取Mel指令序列,通过网络发送到服务器上,服务器对指令序列做并发处理后,分发到协同的其他机器上,进而在其他协同机器上执行Mel指令,达到同步的效果。