flash反向运动IK骨骼
Flash 2011/8/15 13:55:16 点击:不统计
http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E
首先写出来反向运动的定义:反向运动是对于一系列由关节链接的骨骼组成的对象进行移动计算的过程。举例人体走路时 足部,小腿,大腿部分就是一种反向运动。主要在于联动。
FlashCs 5 提供了一套IK反向运动的工具。就是工具栏中的 “小骨头(也像一个小扳手的)”的工具。
下面就实例来介绍反向运动IK骨骼。(Flash CS5 版本)
首先建立一个flash文件,然后 新建4个影片剪辑 其中3个是线条用来做骨骼,1个是星星,用来做骨骼尾部。
然后将4个影片剪辑拉到桌面上
点击 第一帧,帧属性的选项区里面的类型 选择运行时。
然后将3个线条和1个星星分别排开。然后点击骨骼工具。选中第一条的开始拉动到第二条的尾部,会在第一条线前面创建一个圆形的轴。依次创建所有的。
然后新建图层,为as层。
代码如下
import flash.geom.Point;
import flash.events.MouseEvent;
import fl.ik.*;
//必须定义 帧属性的选项类型 必须选择运行时
IKManager.trackAllArmatures(false);
var arm0:IKArmature = IKManager.getArmatureAt(0);//获取整个骨骼,因为目前只有一个则直接写索引0
var rt0:IKJoint = arm0.rootJoint;//获取根部骨节
function b(me:MouseEvent):void{
//引用子关节采用子节点的形式,比如第一个为 var gj1:IKJoint = rt0.geChildAt(0);第二个则是 var gj2:IKJoint =
rt0.getChilidAt(0).getChilidAt(0);
//我们目前获取第三个 关节 这里仅能获取关节点
var gj2:IKJoint = rt0.getChildAt(0).getChildAt(0).getChildAt(0);
//如果想移动骨骼,则要创建移动实例
var Mover0:IKMover = new IKMover(gj2,gj2.position);//第一个参数为骨骼关节对象,迪尔个则是移动的起点。
//建立要移动到的 坐标位置
var MoverTo:Point = new Point(mouseX,mouseY);
Mover0.moveTo(MoverTo);
msg.text = "www.forasp.cn 提示鼠标位置:"+mouseX+" "+mouseY;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE,b);
需要注意的是: 1.必须引入对应的类包 2,帧选项中类型必须为运行时 3,骨骼只能在flash界面创建
效果如下
学习www.网for站asp制.cn作