- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
XSI群组动画解析及实例应用
XSI群组动画伴随着影视制作软硬件技术的不断发展,群组动画作为一个新兴的技术领域,越来越多的被人们所关注,这种技术可以模拟众多角色的运动,大场面的表现越来越真实,而使拍摄成本下降很多。早在70年代,好莱坞的导演们就开始试图表现这些大场面,那时的技术还不是很完善,对于群组动画主要使用的是抠像,合成,拷贝的方法,对于镜头和导演意图的表现都有很大的局限性。如《宾虚》等影片。在1992年,《蝙蝠侠回归》首先使用了三维的群组动画,影片《阿甘正传》中的反越战大规模示威也是如此。而如今,当我们看到《指环王》、《星战》、《I robot》、《亚历山大》、《最后的武士》等影片时,我们发现群组动画已经成为大场面表现的标志之一,而且使用也越来越灵活,越来越复杂,场面也越来越壮观,对于剧情的推动起到了更好的作用。
?
(韩国影片《太极旗飘扬》中群组动画的使用?? 见图1,图2)
?
???????? 纵观群组动画的发展,主要可以分为两大类
1.? 非智能类(基于图像或动作序列的)
非智能类的群组动画,制作难度较低,当以合成为主时,其主要是对单一或多个素材的拷贝来实现的;如果是以三维软件为主时,其主要是以粒子序列的形势表现的,主要有SpriteParticle(序列粒子),InstanceParticle(实物粒子)两大类,这类群组制作的优点就是难度较低,对于不太复杂的场景、行为可以很好的完成,如简单飞鸟,人物行走等。但是由于其行为的是基于序列的,这也就决定了行为的单一性,如果遇到比如说碰撞物体、寻找行为或复杂路径等情况,这种制作方式就会显得力不从心。
???????? (影片《最后的武士》对战争场面使用了这类的群组制作 ?见图3)
?
2.? 智能类(基于节点控制,可选择行为的)或说是AI类
这一类的制作是基于节点控制、选择的,也就是说在某种情况下,选择某种行为。这种方式类似于人的基本活动,所以也就被现在很多的影片采用。它可以实现角色在复杂地面的行走,而不会产生滑步,而且可以使角色具备动力学的特性,可以开发战斗,寻找,混合等多种复杂行为。由于这种制作方式是通过节点激活行为的方式来实现的,也就为事件制作的深度和广度提供了可能。但是这类制作有一定的难度,不但要有一定的编程技巧,还要能很好的规划角色的行为流程。现在国际使用的这类商业制作软件主要有以下几种:Massive、Behavior和Aitool,接下来我们以Behavior来做一些实例分析
?
?
?
(影片《I ROBOT》使用Massive制作了复杂的群组动画??? 见图4)
?
Behavior是AVID公司出品的一个专门用于群组动画制作的软件,我们首先来了解一下这个软件的工作流程
??????? (工作流程图? 见图5)
???????
这个软件要与SOFTIMAGE|XSI配合使用,首先在要在XSI中进行模型,动画及准备设定,之后通过DotXSI文件输入到BEHAVIOR中进行群组动画制作,完成后再通过DotXSI倒入XSI或直接使用MentalRay渲染。而在BEHAVIOR内部的制作流程可参考下图
???????? (BEHAVIOR内部工作流程图?? 见图6)
?
?
在BEHAVIOR内部包含主代码设计、常数文件设计、节点设计、文件输出几大部分
??????? (BEHAVIOR 界面??? 见图7)???????????????????? ?????????????????????????(动作捕捉现场? 见图8、见图9)
而对于原始的动作数据我们一般会采用MotionCapture的方式,这样可以节省大量的时间和人员
我们先来看一下BEHAVIOR的基本例子
1.打开BEHAVIOR。
2.按F11或点击XsiViewer
3.用ImportXsiActor倒入在XSI内设置好的角色
4.用鼠标右键点击角色,你会看到角色预设置好的动画目录,这时随便点那个动画项目,角色就会运行该项目定义的行为
?(见图10)
?
5.接着我们在Piccolo内创建一个简单的行为代码,代码的名字叫Startup.pc
use constants drive_constants; // 调用常数参数
function main()// 主程序
{
? engine.RunScript(rtk, nil); //调用内核脚本
?? global var world = engine.GetCurrentWorld();//声明全局变量,确定内核脚本影响当前模型场景
?? var gold = Actor(Gold0);//将模型引入一个变量中,以便进行控制
?? var sa; //声明sa变量
var sa = CreateSkil
文档评论(0)