感谢

感谢网友提出这个问题。大家有问题也可以在评论区提出。问题是fbx里有动画,但是不知道该如何控制。模型是这个:

资源下载
本文集包括本节所有资源包括模型代码都在此下载,按节的序号有文件或文件夹:

【击此打开网盘资源链接】

解决方案

插件编译

因为我没有读取过fbx格式的模型,起初我以为很麻烦呢。我先是在自动桌官方下载了fbx sdk:
https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2019-0
注意,vs2015以上的vs直接下载vs2015版本的即可。

我用的是vs2019,使用vs2015的版本就行。而后将FBX的dll加入到path之中:

然后使用CMAKE配置即可:

编译之后,fbx插件就出来了:osgdb_fbx.dll
这个时候,使用osgviewer a.fbx就可以看到了。

动画解析

要看一个模型有没有动画其实是件简单的事,如本例模型Naruto.fbx,可以使用osgconv Naruto.fbx a.osg,然后用写字板打开a.osg,直接搜:osgAnimation或Animation或UpdateCallback,都可以查出来有无动画。有动画就必会用到更新回调,因此UpdateCallbacks一般是必有的。

本例是这些都有。

动画控制

为了让大家更能够简便的查看模型中的动画,不用大费劲,osg给了一个例子叫:osganimationviewer,本例中使用osganimationviewer Naruto.fbx,就可以通过界面很方便的操作其中的动画(注意下面一排按钮,点点就能播放/暂停动画):

其是有源码的,我就不再多解读了。读取动画的核心思想就是找:UpcateCallback,找到了就可以将其转换成相应的动画控制类,比如:AnimationPathCallback,AnimationManagerBase,转换成功就是找到了动画,比如osganimationviewer.cpp的找动画的代码就是这个最关键:

struct AnimationManagerFinder : public osg::NodeVisitor
{osg::ref_ptr<osgAnimation::BasicAnimationManager> _am;AnimationManagerFinder() : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) {}void apply(osg::Node& node) {if (_am.valid())return;if (node.getUpdateCallback()) {osgAnimation::AnimationManagerBase* b = dynamic_cast<osgAnimation::AnimationManagerBase*>(node.getUpdateCallback());if (b) {_am = new osgAnimation::BasicAnimationManager(*b);return;}}traverse(node);}
};

还等什么,快快行动吧。

第11节 实例-fbx模型动画的控制相关推荐

  1. Unity自动提取优化Fbx模型动画文件,并生成ab包文件大小对比信息

    参考文章:https://cloud.tencent.com/developer/article/1833109 最近项目需求需要对工程中的动画文件进行优化,经分析发现,工程存在两种动画文件,一种是后 ...

  2. 《Unity 3.x游戏开发实例》——2.11节《Artillery Live!》

    本节书摘来自异步社区<Unity 3.x游戏开发实例>一书中的第2章,第2.11节<Artillery Live!>,作者 [加]Ryan Henson Creighton,更 ...

  3. 微信小程序实现FBX模型的动画加载

    鉴于有CSDN友问我FBX模型在小程序端加载的问题,我就在这里给大家介绍一下吧~ 首先,加载fbx模型,我们用到的是three.js和不同的模型类型的加载库,那么,我们在得到了web版本的加载库的前提 ...

  4. Unity3D 游戏引擎之FBX模型的载入与人物行走动画的播放(十二)

    Unity3D 游戏引擎之FBX模型的载入与人物行走动画的播放 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong. ...

  5. unity导出fbx模型_Unity批量合并Animation工具/根据已有的Animation文件批量生成带FBX动画工具...

    由于本人现有项目的项目素材大部分都需要继续沿用旧项目的模型与动画,但在接受旧模型动画的时候发现,模型动画由于外包已经丢失了3dmax的源文件,只剩下了一堆AnimationCilp(.anim)文件与 ...

  6. Unity3D研究院之FBX模型的载入与人物行走动画的播放(十二)

     3D 世界中自定义模型的使用恐怕是重中之重,因为系统自身提供的模型肯定是无法满足GD对游戏的策划,所以为了让游戏更加绚丽,我们须要调用美术制作的精品模型与动画,本章MOMO将带领盆友们学习Unity ...

  7. Unity3D 游戏引擎之FBX模型的载入与人物行走动画的播放【转】

    http://blog.csdn.net/xys289187120/article/details/6961080        3D 世界中自定义模型的使用恐怕是重中之重,因为系统自身提供的模型肯定 ...

  8. 《iOS 6核心开发手册(第4版)》——2.11节秘诀:构建星星滑块

    本节书摘来自异步社区<iOS 6核心开发手册(第4版)>一书中的第2章,第2.11节秘诀:构建星星滑块,作者 [美]Erica Sadun,更多章节内容可以访问云栖社区"异步社区 ...

  9. threeJS导入FBX模型

    初认threeJS Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机.光影.材质等各种对象.你可以在它的主页上看到许多精彩的演示.官方地址:http:// ...

最新文章

  1. PHP绕过disable_function限制(一)
  2. SAP: ALV的布局管理
  3. nssl1210-质数【素数筛】
  4. VirtualBox在win10下安装一个国产深度os桌面系统的操作教程
  5. asp建站系统源码_三款适用于企业建站的CMS建站系统
  6. 【CCF】201803-2 碰撞的小球
  7. 小程序真机调试访问不了接口_24小时从0到1开发阴阳师小程序
  8. python 简单检索器_python实现文件搜索工具(简易版)
  9. 直接获取Program Files目录的API
  10. java数组验证哥德巴赫猜想_验证哥德巴赫猜想的JAVA代码
  11. 计算机c盘用户爆满,电脑C盘又爆满了?这招让你一键清除十几G内存
  12. Ann Rheum Dis | 华科韩金祥/宁康等发现微生物失调和代谢紊乱在类风湿关节炎中的作用...
  13. 2022阿里巴巴云栖大会
  14. 【毕业设计】单片机智能快递柜系统 - stm32 嵌入式 物联网
  15. 基于javafx和mysql的C/S版影院管理系统
  16. vue子组件修改父组件的值
  17. 大学一级课题c语言报告,c语言一级课题总结(16页)-原创力文档
  18. Taro——taro安装及taro创建项目相关命令
  19. select下拉框选择触发事件
  20. 奥利给,圣诞树,圣诞快乐

热门文章

  1. 有时候,孤独是一种“病”
  2. 还原 NuGet 程序包时出错: 本地源“E:\DevExp\Components\Offline Packages”不存在
  3. 数字图像处理之阈值分割
  4. Linux grep命令使用介绍
  5. 萌新一手包App前后端开发日记(一)
  6. 将扩散模型应用到文本领域
  7. 解读波卡崛起之路:DOT大涨,只是顺势而为罢了
  8. ad15原理图中变压器种类_最简单的变压电路图大全(十一款最简单的变压电路设计原理图详解)...
  9. 电脑桌面便签怎么设置按天重复提醒每日便签事项?
  10. daemontools(Daemontools最多可以支持几个虚拟光驱)