团队作业3
软件工程 | 班级链接 |
---|---|
作业要求 | 作业要求链接 |
作业要求目标 | 需求规格说明书 |
队伍名称 | 坐姿要队 |
需求&原型改进:
1.针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改
问题:你的用户群体是什么,他们为什么需要你的产品,你能为他们解决什么问题?
修改:用户群体主要分成两部分,一部分是没有技术基础的虚拟主播,另一部分是有技术基础的虚幻引擎开发者们;
对于虚拟主播,在他们的日常业务中,如果不需要太频繁的肢体互动,比如虚拟游戏主播这种,对他们来说一般的Live2D就足够了,一般也不会有想要换成3D模型动捕的需求;
但目前也有很多强交互性的虚拟主播,他们的业务主要是与观众聊天,但是光靠声音所能传达的情绪信息是很有限的,所以也有的主播用摄像头只拍脖子以下的部分,脖子以上的表情部分则用Live2D来代替。他们往往没有大公司的财力支持,所以没办法用上像A-Soul的这种动捕设备,但他们的业务却又有这方面的需求,所以一套低成本的动捕方案对他们来说是比较必要的;
对于虚幻引擎的游戏开发者们,当他们需要开发一些社交属性比较强的游戏时,往往会面临如何靠文字和虚拟形象构建一个良好的社交氛围的困境,毕竟要做到剑网三这种程度,对于个人开发者或者小团队是比较困难的。但如果把VRChat的语音+动作的方式搬进来,会对游戏的社交功能的提升会有比较大的帮助;
2.因为我们的产品的服务对象有两个截然不同的用户群体,所以产品也应该采用不同的多种不同的形式;
对于主播们,我们应该把这个核心功能包装成一个能够对接多种主流直播平台的软件,并考虑到用户会在不同的平台进行直播,所以这个软件也应该要有跨平台的版本。而且考虑到用户群体的属性,我们的软件应该要足够的简单易用且符合直觉,所以在一部分界面设计上会参考目前较为主流的Live2D软件;
对于游戏开发者们,因为他们有一定的技术基础,所以应当向他们开放更多的自定义权限,以方便他们把这个功能更好地嵌入到他们的游戏里。所以我们的软件应当还有一个插件的版本,发布到虚幻引擎官方商城上供开发者们使用;
2.修改完善上周提交的需求规格说明书
功能考虑不全或需求文档描述缺少的地方:之前的功能只是类似作为一个插件,但是作为给虚拟主播的软件需要更多功能
User Story
用户最开始先登录,然后打开摄像头功能,进入主要界面,可以选择虚拟摄像头,界面会出现人物的套皮模型并且可以自由移动,如果觉得不精准可以开启优化功能。主播还可以把视频推流到其他直播软件,开发人员可以将数据实时输出到UE中。在设置功能中,主播可以上传背景图,或者进行背景虚化,画面调整可以调整画面整体的亮度、对比度、饱和度,也可以自己修改画面相机的位置,旋转角度,或者缩放。
3.功能分析的四个象限
4.根据修改后的需求,调整任务分解WBS及相应的项目进度计划
系统设计:如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计
Alpha任务分配计划
Sprint Backlog
- UI的设计以及摄像头接口连接调用。(HTML CSS、opencv)
- 摄像头的调用以及特征点的形成。(Mediapipe)
- 特征点的提取、计算(三维数据)、传输。(用滤波器提取特征点、用socket传输、写入json文件中)
- 生成骨骼模型。(UE Plugin)
- 动画人物的设计及骨骼模型的应用。
测试计划
测试矩阵
操作系统 | 姿势检测部位 | 检测数据传输对象 | 操作系统默认语言 | |
---|---|---|---|---|
变量数目 | 2 | 3 | 2 | 3 |
windows10 | 脸部姿势 | 与UE实时数据传输 | 中文简体 | |
windows11 | 手部姿势 | 向Maya传输数据 | 中文繁体 | |
身体姿势 | 英文 |
黑盒测试:由两名组员分别使用windows10和windows11操作系统来进行三个部位的姿势检测,这个测试环节不必关心实际测试样例在电脑中生成的数据,只需关心最终界面上显示出来的模型是否符合测试样例;
测试样例包括:
异常检测:
1.是否能正确识别到使用者;
2.程序是否能正常连接到UE并实现数据传输;
3.程序是否能正常向Maya传输数据;
基本功能测试:
1.各种表情的脸部动作(比如:瞪眼、闭眼、张嘴等);
2.手部的各种动作(比如:握拳、拍掌、计数等);
3.身体的各种动作(主要是肩膀的动作:耸肩、微侧身等)。
白盒测试:由三名开发人员根据黑盒测试中反馈出来的bug对实际程序中检测出来的数据进行分析从而对程序加以修改。
测试时间及人员安排:
时间 | 测试人员 | 测试项目 |
---|---|---|
第八周 | 肖卫国、黄嘉熙 | 异常检测:测试程序是否能正确识别到使用者、能否正常连接到UE以及能否正常向Maya传输数据 |
第九周 | 肖卫国、黄嘉熙 | 测试编写好的系统。逐步确认每个功能是否能正常运行。 |
第十周 | 肖卫国、黄嘉熙 | 测试系统在极端情况下的运行情况(比如针对一些复杂的动作、表情等系统能否正确捕捉到相应的数据并最终正常显示在终端上 |
第十一周 | 肖卫国、黄嘉熙 | 对最终优化完成的程序再进行最后的基本功能测试 |