点击这里给我发消息 点击这里给我发消息

一起学WP7 XNA游戏开发(八. 让3d model动起来)

添加时间:2013-12-6
    相关阅读: 开发
如何让3d model动起来,其实就是要给model的bone设置动作,这样整个model就会动起来了。

  一.获取Bones

  在fbx文件中可以看到所有bones的名称,这样就可以通过名称来获取到bones。

  turretBone = tankModel.Bones["turret_geo"];
   cannonBone = tankModel.Bones["canon_geo"];
   hatchBone = tankModel.Bones["hatch_geo"];

  二.保存bones原始Transform

turretTransform = turretBone.Transform;
   cannonTransform = cannonBone.Transform;
   hatchTransform = hatchBone.Transform;

  三.为Bones设置动作

//设置动作的变化值
turretRotationValue = (float)Math.Sin(time * 0.333f) * 1.25f;
   cannonRotationValue = (float)Math.Sin(time * 0.25f) * 0.333f - 0.333f;
   hatchRotationValue = MathHelper.Clamp((float)Math.Sin(time * 2) * 2, -1, 0);
   //创建动作矩阵
   turretRotation = Matrix.CreateRotationY(turretRotationValue);
   cannonRotation = Matrix.CreateRotationX(cannonRotationValue);
   hatchRotation = Matrix.CreateRotationX(hatchRotationValue);

  四.将设置的动作赋给bones的Transform

turretBone.Transform = turretRotation * turretTransform;
   cannonBone.Transform = cannonRotation * cannonTransform;
   hatchBone.Transform = hatchRotation * hatchTransform;

  由以上的实现代码可以看出,如果想让3d model 动起来,只要给model所包含的bones赋予动作,以及动作的变化量,就可以了。

一起学WP7 XNA游戏开发(八. 让3d model动起来)

一起学WP7 XNA游戏开发(八. 让3d model动起来)

一起学WP7 XNA游戏开发(八. 让3d model动起来)

  示例下载地址:http://www.52winphone.com/bbs/viewthread.php?tid=300&extra=page%3D1

本文作者:未知
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册