论文部分内容阅读
随着计算机技术在教育中应用的发展,人们对人性化、智能化课件的开发要求越来越高,Microsoft Agent技术及其Character(角色)便越来越受到人们的青睐。本文就如何使用“角色编辑器”和“音素编辑器”制作角色动画进行简单介绍,并给出相关注意事项,以期为广大读者开发个性化角色和课件提供帮助。
一、动画原理
角色动画属于实时交互型的帧动画,但并不是我们常看到的有情节的、连贯播放的动画,而是由一个个响应用户不同操作的“动作”构成的集合。因此,创建角色动画就是创建一系列的“动作”(包括“状态”)。
二、角色编辑器环境
角色编辑器软件可以从微软公司网站http://www.microsoft.com/agent2/sdk/ace.exe上下载。如果使用TTS引擎输出语音,还需要下载并安装引擎。
在安装了角色编辑器之后,选择“开始→所有程序→Microsoft Agent Character Editor”菜单,启动角色编辑器,如图1。
图1 工作界面
三、创建角色动画
在角色编辑器中,选择“File→New”菜单,弹出3个子菜单,选择新建角色文件类型。
1.Custom Character(自定义角色):创建一个角色(角色的动作需要自己定义)。
2.Default Character(默认角色):创建一个默认的角色。在Character的“Properties”面板中,默认地选中“the Supports Standard Animation Set(支持标准动作集)”选项。左边“目录树”中,自动列出角色必要的“动作集”(49种)。
3.Office Assistant Character(Office助理):选择此项,编辑器会配置好一些适合Office的“动作集”(42种)。
无论新建哪种角色文件,都必须设置相应的“动作状态”。
在左侧目录树中的“Character”图标被选中的情况下,右侧就会出现“Property”选项板。在这里可以进行“常规信息”、“输出”和“设置角色的ID”选项的相关设置。
(一)常规信息(General Information)设置
选择一种“Language(语言)”,再设置角色的名字、描述信息以及特殊数据信息。在运行的时候,这些属性可以用Agent API访问。
在“Name”文本框中为角色指定1~32个字符的名字,也可以为角色做个256字以内的简短介绍(描述信息);在“ExtraData(特定数据区域)”可以存储一些特定信息,应用软件可以调用这些信息。
(二)设置角色的输出选项
在“Output Options(输出)”选项中,可以对角色的输出选项进行设置。
1.支持标准动作集
如果选择“Supports Standard Animation Set(支持标准动作集)”选项,在生成角色时,角色编辑器会自动检查“标准动作集”中和“动作状态”中的动作是否被设置。如果没有,将会提示该动作的名称。
2.合成语音输出
若选中“Use Synthesized Speech For Voice Output(合成语音输出)”选项,则会在右边再增加一个“Voice(语音)”选项板。在这个选项板中,可以设置具有个人特征的语音,包括选择各种可兼容的TTS引擎、语种、性别、年龄、风格以及设置语速、语调。选项板中各个参数依据所安装的TTS引擎而变化。在设置角色语音参数之前,必须先安装一个TTS引擎。
3.文本气球选项
“Use Word Balloon(文本气球)”选项可以设置是否支持文本气球输出形式。
(三)设置角色的ID
角色服务器是通过角色标识ID来区分和调用角色的。因此,每个角色必须有一个唯一的ID,称GUID。创建新角色时,会自动地分配一个新的ID。点选“New GUID (新标识符)”按钮可获取一个新的ID。
四、创建“动画 (Animations)”
在角色编辑器左边的目录树中选择“Animations(动画)”图标 ,右边将会显示Animations的“Property (属性)”面板。
(一)设置动画的属性
1.帧的缺省设置
在动画“Property ”属性选项板中,角色动画默认的帧大小为128×128个像素,大小可以改变,但是在整个角色设计中,动画大小必须要保持一致。新帧的默认显示时间为0.1秒。
2.设置角色的调色板
角色编辑器用所加载的第一张BMP图片作为角色的默认色彩模式,并且将色彩模式中的第11个位置的色彩作为默认的透明色彩。当然,也可以在“Palette Information(调色板信息)”组中明确地设置色彩模式及透明色彩。同时,它允许指定动画中的一个图片或者任何一个图形文件作为色彩模式,所指定的色彩模式文件必须是8位256色的文件。一旦被加载,就可以用“Change Setting”按钮来改变透明色彩。
(二)创建新动作
Microsoft Agent中的动作有两种:一是可以通过命令直接播放,执行某个特定功能的动作;二是被角色服务器调用的动作“状态”。
选择“Edit→New Animation”菜单,或者选择工具条上的快捷按钮,就会在左边的目录树的“Animations”图标下增加一个新的动作图标,默认名称为Animation 1,可以重新命名。注意:角色中动作的名字必须是唯一的,命名规则和文件名的命名相同,避免使用无效的字符。
图2 新建动作
在动作的“Property(属性)”面板中,可以把一个动作指定给一个或多个状态。只需要选中“Assign To States(指定给状态)”列表框中相对应的状态选项即可。在Return Animations中选择动画是否使用“退出分支”,或者给动画指定一个“返回”动作。
1.创建“帧”
选择“Edit→New Frame”菜单或使用工具条上的按钮为动画创建一个新帧。在左边目录树的动作图标“Animation1”下增加一个新帧“Frame 1”的图标。此时在右侧会显示出与“帧”相对应的3个选项板。
在“General(常规)”选项板中,可以通过“Images(图像)”加载、删除图像;利用“Position(位置)”选项组来微调图像位置;在“Duration(持续时长)”来设置帧的持续时间和“Sound Effect(声音效果)”。
单击图片列表栏上面的“(加载图片文件)”按钮,可以给帧添加图片。使用此按钮可以在一帧中叠加多张图片,并在列表框中调整它们的顺序。
如果要增加帧,可以再次选择“New Frame”菜单,按照相同的操作即可。当为一个动作创建了所有的帧之后,可以再次选择“New Animation”命令来创建一个新的动作。若通过拷贝创建动作,角色编辑器将自动重新命名。
图3 分支选项板
2.分支(Branching)
通常来说,帧是按照其在动作中的顺序进行播放的,但使用“Branching(分支)”选项板(如图3),可以设置服务器最多能够播放的3个分支的帧。在相应的文本框中,输入百分比以及目标帧的序号,就能够为那些甚至没有图片内容或者持续时间为0的帧明确地指定一个分支,也允许分支到那些没有被显示出来的特殊的图像上。 3.设置说话的叠加图片(Speaking Overlays)
选中动作的最后一帧,在右侧“Overlay(覆盖)”选项板中,可以加载已设计好的嘴部图片。在此选项板右侧的文件列表中,列出了Microsoft Agent标准的嘴部动作图片样例。选中这些样例图片,再重新加载自己设计的嘴部动作图片,可以在“Path”中直接修改文件路径名称,更换加载的图片,或者选择“Ellipsis (省略号,…)”来替换图片,如图4。
如果角色的嘴在“基本”图片之外,而又想让这个角色说话,如当一个角色侧面说话时,我们首先要创建一个带有角色头部的“基本帧”作为这一帧(多张叠加图片)的最上面的一个图片,再定义一个的嘴部叠加图片(并加载到Overlay选项板中),去代替上面的这个图片(通过选中“Replace Base Frame Top Image(代替基本帧最上面的图片)”复选框),也可以通过右边的“Set All”按钮用所有的嘴部叠加图片取代这一“基本帧”中最上面的图片。
图4 设置说话帧
4.设计返回动作(Return Animation)
返回动作的设计主要是保证动作间的平滑过渡。可以把“返回”作为一个单独的动作来设计,也可通过退出分支来创建一个返回动作。在角色编辑器的左边目录树中,选择一个动作图标,再选择一个创建好的“返回”动作,或者使用“属性Properties” 选项板中的“Return Animation”下拉列表框下的“Use Exit Branching”选项。如果一个动作开始并结束于“中间状态帧”,那么就可以不设计返回动作了。
(三)设计动作“状态”(States)
在角色中播放“状态”,需要首先给角色设计动作,状态动作的设计和一般动作设计一样。设计好动作之后,需要将动作指定给状态。在角色编辑器左边的目录树上选择“States”图标,并将其展开,选择其中的某个状态图标。在动作集创建的所有动作都会列在右边的窗口中,选中想要给“状态”设计的动作。可以为一个状态指定多个动作,这样,服务器就可以为一个状态随机地选择不同的动作,也可以在目录树中选择一个动作,在其“Property(属性)”面板中的“Assign To State(指定给状态)”列表框中,选中“状态”前的“复选框”,就可以把这个动作指定给一个“状态”了。
五、生成角色(Building a Character)
在完成角色动画创建后,需要编译,即“生成(Build)角色”,可以使用菜单中的“File→Build Character”命令。如果在生成角色之前还没有保存所编辑的角色文件,那么,编辑器首先保存这个文件(ACD格式)。
角色编辑器将会根据角色的文件名,自动生成角色文件。生成角色文件可以有两种格式:单一的存储格式文件(.ACS)和多文件格式。选择多文件格式,将会生成一个包括角色数据的ACF格式文件,并且为每个动作都生成一个单独的ACA文件格式,并自动以动作的名称来命令ACA文件。如果是在单机版应用软件中使用角色动画,则最好生成ACS格式,因为,它便于安装和访问。如果是网络应用,则选择多文件格式。它允许网络脚本语言加载这种文件格式,并且能把角色文件的数据存储在用户浏览器的文件缓存中。这样,动画数据就能够在需要的时候被下载,而不需要用户等待动画数据完全下载。另外,因为角色数据被存储在浏览器缓存中,文件空间将能够被自动地回收再用。
“Compress (压缩)”选项用来设置角色数据是否能被压缩,压缩角色数据需要更长的生成时间。
六、使用“音素编辑器”
“Microsoft Linguistic Information Sound Editing Tool(音素编辑器)”能够使Microsoft Windows sound (.wav)文件产生音素信息,以支持高质量地发音说话与嘴部动作同步的动画。
音素编辑器是一个用语音识别引擎为标准的Windows声音文件(.wav格式)产生一个单词之间的停顿和音素信息的工具。
(一)安装声音编辑器
可以从http://www.microsoft.com/msagent/downloads/developer.asp网站上下载,要同时安装引擎,The Microsoft Command and Control speech recognition engine (version 4.0)才能使用。通常情况下,这个引擎将会随着音素编辑器被自动安装。
(二)工作环境
编辑软件工作界面包括菜单栏、工具栏以及两个主要的工作区域:Text Representation(文本显示区)和Audio Representation(音频信息显示区),用来查看和编辑文字、音频和语言学上的(语素)数据。
(三)生成语言学上的音素信息
在Audio Representation中,可以录制声音或者加载声音文件(编辑器只能识别WAV格式声音),在Text Representation文本框中,输入与你的声音内容相符合的文本内容,再从菜单或者工具栏中选择“Generate Linguistic Info”命令,生成“语素信息”。在“Audio Representation”音频框中会显示与这些语音相对应的单词和音素标签图。
(四)编辑音素或文本信息
可以通过几种方式来编辑音素或文本信息。把鼠标移到语素标签的边界上,拖动鼠标,就可以调整单词或音素。调整后,在播放声音时,将会改变音素的持续时间,从而会影响与音素相对应的嘴部图片的持续时间,同时,还会改变这个单词在文字气球中的显示时间。
也可通过菜单命令方式来编辑(如插入、代替、删除等)音素信息,也可以直接编辑单词标签中的文本。在角色开发中,替换了音素标签,当播放声音时,会改变嘴部图片的显示口型。替换了单词标签中的单词,在调用角色的Speak方法时,将会改变文字气球中的文本,但是音频内容不会被改变。
(五)保存声音文件
可以把文件保存为单独的WAV格式,也可以保存为linguistically enhanced sound file (.lwv)格式。保存为lwv格式时,单词或者音素的信息都会被自动地保存下来。
参考文献
[1]The Developer’s Introduction to Microsoft Agent [DB/OL]. http://www.microsoft.com/msagent/dev/docs/default.asp#MIND.
[2]Microsoft Agent SDK documentation.http://www.microsoft.com/msagent/dev/docs/default.asp#SDK
[3]SDK documentation for Microsoft Agent [DB/OL].http://www.microsoft.com/msagent/downloads/developer.asp
[4]王宁,万旺根,余小清.汉语语音音素分割的一种新方法[J].上海大学学报(自然科学版),2002,(2).
[5]宋阳,刘胜兰,张燕宏.利用SAPI5完成中文语音音素的分解[J].微计算机信息,2005,(3).
[6]毕晓君,静广宇,徐先锋.利用TTS技术实现文本文件的语音合成[J].自动化技术与应用,2004,(9).
[7]贾建华.语音合成及语音处理[D].中南大学,2002.
一、动画原理
角色动画属于实时交互型的帧动画,但并不是我们常看到的有情节的、连贯播放的动画,而是由一个个响应用户不同操作的“动作”构成的集合。因此,创建角色动画就是创建一系列的“动作”(包括“状态”)。
二、角色编辑器环境
角色编辑器软件可以从微软公司网站http://www.microsoft.com/agent2/sdk/ace.exe上下载。如果使用TTS引擎输出语音,还需要下载并安装引擎。
在安装了角色编辑器之后,选择“开始→所有程序→Microsoft Agent Character Editor”菜单,启动角色编辑器,如图1。

图1 工作界面
三、创建角色动画
在角色编辑器中,选择“File→New”菜单,弹出3个子菜单,选择新建角色文件类型。
1.Custom Character(自定义角色):创建一个角色(角色的动作需要自己定义)。
2.Default Character(默认角色):创建一个默认的角色。在Character的“Properties”面板中,默认地选中“the Supports Standard Animation Set(支持标准动作集)”选项。左边“目录树”中,自动列出角色必要的“动作集”(49种)。
3.Office Assistant Character(Office助理):选择此项,编辑器会配置好一些适合Office的“动作集”(42种)。
无论新建哪种角色文件,都必须设置相应的“动作状态”。
在左侧目录树中的“Character”图标被选中的情况下,右侧就会出现“Property”选项板。在这里可以进行“常规信息”、“输出”和“设置角色的ID”选项的相关设置。
(一)常规信息(General Information)设置
选择一种“Language(语言)”,再设置角色的名字、描述信息以及特殊数据信息。在运行的时候,这些属性可以用Agent API访问。
在“Name”文本框中为角色指定1~32个字符的名字,也可以为角色做个256字以内的简短介绍(描述信息);在“ExtraData(特定数据区域)”可以存储一些特定信息,应用软件可以调用这些信息。
(二)设置角色的输出选项
在“Output Options(输出)”选项中,可以对角色的输出选项进行设置。
1.支持标准动作集
如果选择“Supports Standard Animation Set(支持标准动作集)”选项,在生成角色时,角色编辑器会自动检查“标准动作集”中和“动作状态”中的动作是否被设置。如果没有,将会提示该动作的名称。
2.合成语音输出
若选中“Use Synthesized Speech For Voice Output(合成语音输出)”选项,则会在右边再增加一个“Voice(语音)”选项板。在这个选项板中,可以设置具有个人特征的语音,包括选择各种可兼容的TTS引擎、语种、性别、年龄、风格以及设置语速、语调。选项板中各个参数依据所安装的TTS引擎而变化。在设置角色语音参数之前,必须先安装一个TTS引擎。
3.文本气球选项
“Use Word Balloon(文本气球)”选项可以设置是否支持文本气球输出形式。
(三)设置角色的ID
角色服务器是通过角色标识ID来区分和调用角色的。因此,每个角色必须有一个唯一的ID,称GUID。创建新角色时,会自动地分配一个新的ID。点选“New GUID (新标识符)”按钮可获取一个新的ID。
四、创建“动画 (Animations)”
在角色编辑器左边的目录树中选择“Animations(动画)”图标 ,右边将会显示Animations的“Property (属性)”面板。
(一)设置动画的属性
1.帧的缺省设置
在动画“Property ”属性选项板中,角色动画默认的帧大小为128×128个像素,大小可以改变,但是在整个角色设计中,动画大小必须要保持一致。新帧的默认显示时间为0.1秒。
2.设置角色的调色板
角色编辑器用所加载的第一张BMP图片作为角色的默认色彩模式,并且将色彩模式中的第11个位置的色彩作为默认的透明色彩。当然,也可以在“Palette Information(调色板信息)”组中明确地设置色彩模式及透明色彩。同时,它允许指定动画中的一个图片或者任何一个图形文件作为色彩模式,所指定的色彩模式文件必须是8位256色的文件。一旦被加载,就可以用“Change Setting”按钮来改变透明色彩。
(二)创建新动作
Microsoft Agent中的动作有两种:一是可以通过命令直接播放,执行某个特定功能的动作;二是被角色服务器调用的动作“状态”。
选择“Edit→New Animation”菜单,或者选择工具条上的快捷按钮,就会在左边的目录树的“Animations”图标下增加一个新的动作图标,默认名称为Animation 1,可以重新命名。注意:角色中动作的名字必须是唯一的,命名规则和文件名的命名相同,避免使用无效的字符。
图2 新建动作

在动作的“Property(属性)”面板中,可以把一个动作指定给一个或多个状态。只需要选中“Assign To States(指定给状态)”列表框中相对应的状态选项即可。在Return Animations中选择动画是否使用“退出分支”,或者给动画指定一个“返回”动作。
1.创建“帧”
选择“Edit→New Frame”菜单或使用工具条上的按钮为动画创建一个新帧。在左边目录树的动作图标“Animation1”下增加一个新帧“Frame 1”的图标。此时在右侧会显示出与“帧”相对应的3个选项板。
在“General(常规)”选项板中,可以通过“Images(图像)”加载、删除图像;利用“Position(位置)”选项组来微调图像位置;在“Duration(持续时长)”来设置帧的持续时间和“Sound Effect(声音效果)”。
单击图片列表栏上面的“(加载图片文件)”按钮,可以给帧添加图片。使用此按钮可以在一帧中叠加多张图片,并在列表框中调整它们的顺序。
如果要增加帧,可以再次选择“New Frame”菜单,按照相同的操作即可。当为一个动作创建了所有的帧之后,可以再次选择“New Animation”命令来创建一个新的动作。若通过拷贝创建动作,角色编辑器将自动重新命名。

图3 分支选项板
2.分支(Branching)
通常来说,帧是按照其在动作中的顺序进行播放的,但使用“Branching(分支)”选项板(如图3),可以设置服务器最多能够播放的3个分支的帧。在相应的文本框中,输入百分比以及目标帧的序号,就能够为那些甚至没有图片内容或者持续时间为0的帧明确地指定一个分支,也允许分支到那些没有被显示出来的特殊的图像上。 3.设置说话的叠加图片(Speaking Overlays)
选中动作的最后一帧,在右侧“Overlay(覆盖)”选项板中,可以加载已设计好的嘴部图片。在此选项板右侧的文件列表中,列出了Microsoft Agent标准的嘴部动作图片样例。选中这些样例图片,再重新加载自己设计的嘴部动作图片,可以在“Path”中直接修改文件路径名称,更换加载的图片,或者选择“Ellipsis (省略号,…)”来替换图片,如图4。
如果角色的嘴在“基本”图片之外,而又想让这个角色说话,如当一个角色侧面说话时,我们首先要创建一个带有角色头部的“基本帧”作为这一帧(多张叠加图片)的最上面的一个图片,再定义一个的嘴部叠加图片(并加载到Overlay选项板中),去代替上面的这个图片(通过选中“Replace Base Frame Top Image(代替基本帧最上面的图片)”复选框),也可以通过右边的“Set All”按钮用所有的嘴部叠加图片取代这一“基本帧”中最上面的图片。

图4 设置说话帧
4.设计返回动作(Return Animation)
返回动作的设计主要是保证动作间的平滑过渡。可以把“返回”作为一个单独的动作来设计,也可通过退出分支来创建一个返回动作。在角色编辑器的左边目录树中,选择一个动作图标,再选择一个创建好的“返回”动作,或者使用“属性Properties” 选项板中的“Return Animation”下拉列表框下的“Use Exit Branching”选项。如果一个动作开始并结束于“中间状态帧”,那么就可以不设计返回动作了。
(三)设计动作“状态”(States)
在角色中播放“状态”,需要首先给角色设计动作,状态动作的设计和一般动作设计一样。设计好动作之后,需要将动作指定给状态。在角色编辑器左边的目录树上选择“States”图标,并将其展开,选择其中的某个状态图标。在动作集创建的所有动作都会列在右边的窗口中,选中想要给“状态”设计的动作。可以为一个状态指定多个动作,这样,服务器就可以为一个状态随机地选择不同的动作,也可以在目录树中选择一个动作,在其“Property(属性)”面板中的“Assign To State(指定给状态)”列表框中,选中“状态”前的“复选框”,就可以把这个动作指定给一个“状态”了。
五、生成角色(Building a Character)
在完成角色动画创建后,需要编译,即“生成(Build)角色”,可以使用菜单中的“File→Build Character”命令。如果在生成角色之前还没有保存所编辑的角色文件,那么,编辑器首先保存这个文件(ACD格式)。
角色编辑器将会根据角色的文件名,自动生成角色文件。生成角色文件可以有两种格式:单一的存储格式文件(.ACS)和多文件格式。选择多文件格式,将会生成一个包括角色数据的ACF格式文件,并且为每个动作都生成一个单独的ACA文件格式,并自动以动作的名称来命令ACA文件。如果是在单机版应用软件中使用角色动画,则最好生成ACS格式,因为,它便于安装和访问。如果是网络应用,则选择多文件格式。它允许网络脚本语言加载这种文件格式,并且能把角色文件的数据存储在用户浏览器的文件缓存中。这样,动画数据就能够在需要的时候被下载,而不需要用户等待动画数据完全下载。另外,因为角色数据被存储在浏览器缓存中,文件空间将能够被自动地回收再用。
“Compress (压缩)”选项用来设置角色数据是否能被压缩,压缩角色数据需要更长的生成时间。
六、使用“音素编辑器”
“Microsoft Linguistic Information Sound Editing Tool(音素编辑器)”能够使Microsoft Windows sound (.wav)文件产生音素信息,以支持高质量地发音说话与嘴部动作同步的动画。
音素编辑器是一个用语音识别引擎为标准的Windows声音文件(.wav格式)产生一个单词之间的停顿和音素信息的工具。
(一)安装声音编辑器
可以从http://www.microsoft.com/msagent/downloads/developer.asp网站上下载,要同时安装引擎,The Microsoft Command and Control speech recognition engine (version 4.0)才能使用。通常情况下,这个引擎将会随着音素编辑器被自动安装。
(二)工作环境
编辑软件工作界面包括菜单栏、工具栏以及两个主要的工作区域:Text Representation(文本显示区)和Audio Representation(音频信息显示区),用来查看和编辑文字、音频和语言学上的(语素)数据。
(三)生成语言学上的音素信息
在Audio Representation中,可以录制声音或者加载声音文件(编辑器只能识别WAV格式声音),在Text Representation文本框中,输入与你的声音内容相符合的文本内容,再从菜单或者工具栏中选择“Generate Linguistic Info”命令,生成“语素信息”。在“Audio Representation”音频框中会显示与这些语音相对应的单词和音素标签图。
(四)编辑音素或文本信息
可以通过几种方式来编辑音素或文本信息。把鼠标移到语素标签的边界上,拖动鼠标,就可以调整单词或音素。调整后,在播放声音时,将会改变音素的持续时间,从而会影响与音素相对应的嘴部图片的持续时间,同时,还会改变这个单词在文字气球中的显示时间。
也可通过菜单命令方式来编辑(如插入、代替、删除等)音素信息,也可以直接编辑单词标签中的文本。在角色开发中,替换了音素标签,当播放声音时,会改变嘴部图片的显示口型。替换了单词标签中的单词,在调用角色的Speak方法时,将会改变文字气球中的文本,但是音频内容不会被改变。
(五)保存声音文件
可以把文件保存为单独的WAV格式,也可以保存为linguistically enhanced sound file (.lwv)格式。保存为lwv格式时,单词或者音素的信息都会被自动地保存下来。
参考文献
[1]The Developer’s Introduction to Microsoft Agent [DB/OL]. http://www.microsoft.com/msagent/dev/docs/default.asp#MIND.
[2]Microsoft Agent SDK documentation.http://www.microsoft.com/msagent/dev/docs/default.asp#SDK
[3]SDK documentation for Microsoft Agent [DB/OL].http://www.microsoft.com/msagent/downloads/developer.asp
[4]王宁,万旺根,余小清.汉语语音音素分割的一种新方法[J].上海大学学报(自然科学版),2002,(2).
[5]宋阳,刘胜兰,张燕宏.利用SAPI5完成中文语音音素的分解[J].微计算机信息,2005,(3).
[6]毕晓君,静广宇,徐先锋.利用TTS技术实现文本文件的语音合成[J].自动化技术与应用,2004,(9).
[7]贾建华.语音合成及语音处理[D].中南大学,2002.