Yerha's blog

归档 · 2024

首页

归档

loading..
UnrealAnimationLyra

进阶运动动画的实现

自虚幻引擎5发布以来,Epic 官方提供了很多实用的工具来处理动画资产,在初学者项目 Lyra 中不仅可以看到这些工具的具体应用,还提供了一个进阶版本的动画逻辑解决方案(相较于第三人称射击模板附带的动画蓝图)。本博文主要讨论这套方案的以下几个要点: 如何修改动画序列数据以满足该解决方案的资产要求; 如何减轻游戏主线程的负担,让动画逻辑不成为性能瓶颈; 如何在运行时灵活地替换部分动画,例如玩家装备武器时,将无持械的动画替换为该武器对应的动画。 为了使这套解决方案可以正确工作,以及方便动画资产的处理,需要项目启用Animation Locomotion Library、Animation Warping、Animation Modifier Library插件。本解决方案对应的角色旋转设置如下: // 角色..

继续阅读
loading..
UnrealGASBuildingSystem

如何将建造功能作为一种技能

(最终效果展示) 在很多提供建造玩法的项目案例中,往往是定义 ActorComponent 类并在那里实现启用建造功能、选择建造位置、轻微调整建筑物、生成建筑物等功能,随后角色类会使用该 ActorComponent 的实例,从而获得建造建筑的能力。这需要开发者处理玩家能否启用建造功能,例如当玩家获得阵亡、沉睡、眩晕等状态时需要阻止建筑功能逻辑的执行,并且停止正在进行的建造进程。 除此之外,很多解决方案还采取了引入若干个碰撞频道来实现建筑物对齐功能,这会至少引发三个问题:1. 迁移代码到其他项目时总是需要添加这些额外的碰撞频道;2. 每次引入新的碰撞频道时,需要检查之前的建筑物是否已经忽略了新频道,避免出现错误的对齐;3. 开发者需要检查每个 BoxComponent 是否正确阻挡了对应的频道,增加了因..

继续阅读