求大神指点,我在做一个手语动画显示系统

谢邀,
1、可以直接使用unity制作(包括UI部分),unity可以输出各个平台下直接可以启动运行的桌面应用程序。
2、主要的开发工作应该就是采集到的数据到人物模型动作的映射(包括时间线上的对应关系),这个可以你们定一套存储规范,然后和unity的动画系统对应起来,解析播放即可。
3、我看到示例图的右边还似乎有一些编辑的功能,这个用unity也可以直接开发。

顺便吐个槽:我其实很搞不懂为什么现在好多高校和老的科研机构都还拿着MFC这个老式步枪整天放在技术选型里……明明都已经是现代战争年代了。。用点高大上的不行么……比如WPF都比MFC好用一万倍。我一直坚信,在如今情况下,如果不是为了维护老的代码,千万不要去碰MFC。

■网友
谢谢邀请。这种项目...难是不难,但是很烦,因为想做好的话真的很磨时间。
嗯,好像其他答主的回答都比较简单,我来一点一点跟你说下制作这种项目需要用到的技术点和可能存在的问题或难点吧。
说之前我想先问题主一个问题,你们老师是要求必须用mfc+U3D做么?我看你的意思似乎这个并不是必须的。那我...强烈建议你只用U3D做。原因就是因为这样真的能省去好多麻烦事。还有,选择某个引擎时,是否开源并不一定要做为考虑的点,你说你是跨专业来的,就算一个开源引擎代码摆在你面前,你敢改?

好开始正经回答问题。
首先是我在看过题主的示意图后对这个项目在技术要求上的一些简单分解(就懒得画图了),如有错误请通知我改正。
1、软件上要显示一个人物的3D模型,似乎无法旋转,那就没有实时光照的渲染需求,此模型可以在进行其它操作时进行变化,那就是要做动作,且不是死动作。
2、有个时间轴,可以拖动来对动画定帧(即摆POSE)。时间轴附近可以新建、保存数据。
3、有一堆手势按钮,点击可以让人物的手部模型显示一个固定的套路动作(或者手部模型只是一个POSE,固定不动的?)。
4、可以单独操作手臂等关节的屈伸。

分解完毕之后就可以清楚的归纳所需的技术点,以下以Unity中如何实现来进行举例:
1、首先要有一个模型,否则一切免谈。模型可以网上下,也可以自己做。动作别多想肯定是用骨骼动作的了(意即蒙皮动画)。自己做的话要学下建模以及骨骼绑定相关的知识,网上搜索下3DMAX或MAYA等都可以。(Unity自带就有很多Avatar模型,商城里免费的更多)模型骨骼绑定好之后,摆一个固定pose,就是默认的站立姿势即可。
2、要有一个可以拖动的时间轴以及一堆按钮,随便哪个引擎或者类似mpc这种框架几乎都支持slider\\button这种基本UI,这里不多说。(Unity里自带UGUI,简单方便易用)
3、新建、保存数据等,因为这些数据都是要你自己来自定义的,任何一个引擎都不可能支持,只能自己写。其实将数据都保存在一个类文件里,然后做序列化就好,不多说。
4、点击按钮让手部模型显示动作或POSE。这里是我有疑问的地方,如果需要显示的是动作,那就在3DMAX等软件里去给手部相关的骨骼K动画,每一个手势都要去K一套(我不清楚你们电子手套采集的数据是干什么用的,如果采集的是这个动作信息,那就不用K动画了)。如果是一个POSE,那K不K动画都是可以的,看下面。
5、最关键的一部分其实是各个关节的屈伸,这里强烈建议用IK动画(即反向运动学)来实现。Unity中自带的Avatar动画系统就支持IK,但支持的并不是特别好,不过足够用了(使用Unity自带的Avatar系统的话要按照Unity要求的方式去进行骨骼绑定)。另外推荐一个Unity插件Final IK(有点贵,不过....反正我用的是正版哈),网上搜索一下有很多教程和视频演示。使用IK功能后,什么关节屈伸,只要在Unity里改变这个关节的世界坐标和旋转就可以了,其余关节会跟着自己动...(貌似有点污?)... 如果不用Unity的话...恩...什么?你跟我说你不需要反向运动?那就不需要使用IK功能,直接在Unity中操作骨骼对应Transform的坐标、旋转等即可。这种效果可能就不是太好了,需要你自己来决定。


推荐阅读