个人游戏开发日志

开发日志

2023.02.08

  1. 使用AssetStore中的免费资源构建了场景以及人物模型,在第三人称控制器的基础上加入了一些动作:攻击、闪避、翻滚以及相应的逻辑控制。

2023.02.09

  1. 加入武器绑定功能,实现原理主要是将角色的左右手位置绑定脚本,通过ScriptableObject来提供武器。在最上层使用脚本加载左右手的武器,为了防止武器与手不匹配,因此可以在左右手位置添加空对象,然后将空对象的坐标传入武器加载脚本中,通过修改空对象坐标来调整武器位置,防止左右手坐标被修改。
  2. 加入血条,首先通过创建UI,Slider来控制血条的变化。通过脚本来连通玩家血量与血条的匹配,进而控制血条的变化。加入伤血功能,包括一些受伤动画,死亡动画,复生动画。
  3. 需要注意的是,需要控制坐标是否随动画变化,如果没在脚本中指定,那么可能会导致模型抖动的bug。

2023.02.10

  1. 添加受伤的效果,通过在武器上添加碰撞器,建立敌人类别,通过碰撞器检测是否收到攻击,然后更新受攻击对象的状态。注意这里只是在攻击的时候开启武器的碰撞器,因此在攻击动画中加入关键帧事件,在某一帧开启武器的碰撞器,在某帧关闭。这里有点麻烦的是每加入一个攻击动画,多需要添加关键帧事件。
  2. 添加攻击动画混合的效果,这里主要是轻攻击,通过加入一个bool变量来控制角色是否能够混合攻击。主要的逻辑在于在轻攻击的逻辑中根据bool变量来判断是否更改播放动画,即从一个动画衔接到第二个攻击动画。为了限定混合攻击的时机,在第一次轻攻击快结束的时间段将bool变量赋值为真,来使玩家的第二个衔接的攻击动画可以播放。

2023.02.11

  1. 加入武器切换的动画。
  2. 加入玩家的耐力属性,通过Item脚本加入每个武器的基本耐力消耗,通过轻重攻击来设定实际的耐力消耗。
  3. 将空手也作为武器加入。
  4. 加入可交互类别的物体,通过挂载脚本来控制具体的交互逻辑。原理就是通过按键和碰撞器同时检测是否与物体交互。
  5. 加入捡起武器的功能,这是属于可交互物品设计的一部分。

2023.02.12

  1. 加入与物品交互的UI,比如靠近可交互物品会有提醒,捡起来之后会有相应的图标以及物品名称。制作原理:设计UI、设计脚本控制UI的出现时机以及消失实际即可。通过将物品加入玩家背包的同时将物品的信息传给UI,并将其显示即可。这一功能主要体现在 HUD Windows 里的 Interact Alert UI 中。

2023.02.13

  1. 加入 UI Windows 用来加载玩家信息、背包以及系统设置。
  2. 目前加入了背包武器的显示,即 Weapon Inventory Window. 在游戏中捡起的武器都会加入到背包中并在物品栏中显示。原理同样是提前设计好 UI , 将记录玩家物品的脚本与控制 UI 的脚本联通,在打开窗口的时候更新窗口数据。
  3. 加入一部分玩家状态的窗体,类似黑魂中的左右手武器,实现了绑定并显示。这里需要注意的是我们将左右手武器数量写死为4个,并对命名方式进行了限制,以此来获得左右手武器的顺序。

2023.02.14

  1. 加入锁定功能,通过设计脚本让玩家和敌人挂载角色脚本。
  2. 通过相机检测指定范围内指定层的碰撞器,判断是否含有角色脚本来获得物体。
  3. 将距离玩家最小距离的敌人作为当前锁定目标。
  4. 将锁定目标的位置与玩家位置计算得到相机的位置以及旋转方向来锁定目标。

2023.02.15

  1. 加入左右切换锁定目标的功能,通过计算目标与玩家的相对位置来获得当前左右最近的目标,根据输入来选择锁定左边还是右边。

2023.02.17

  1. 加入从武器库中加载武器的功能,通过脚本将当前武器替换为武器库中的武器,并更新武器库信息以及玩家信息,重新加载一次武器即可。

2023.02.19

  1. 加入双持武器的功能,通过加入动画来改变玩家的状态。这里的原理是通过按钮控制玩家的动画以及如何加载武器。加入动画遮罩后即可只改变双手的动画,不用担心加入双持动画后会影响到其它动画。

2023.02.27

  1. 加入敌人AI的行为
  2. 通过在敌人的prefab下添加空物体来挂载不同状态的脚本,通过状态转换来改变AI的行为,可以简化敌人的代码,同时可扩展性更强。
  3. 主要的实现为每种状态的逻辑控制以及状态转换,比如从 I d l e → P u r s u e → C o m b a t S t a n c e → A t t a c k Idle \to Pursue \to Combat Stance \to Attack IdlePursueCombatStanceAttack

2023.03.01

  1. 加入敌人的休眠状态,在玩家进入敌人范围后会唤醒敌人。

2023.03.05

  1. 加入攻击时发生交互的碰撞器,这样可以防止攻击时出现不符合物理的现象。
  2. 加入后碰撞器会与角色本身的碰撞器发生碰撞,导致角色在场景启动时乱跑。解决方案:
    首先为碰撞器设置专属的层;然后在 Project Settings → \to Layer Collision Matrix 中取消勾选层与层之间的物理效果。

2023.03.10

  1. 加入法术项。
  2. 加入法术武器。
  3. 首先构建方式与武器项类似,通过继承 Item ,设置相应的法术属性。
  4. 然后就是施法准备动画以及施法后的动画。
  5. 通过攻击时判断当前武器是否具有施法的属性以及当前是否配置了法术来选择释放法术,释放完后获得相应的效果。目前实现了回血的法术。

2023.03.14

  1. 加入施法需要消耗的精力,同时在UI上加入精力条。

2023.03.16

  1. 加入背刺功能。
  2. 通过在角色背后添加一个碰撞器,同时在角色前面添加一个射线发射点,从该点去判断是否击中碰撞器,然后执行背刺行为。
  3. 按钮行为还是点击左键,不过需要摁住一定时间,这个就看个人设置了。
  4. 执行成功后需要更换角色的位置,并旋转角色朝向。这个同样需要在角色身后设置一个点用以放置背刺时角色的站位。

2023.03.20

  1. 添加致命伤害计算,分离背刺,弹反与普通攻击的伤害。

2023.03.21

  1. 添加攻击时的旋转控制逻辑,通过动画事件来改变旋转的状态并以此控制角色的旋转。
  2. 添加耐力消耗,包括翻滚以及奔跑时的耐力条消耗。

2023.04.24

  1. 添加捡箱子的功能,通过在箱子模型中设置拾取时的位置来改变玩家的位置,并通过旋转改变玩家视角,使其朝向箱子;箱子打开时会播放动画并出现物品。
  2. 添加魂量的增加功能,这里魂量类似于经验值可以用来给玩家升级购买物品等等;当敌人死亡时会给所有玩家增加设定好的敌人死亡掉落的魂量,通过协程来使魂量不断增加。

2023.05.09

  1. 为敌人加入混合攻击功能,通过对继承自 ScriptableObjectEnemyAttackAction 修改,加入混合攻击的动画,通过敌人的攻击状态机来判断当前攻击是否有混合攻击,如果有则继续进入当前攻击状态机,并修改当前攻击为后续的 EnemyAttackAction
  2. 添加盾牌防御功能,通过添加新的键位控制来改变玩家的状态,将其转化为防御状态,通过判断当前左手武器是否是盾牌来使用防御动画。
  3. 添加盾牌防御数值,通过设置百分比来减少收到的伤害。通过设置碰撞器来获取当前是否处于防御状态以及当前武器的伤害吸收率,然后改变收到的伤害。

你可能感兴趣的:(动画)