一起学WP7 XNA游戏开发(八. 让3d model动起来)
如何让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赋予动作,以及动作的变化量,就可以了。
示例下载地址:http://www.52winphone.com/bbs/viewthread.php?tid=300&extra=page%3D1
转载于:https://www.cnblogs.com/randylee/archive/2011/03/10/1979841.html
一起学WP7 XNA游戏开发(八. 让3d model动起来)相关推荐
- 一起学WP7 XNA游戏开发(三.二 Sprite Texture Font)
Sprite Texture Font 对于XNA的字体,除了之前的SpriteFont外还有一种是SpriteTextureFont,其实就是生成的字体bitmap图片,也就是说可以用bitmap类 ...
- 师傅带徒弟学:Python游戏开发引擎cocos2d-python-关东升-专题视频课程
师傅带徒弟学:Python游戏开发引擎cocos2d-python-299人已学习 课程介绍 Python语言之所以受欢迎,很大的原因是有很多可以使用的库,Python社区也有很多游戏 ...
- XNA游戏开发之字符篇
摘要: 游戏中开发不同于一般应用程序的开发,它更注重于界面美观,我们需要在游戏界面设计中花费大量的时间以便使它看起来更炫.更酷,当然这其中就少不了游戏中的字符文本,那么如何制作出漂亮的游戏文本呢?今天 ...
- 视频教程-Layabox3D游戏开发入门-微信3D小游戏案例 -微信开发
Layabox3D游戏开发入门-微信3D小游戏案例 有多年Unity程序开发经验,有策划和美术设计的经验.愿意在csdn这个平台和大家一起分享! 金龙 ¥29.00 立即订阅 扫码下载「CSDN程序员 ...
- Silverlight C# 游戏开发:L5 3D基本的灯光
Silverlight C# 游戏开发:L5 3D基本的灯光 我们在设计和开发3D的时候最常用的就是灯光,它有的时候比摄像机还要重要,一些花哨漂亮的表现主要通过灯光实现,相比场景中只有一个的主要摄像机 ...
- 《XNA游戏开发》简介
一.XNA简介 XNA是基于DirectX的游戏开发环境. 以C# 为开发语言 以 .NET Framework 为基础.并加入游戏应用所需之函式库所构成的 XNA Framework 可开发XNA ...
- XNA游戏开发之滚动背景
摘要: 在很多游戏开发中角色的运动都是相对游戏背景而言的,也就是说我们通过移动游戏场景来给游戏角色带来一种运动效果,毕竟我们的游戏视窗是有限的,如果无止境的让角色运动肯定是不可行的,下面我们就一块看一 ...
- XNA游戏开发之(六)——保存游戏数据
[原创]Alex 游戏过程中,通常需要存储游戏状态.在下次启动游戏时,重新载入游戏,继续游戏. 实现过程非常简单,首先建立一个结构体定义需要保存的游戏参数,然后通过XmlSerializer类将其保存 ...
- 移动端h5游戏开发中的动画和动效展示
在移动端h5游戏开发中,经常会遇到动画和动效的展现需求,比较常用的实现方法有css3.svg.定时器等,针对不同的场景和需求使用不同的技术,可以提升设计和开发的效率,保证产品的效果和质量,也能让用户有 ...
最新文章
- “AI就是统计学”?阿里AI负责人金榕逐条驳诺奖得主萨金特
- 15-数据结构探险系列-图篇
- java rect平移_如何在Java Swing中使用鼠标平移图像
- [windows版]搭建php的redis环境
- uoj#422. 【集训队作业2018】小Z的礼物
- 中控指纹采集器开发指纹识别项目(说明)
- 获取弹出的窗口_Win7系统如何获取设置everyone权限的问题
- hanlp中文分词、提取摘要关键字、语句分析、智能推荐
- 编译wxWidgets
- linux元组和列表的区别,列表,元组,集合
- god is a girl
- 总结过去10年的程序员生涯
- linux访问db2数据库操作命令行,DB2数据库基本操作指令30条
- 会员管理系统单机版哪里有?
- Android webview调用本地文件选择失败解决
- 信息检索1.4.学术搜索引擎--百度学术搜索
- UG工程图模板制作方法,超级实用
- 微信原生组件|基于小程序实现音视频通话
- SQL行转列,列转行
- 来看看生词:CVBS、S-Video、YPbPr、模拟RGB、DVI和HDMI