Archive

Posts Tagged ‘Grandpa’

grandpa-animation开源了

August 20th, 2012 15 comments

经过令人发指的4个月没有更新之后,我决定把维护了很多年的骨骼动画库grandpa开源,希望能发挥更大的价值。所有的代码和资源已经放在google code上,用网络营销的语言说,有兴趣的请

猛击这里

grandpa这个名字最早来源于著名的rad game tools的很牛鼻的granny动画中间件,据说已经over 2,400 titles shipped(其中包括大名鼎鼎的魔兽世界),当时非常崇拜,就随手敲了个grandpa作为名字,本来想之后再换一个酷一点的名字。结果这么多年一直懒的换,也用出感情了。

相对于其他类似的动画组件,grandpa的特点是比较适合网络游戏这种需要角色频繁换装的应用场景;另外在动画的融合,过渡,采样以及优先级控制上也都比较讲究;效率方面经过这么多年的优化,应该还算不错。详情可以参考grandpa的页面,就不在这里吹嘘了。

比较羞愧的是代码不太符合“开源标准”,完全是vc的编译环境,没有组织成很上流的cmake工程什么的,虽然库本身是纯c++的,不依赖任何其他组件,但所有demo和工具都是基于windows/d3d的,就不再花时间搞成伪跨平台形式了。事实上grandpa曾一度被移植到IOS上,只是最终没有应用在任何项目中。

最后,照例感谢一下李栋同学制作的demo资源(包括模型/动画/纹理),以及leon同学近期的贡献

Categories: 程序/算法 Tags:

Grandpa SDK 0.82 发布

June 28th, 2011 3 comments

下载Grandpa SDK 0.82 for Windows
去Grandpa主页

主要修改:

  • DemoCamera类添加震动功能
  • CameraDemo添加摄像机震动功能演示
  • 添加Ragdoll功能演示
  • 添加KinectDemo
  • 添加极限性能演示CrowdDemo

Categories: 程序/算法 Tags: , ,

Kinect Demo for Grandpa SDK

June 24th, 2011 4 comments

微软刚发布了Kinect for Windows SDK,玩了两天,捣鼓出一个Demo

这一版SDK貌似只支持全身骨架识别,所以还不太适合pc游戏,因为要求的距离太远,还得站着玩,屏幕都看不清了

期待面部表情和手势识别的官方支持

Categories: 程序/算法 Tags: , , ,

Ragdoll Demo for Grandpa SDK

May 17th, 2011 2 comments

应用了开源的tokamak物理引擎,如果换成别的物理引擎应该也不会有太大差别。调整参数花了一些时间,例如每个部位的尺寸大小,质量,关节方向,角度限制等等。比较麻烦的是躯干,因为其他的rigid body比如胳膊,腿什么的都是和骨骼一一对应的,但是躯干上一般会有好几节脊椎。目前只用一整个rigid body表示躯干,所以一旦进入ragdoll状态,后背的弯曲程度就不能再改变了,否则肩关节看起来就会“脱臼”。

ragdoll还是需要一个好用的编辑器才能大规模应用。

Categories: 程序/算法 Tags: , ,

Grandpa SDK 0.81 发布

May 11th, 2011 No comments

下载Grandpa SDK 0.81 for Windows

访问Grandpa主页

主要修改:

  • 添加通用样条曲线采样器,支持float, Vector2, Vector3, Vector4, Quaternion等数据类型的样条插值
  • 完善DemoCamera类,支持左手系或右手系坐标,支持z轴向上或y向上
  • 添加摄像机动画演示工程CameraDemo
  • 整理完善数学库

Categories: 程序/算法 Tags: , ,

Grandpa SDK 0.8发布

March 20th, 2011 No comments

下载Grandpa SDK 0.8 for Windows

访问Grandpa主页

主要修改:

  • 添加Viewer(模型查看器)工程
  • cpu蒙皮效率提升约35%
  • Vector4现在派生于Vector3,Vector3派生于Vector2
  • 支持动画随模型一起加载( 默认为第一次播放时加载)
  • 支持attachment模型和主体模型动画同步
  • 提高Xml加载效率
  • 加入DemoCamera类,替换原来的DXUTCamera
  • IModel接口分解为IPartFunctions,IAnimationFunctions和ILodFunctions

 

Categories: 程序/算法 Tags: , ,

Grandpa Demo on iPhone

July 6th, 2010 2 comments

Grandpa从设计之初就定位于跨平台,渲染API无关的库。核心代码仅依赖c++标准库,理论上可以在任何平台,用任何(基本)符合c++标准的编译器编译。

但是这次还是碰到了一些问题,主要还是VC用的时间太长了,没有意识到某些特性实际上是非标准的,例如:

  • hash_map头文件的位置不同。大家都知道该容器是非标准的,在vc下该头文件和其他容器在一起,而gcc下在ext子目录中
  • gcc警告最后一行非空(也就是说源代码文件最后一个字符必须是回车,标准的确是这么规定的),vc不会警告
  • vc允许只声明enum,gcc不允许
  • gcc没有“安全版”(带_s)的字符串处理函数

另外,Mac OS X(以及Linux等其他Unix系的操作系统)是用utf-8表示unicode,而Windows则采用utf-16,这一点也引起了一些小麻烦。

还有一个很讨厌,gcc居然不认识utf-8的bom(ef,bb,bf)。导致我所有的源代码文件都要改为multibytes编码

好在这些都是小问题,花了不到一天时间就都解决了。

特别感谢张志鹏同学,帮我把原来基于d3d的Demo移植到了Opengl es上。

另外从今天开始,Grandpa SDK开放svn更新,地址为 Http://www.multi-crash.com/release

推荐使用TortoiseSVN

Categories: 程序/算法 Tags: , ,

Grandpa SDK 0.7发布

February 25th, 2010 No comments

下载Grandpa SDK 0.7

Grandpa主页

主要修改:

  • Max插件能自动保存最后一次成功导出的设置
  • 添加IVertexStream接口,顶点数据分为静态和动态两个stream
  • 完善IEventHandler接口,支持任意用户自定义动画事件
  • 添加IProperty接口,用户可以在模型,部件和材质文件中添加自定义属性
  • 添加ISkin接口,支持GPU蒙皮

详情请见更新历史

Categories: 程序/算法 Tags: , ,