操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

ShockWave 3D 制作系列教程之七

2004-6-6 作者:sunshine 转载自:阳光原创游戏 网友评论 0 条 点击进入论坛

人物控制与关键帧

  本例主要介绍使用DIRECTOR播放关键帧的技巧。由于本人对3DSMAX的CHATACTOR STUDIO并不熟悉,故当中的人物动作全使用关键帧控制。

制作步骤:

1、使用3DMAX输入一个小人和地面,并在人物的脚部添加一个虚拟物体,具体如下图所示

2、在3DMAX里制作人物动作,包括行走、跳和挥锤然后输出W3D文件并导入DIRECTOR

3、在DIRECTOR中把W3D演员放到舞台上,并单击右键为其添加SCRIPT,如下图所示:


 

[下一页]


 

4、SCRIPT内容如下:

property pscene,modellist
property keyisdown,keyofjump,keyofhit
on beginsprite me
--定义场景
pscene=member("scene")
--重设场景
pscene.resetworld()
--定义一个变量其初始值,此变量主要判断是否按键
keyisdown=false
--把小人的各部分名称加入数组
modellist=["body","hand1","hand2","leg1","leg2","hammer"]
--对小人的各部分进行处理
repeat with i=1 to 6
--各部分都暂停播放
pscene.model(modellist[i]).keyframePlayer.pause()
--把每个部件都以子物体的方式加到虚拟物体上
pscene.model("manbox").addchild(pscene.model(modellist[i]))
end repeat
end
on exitframe me
--暂停播放行走动画
if pscene.model("hand1").keyframePlayer.currentTime<50 and keyisdown=false then
repeat with i=1 to 6
pscene.model(modellist[i]).keyframePlayer.pause()
end repeat
end if
--暂停播放跳跃动画
if pscene.model("hand1").keyframePlayer.currentTime<700 and keyofjump=true then
repeat with i=1 to 6
pscene.model(modellist[i]).keyframePlayer.pause()
end repeat
keyofjump=false
end if
--播放跳跃动画
if keypressed("z") and keyofjump=false then
repeat with i=1 to 6
pscene.model(modellist[i]).keyframePlayer.play(modellist[i] & "-Key",1, 667, 1166,1.0000)
end repeat
keyisdown=true
keyofjump=true
end if
--停止播放挥锤动画
if pscene.model("hand1").keyframePlayer.currentTime<1200 and keyofhit=true then
repeat with i=1 to 6
pscene.model(modellist[i]).keyframePlayer.pause()
end repeat
keyofhit=false
end if
--播放挥锤动画
if keypressed("x") and keyofhit=false then
repeat with i=1 to 6
pscene.model(modellist[i]).keyframePlayer.play(modellist[i] & "-Key",1, 1167, 1500,1.0000)
end repeat
keyisdown=true
keyofhit=true
end if
--播放行走动画
if keypressed(126) or keypressed(125) then
walk
end if
end
--按键离开时
on keyup me
keyisdown=false
end
--行走
on walk
if keyisdown=false then
--播放行走的关键帧
repeat with i=1 to 6
pscene.model(modellist[i]).keyframePlayer.play(modellist[i] & "-Key",1, 0, 666,1.0000)
end repeat
keyisdown=true
end if
end

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46430 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail