最近笔者接到个需求,做个类似之狼的受击反馈。因为就是作为一个测试,所以也就没有策划和我匹配,全部都要自己写。写代码前要想好自己做什么,怎么做。这就关系到写需求和实现内容以及设计内容了。下面我就以我的任务举例,这三个到底是什么区别,以及都要写什么内容吧。
首先,老大先找我聊了聊,让我做个什么东西。他跟我说,我们现在要做个角色的受击反馈,你去做一下吧,要求这个玩家角色和AI都可以使用,主要要依靠C++,不能全用蓝图。其次,应该具有,比如不同武器或是拳头攻击,角色应该具有不同的受击反馈效果。比如我拿榴弹炮炸你肯定和拳头打你不一样。其次,被攻击不同位置,也要有不同的反馈,不能打你头和打你胳膊一个动画。
他还强调了,让我先写个需求内容。我写了好几遍才弄懂需求内容和设计内容的区别。下面我就拿我的这个需求以及我最后写的来举例吧。
实现内容
首先是事先内容,事先内容应具体体现我要做什么效果,而不是制作的过程。
以需求为例,需求要求我们做受击反馈,我们就要在实现内容文档里写明,我们要实现什么样的效果。这些本来该是策划的内容,但是就是个小演示,就自己弄了。不求人,吃饱饭哈哈。
我们应分条体现具体实现内容:
1.面对角色的不同攻击产生的不同反馈
攻击不同部位的反馈
不同攻击方式的反馈
2.攻击不同部位,角色应根据攻击方向产生相应的受伤动画,不同攻击方式角色应产生相应的反馈,例如榴弹炮攻击,角色应产生具体的场景位移以凸显真实感。
3.如果角色被连续攻击,应体现被连击的效果,应每帧调用一次,动画不重新播放,但播放时间效果应加强
4.被持续击中后应体现倒地效果,此时碰撞体应随着角色的跌倒而产生相应缩小效果
5.如果角色死亡,应立即进入布娃娃系统
6.可以做一个攻击镜头摇晃效果,攻击时镜头微微晃动
7.将角色分为头部,左臂右臂,左腿右腿(包括脚部),身体,五个受击部位
8.被击倒后,应做个起身动画,起身期间被攻击,等待起身后播放受击动画
设计内容
这里则需要填写的是我们设计游戏的具体实现步骤,也可以说是框架吧。就是你实际操作应该怎么做,怎么写代码,怎么调用等等细节的具体内容。
首先我们应该先搭建一个测试Level,并布置好场景。接下来创建一个C++角色基类,继承于Character,并含有最大生命值,以及idle,injured,death三个状态。idle状态,播放idle动画,injured状态播放受伤动画,并根据不同受伤部位扣除不同生命值,同时判断当前生命值是否小于0,小于0则进入死亡状态。死亡状态,进入布娃娃系统。
我们需要导入素材,将骨骼重定向到我们Ue自带的小白人身上,通过蒙太奇动画蓝图实现,不同骨骼部位的受击动画。给予不同骨骼部位不同的受击反馈,生命值100血,头部被击中扣50滴,其余部位扣30点血。其次窗口振动可以用camera shark来制作。
因为就是举例,我这里就也没有写太全,这里大家就看一下就好啦。以便于下次让我们写文档时候,还分不清两者的区别。