|
37278672ed
|
整理及制作特效
1.制作了火焰粒子及shader
2.整理相关特效为预制体,为方便程序导入,都为拖入场景就能用的。
|
2022-08-26 04:45:43 +08:00 |
|
|
e285f751bf
|
制作特效
1.完善了日夜交替的功能,目前太阳位置、灯光和脚本都调试好了。灯光为了方便是用动画做得。
2.完成魔改了爆炸闪光的后处理,只需要调用开关后处理的摄像机即可使用
3.完善了爆炸的烟雾特效。
天亮了。
|
2022-08-25 05:33:40 +08:00 |
|
|
5e1076735a
|
制作灰尘
1.制作了马蹄底部行走时会产生的灰尘
2.制作了可破坏的障碍破碎市的灰尘,直接做成爆炸状了
建议:
在马撞碎障碍物时建议加入短暂卡顿,类似于动作游戏卡肉增加力量感。
|
2022-08-22 03:05:00 +08:00 |
|
|
159cfd8881
|
制作部分特效
1.创建了个人文件夹,复制了部分场景。
2.编写了URP的屏幕后特效框架。
3.制作了一个场景内模拟树叶飘落的粒子,增加一些场景内的动感。
4.制作了几个Shader
1)利用2D的顶点着色器制作了一个边缘扭曲的Shader可以用在飘落树叶上,模拟3D树叶翻飞的感觉。
2)制作了溶解的Shader,建议用在可破坏的障碍上。
3)制作了一个闪光的Shader,可以用在障碍物上突出障碍物,但是Shader还需修改,现在太违和了。
TODO:做了一半昼夜交替的效果,这也是忘了哪个老师的建议说可以加入一个太阳在运动,效果大概可以用灯光来做,目前测试的颜色变化是B先减弱15%,G减弱20%,然后B回升R减弱。
ps:我的拓展坞不见了接不了手柄,需要等明天到货后开发动起来的特效,这个键盘操作太脑檀了,我不认为普通人可以顺畅的两只手同方向依次按键还不会乱。
建议:
建议为可破坏的障碍物添加提前消失的机制,现在如果冲撞力度不大,碎块只会破碎不会分离,但碰撞体会关闭,很奇怪,建议使用Shader让其破碎后消失。(但是溶解消失的shader与游戏风格不搭,也可以给碎块一个右的力,做一个击飞效果)
|
2022-08-21 03:44:34 +08:00 |
|
Roman
|
b66d86645e
|
任务:开发人马分离系统
分析:
1.其是与马并列的存在
2.具有状态:Normal:骑在马背,Shoot:从发射到着地到平台,Walk:在平台行走,landing:降落,Recover:若成功降落至马背,从刚判定成功到恢复到Normal态的中间态,为Recover态,Dead:判定为失败的瞬间以后都为Dead态。
3.效果要求:到达障碍物前某一位置后,人自动弹射,降落至平台,然后开始匀速移动,脱离平台后降落,之后持续判定是进入Recover还是Dead态。进入Recover态后,修正其偏移,使其回到默认的位置,Dead后,触发GameOver事件。
子任务:使人紧紧跟随马
1.当人处于Normal态,每帧同步人的位置和旋转到马背某处。
效果正常。
DONE
子任务:设计障碍物
1.仅跑道有碰撞体。
2.在障碍物主体之前有触发器,保证用户通过时能检测到,当检测到人进入触发器时,触发人的函数,Shoot()。这个触发仅有一次。
3.当检测到人着陆到平台上,触发人的函数Land()。
4.当检测到人离开平台,触发人的函数FallOff()
DONE
子任务:完成人的Shoot、Land、Falloff函数
Shoot:
1.给予刚体一个固定的朝向右上角的速度,使其刚好能抛到平台上。
2.从Shoot到Walk,大约有1~2秒时间,不能让人脸着地前进吧。所以,需要在1秒内修正人的旋转,修正完后锁定刚体Z旋转。
Good Job!效果不错
DONE
Land:
1.此时人脚着地处于平台上,让人按照固定的速度一直朝着右边前进即可
比较简单
DONE
FallOff:
由于胶囊碰撞体的特殊性,下落时会触发多次FallOff,这是不行的。同时,人在边缘直接坠落非常难看,所以这里加上一段小跳跃。
1.当触发FallOff,给刚体一个右上的速度,模拟跳跃
Good Job,效果很不错
DONE
子任务:完成马接住人的判定和控制系统
1.在马背安置触发器,当检测到玩家进入,触发人的Recover函数
2.完成人的Recover函数,使人在短时间内回到指定的位置和旋转,恢复的最后把人的状态恢复到Normal
DONE
子任务:开发,人直接掉落到地面的死亡逻辑
1.直接掉落到地面后,触发GameOver
子任务:测试
1.发现人Recover功能的问题,Recover时的目标点是固定的,但是恢复的过程中马会动,所以这种办法从根本上就有问题。再多写一个动态的追踪比较麻烦,姑且让人恢复得快一点,这样就看不出来什么破绽。
已解决
2.人有时发射不到人马分离的平台上,应该是发射速度太小导致的,已调大。
3.我认为现在创烂障碍物的速度门槛太低了,已适当加快
4.人马分离障碍会突然出现而不是从屏幕右侧进入出现,这是人马分离障碍体积过大导致的。目前只能适当右移障碍物生成点解决。
5.发现Bug,本来可创烂障碍物的爆破力度会随着马的速度而改变,但现在经常响应不到。
已修复。
暂未发现更多问题。
至此,人马分离障碍物的逻辑基本完成
*修复Bug
1.原先马在触发器也会被阻挡,这是因为马脚供力的算法的错误导致的,要从根本解决需要修改复杂的算法,所以这里使用Trick,将触发器的物理层转移到忽略射线检测层,解决了这个问题。
DONE
2.发现Bug,本来可创烂障碍物的爆破力度会随着马的速度而改变,但现在经常响应不到。原来监听的是马的速度,由于整个数学模型的特殊性,马本体的速度变化极其诡异,所以易导致监听错误。应采用新的监听方式,不再监听马本体速度,而是监听用户过去若干时间内的输入变化,由此来决定爆破力度。
不是!我的代码没问题,是这个插件的作者的代码的问题,非常啥卵。已通过修改插件作者源码解决问题。
DONE
|
2022-08-19 14:23:35 +08:00 |
|
Roman
|
821679433d
|
任务:针对上次答辩的反馈更新内容
子任务:应付中期检查提交
1.替换场景元素,适配流程
DONE
2.修改大量游戏性参数,使其能玩
DONE
3.增加手柄按键以重开
DONE
4.替换障碍物美术素材
DONE
5.导出可执行文件
DONE
6.编写文档说明本次和上次的区别
DONE
|
2022-08-13 17:12:45 +08:00 |
|
Roman
|
0b868c35a3
|
任务:针对上次答辩的反馈更新内容
子任务:添加马尾马头部分的运动
马头:
(1.当马普通步行,根据右摇杆的输入把输入向量到Right向量的角度(0~360度)映射到0~1,然后用IK控制马头上下摆动
(2.当马处于跳跃状态,解除(1.
(3.当马落地,让马头上下剧动一下
NG,这种方法太复杂!
我使用了一种延迟跟踪的方法,完美得解决了问题。现在马头的效果很棒!Good Job!
2.用同样的方法控制马尾
NG,马尾只有一节骨骼,无法使用马头的方法。采用类似最后一节马脚的方法,用速度对马尾骨骼角度插值
想了别的办法,CCD类的IK是可以指定一节骨骼的尝试
效果一般,但是聊胜于无
DONE
|
2022-08-13 14:50:18 +08:00 |
|
Roman
|
a4323c1fdb
|
任务:针对上次答辩的反馈更新内容
子任务:更新马足骨骼
上次被要求马更加仿真,则需要马蹄再加一截骨骼
1.替换上新的骨骼
DONE
2.仍用两节式的控制,试了其他解算器效果不行,腿会扭曲成自然中没有的样子
DONE
3.用代码控制最后一节马脚的骨骼的旋转,当马腿抬起,旋转到一个状态,当马腿方下,旋转到另一个状态,用插值Lerp的方法
DONE
明日预计完成
子任务:添加马尾马头部分的运动
|
2022-08-11 22:44:41 +08:00 |
|
Roman
|
03b4c4d9f2
|
任务:针对上次答辩的反馈更新内容
子任务:恢复并更新马的操控模型
1.上一回在演示之前,操控模型都没有调好,所以我临时换到了一个比较容易展示的操控模型。应该把它换回并继续调教。
DONE
2.现在马的加速状态不理想,马的最大速度很小,想要统计过去一段时间内的摇杆输入的变化总量,以此来给速度加成。
(1.每Fixed记录本帧和上帧输入方向,求得夹角,累计若干时间内的夹角,就能得到这一段时间用户的输入总体的速度水平
(2.让这个速度水平乘以调整值后影响马的前进力度,即可解决加速问题
已将手感调至较为合适
DONE
子任务:调整镜头比例,上次说马太大了。
已稍微调小
DONE
|
2022-08-10 22:14:21 +08:00 |
|
Roman
|
426949258f
|
测试提交
|
2022-08-04 17:37:45 +08:00 |
|
Roman
|
465bb3e51b
|
任务:编写内容应付中期提交
1.替换部分美术素材
(1.替换新的马
(2.布置背景
2.创建教程场景,说明移动方式、跳跃方式,并陈列目前三种障碍
3.调节脚本优化控制体验
4.新建背景无限循环系统
5.调节各系统参数,使其至少能玩
6.导出一版EXE供提交
7.撰写操作说明
8.录制游戏演示
|
2022-07-30 20:02:28 +08:00 |
|
Roman
|
e3e11e2556
|
任务:编写玩法框架
1.制作障碍系统
(1.制作几种类型的障碍物的预制体
((*.编写障碍物基类,以下几种均继承自基类,含碰撞体,RememberY(生成障碍物时该有多大的Y)
((1.矮障碍,仅碰撞体
((2.高障碍,仅碰撞体
((3.可冲破障碍
(((1.除基本碰撞体外,额外包含一个触发器,比碰撞体先检测到马,同时获取马的x速度,大于阈值则给障碍做破碎,用马的力度决定破碎力,关闭碎块和马的碰撞
(((*.导入某2D破碎插件
((4.人马分离障碍
(((WAIT,需要等待人马分离系统先搭建
(2.编写障碍物生成系统
((1.每若干时间,生成一个随机一种障碍,若干的范围可控
(((1.设计协程,从预制体列表中随机出一种,并在计算好的位置实例化,随后等待范围内的若干时间,然后检查马的存活情况,若马仍存活,重新调用本协程
((2.生成的位置:x在相机右侧若干不变距离,y根据障碍物的不同而不同,需要计算保存。
(3.编写障碍物消亡系统
((1.每个障碍物和碎片都会在离开镜头后被删除
|
2022-07-30 00:47:44 +08:00 |
|
Roman
|
e1fa077241
|
任务:编写玩法框架
1.视野移动和死亡重开系统
(1.相机以一个可指定的、热更新的速度始终往右移动
(2.相机带有一个子物体,子物体带有触发器,触发器位于镜头最左端
(3.给马头添加碰撞体,用于判断镜头卡死死亡
(*.创建类:GameController,作为各种中介者使用
(4.当相机子物体的触发器检测到马头,说明马被卡死,给中介者发送信息触发死亡的一系列事件
((1.马死后,修改马状态至死亡
((2.相机不再移动
((3.关闭马的碰撞体,给一个右上的速度和旋转,马模型掉出地图
(5.设置按键以调试重开,目前是按R
DONE
|
2022-07-28 15:58:55 +08:00 |
|
Roman
|
7bbfa625a0
|
任务:搭建基本玩法
1.让马可以跳跃
(1.测试,如果我给马的刚体一个(1,1)的力代表跳跃,是否可行?
Good Job!通过测试,可以通过给力的方式使马整体起飞,而且控制点和马蹄都会随之起飞,是理想的状态。
(2.让马并拢每一组腿,当按住某键,使该组腿并拢,也就是消除输入偏差。当松开键,重新设置输入偏差,使双腿分开。
DONE
(3.从输入中获取信息,当两腿均并拢,进入跳跃模式,否则离开跳跃模式,在跳跃模式下,如何通过输入计算出应该给出多大、哪个方向的的跳跃力是核心和难点
(4.马脚和马脚的控制点很难控制,数据也经常抖动,我不想通过这两个变量来计算跳跃的力。我打算直接通过输入值判断
(5.尝试:首先,若处于跳跃模式,每帧记录上一帧输入,并计算一个瞬时速度,当瞬时速度的y大于0,也就代表此时腿在上升,在预备,不考虑。若瞬时速度的y小于0,说明腿开始下降,可能会跳起。此时判断此瞬时速度的模长是否大于某个阈值,若是,进入戒备状态,此后的若干帧后,有任何一帧再低于阈值,说明输入结束,输出最后的速度,并给予马刚体。若此时瞬时速度的模长小于阈值
,说明太慢,不记录。在这个戒备状态中的每一帧,需要记录瞬时速度,并累计影响,最终经过乘以调整值、取反(因为是相对作用)操作,得到需要赋予马的力,然后把力赋给马刚体,完成一次跳跃
(6.Good!初步尝试有效。在马着地后,重置跳跃状态,即可完成循环,开始下一次跳跃。
至此,马基本可以跳跃,但是手感极差,并且键鼠几乎没有操作空间,需要后续进一步优化……
|
2022-07-26 00:00:56 +08:00 |
|
Roman
|
718deb06d1
|
任务:实现基本玩法
1.策划数学模型
2.搬迁工具类如单例模式模板
3.创建玩家类,用于接受和发出指令、记录玩家信息等
4.创建马类,用来接受信息、物理计算、控制马的碰撞等模拟等
5.实装数学模型,实现马脚的控制
6.探索物理实现方式,给控制点加上碰撞体和刚体,似乎可行
--NG,分离的刚体无法作为整体传递力,脚的反作用力传不到身体上
7.把操控分组,左摇杆控制后两条腿、右摇杆控制前两条腿
8.探索物理的实现方式,尝试仅在主物体上挂载仅一个刚体,探索碰撞体组的使用方式/
((1.给马添加四个碰撞体代表马足
((2.每帧刷新碰撞体的偏移,使其对准真实马蹄位置,所以需要找准offset和世界空间下位置的对应关系
((3.如何让马前进?目前发现无法使用真实物理的反作用力,只能根据输入或其他信息算出这个反作用力
(((1.最终应该通过原速度 + 计算出输入速度,不能使用力,因为使用力涉及的参数极多,很难修改
(((2.应该通过马足真实位置计算输入速度,不能使用控制点位置
(((3.每只足应该记住自己上一帧的位置,并每帧更新
((4.本帧位置减上帧位置 = 运动速度,一个二维向量
((5.并非一直有效,当本帧马足位置低于圆心 + 调整值时,才有效,否则该足贡献的速度为0.同时,需要有输入才有效,若无输入,同样贡献速度为0
((6.NG,主要在判断速度是否有效上出了问题,试试每帧给足和地面测距,小于阈值的才给过,然后才加速度
((7.GoodJob!通过上述方法和其他细微调整,已经使得马可以行走,并且得到不错的效果。但是肯定还有问题,需要后期更进一步调整
目前马能够受到控制,并且可以走动。同样支持键盘游玩,但是体验极差
|
2022-07-24 21:15:22 +08:00 |
|
Roman
|
d1d6ad1c2a
|
1.导入马骨骼
2.测试IK成功
3.导入必要的插件:InputSystem、CinemaMachine、Dotween、ASE、Odin
好累啊,下班
|
2022-07-18 23:15:27 +08:00 |
|
Roman
|
f71bd2f849
|
first
|
2022-07-17 23:29:12 +08:00 |
|