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

news/2024/9/22 13:39:36

如何让3d model动起来,其实就是要给modelbone设置动作,这样整个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);

 

四.将设置的动作赋给bonesTransform

turretBone.Transform = turretRotation * turretTransform;

   cannonBone.Transform = cannonRotation * cannonTransform;

   hatchBone.Transform = hatchRotation * hatchTransform;

 

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

 

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

转载于:https://www.cnblogs.com/randylee/archive/2011/03/10/1979841.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/17484.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

cv2.threshold() 阈值:使用Python,OpenCV进行简单的图像分割

图像分割有多种形式。 聚类、压缩、边缘检测、区域增长、图分区、分水岭等等;(Clustering. Compression. Edge detection. Region-growing. Graph partitioning. Watershed. The list goes on.) 但是最开始只有最基本的一种:就是…

文件读写操作

如图&#xff0c;点击选择文件则读取文件路径&#xff0c;读取时将文件内容显示到文本框中&#xff0c;写入时将文本框内容写入文件 View Code namespace 文件操作{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }/// <summary>/// 选…

Python OpenCV分水岭算法分割和提取重叠或有衔接的图像中的对象

本文将介绍如何使用分水岭算法对触摸和重叠的图像中的对象进行分割和提取。 参考&#xff1a;https://www.pyimagesearch.com/2015/11/02/watershed-opencv/ 分水岭算法是一种分割的经典算法&#xff0c;在提取图像中连接或重叠的图像中的对象&#xff08;例如上图中的硬币&…

ubuntu18.04上安装TensorFlow2.0

推特上几乎每天都有关于深度学习中Keras、TensorFlow哪个个才是最好的框架的口水战。2019年后&#xff0c;这将不在是个问题。 2019年初&#xff0c;tf.keras 子模块已引入TensorFlow v1.10.0中。 现在&#xff0c;在TensorFlow 2.0中&#xff0c;Keras是TensorFlow的官方高级A…

docker 镜像容器导入导出、查看日志、拷贝文件命令

1. 本地文件拷贝到docker 容器中&#xff0c;参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7ff95b333e12:/2. docker从容器里面拷文件到宿主机 docker cp 容器名&#xff1a;要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 d…

h5 video视频播放的同时加水印,图片加水印同样的原理

经常能看到播放视频的网站上加水印的效果,记录下成果以备后续看: 效果图如下: h5页面视频播放的同时加水印,有以下3种方法可尝试: 在原视频上添加,由于每次登陆的用户不一样,需要根据用户名动态确定水印的文本值。这并不现实;捕捉视频的每一帧,重新画在画布上,并添…

使用Python、OpenCV计算轮廓的中心

1. 使用Python、OpenCV计算轮廓的中心并标记 2. 使用Python、OpenCV检测轮廓的形状并标记 3. 使用颜色通道统计信息来标记形状的实际颜色并标记 本博客的目标:(1)检测图像中每个形状的轮廓,然后(2)计算轮廓的中心-也称为质心。 计算轮廓/形状区域的中心;仅使用轮廓属…

使用Python,OpenCV读取视频文件流/摄像头流的每一帧,修改后写入视频

使用OpenCV 3将视频写入文件&#xff0c;并保存在自己的磁盘上 尝试支持avi、MP4文件格式的写入&#xff0c;俩种文件的编码格式不一致 codec: MJPG output: example.avi codec: MP4V output: baby.mp4 但是&#xff0c;如果您尝试在自己的应用程序中将视频编写为使用OpenCV归档…