请教一下如何设置角色穿墙行走(蓝图)

大家好,我是新人,想请问下如何控制一个Actor,以一个恒定的速度行走,并且无视所有其他Actor,也就是没有碰撞,可以overlap。

我使用方法是使用蓝图的 add input movement node 来获取键盘的输入。

但是我发现如果我控制的是一个 Pawn 或者 default pawn,它根本就没法以恒定的速度行走,一定要设置一个加速度。

但如果控制的是一个 Charactor,由于CapsuleComponent的存在,它一定会和其他物体产生碰撞,如果设置 CapsuleComponent 的细节–> 碰撞–> 碰撞预设(Details –> Collision –> Collision presets)为 No collision 或者 overlapall 的话,它又会由于重力和无视碰撞的的原因直接往下掉根本无法控制。

那好,那就消除重力吧,所以我在 CharactorMovement Component –> Details –> Charactor Movement(General Settings) 里把 Gravity Scale 设置为 0,结果是它又以一个很诡异的加速度缓慢移动。

仔细想了想,由于预设的行动模式是“行走”,没有重力之后走的慢是吧,那我把预设的行动模式设置为“飞行”总可以了吧,结果确实动得快了,但是…却同时伴随着那讨厌的加速度。

在本人的知识范畴里实在是没辙了,想请教大神如何解决

你又说无视所有Actor又想要沿着地面行走,这个逻辑似乎有些混乱。

那好吧,无视所有除了用于表示地面的那个Actor,要咋整

反过来想,不要去修改人物的碰撞,在和墙碰撞的瞬间把墙的碰撞设置成no collision就可以了,因为墙一般是不会移动的物体所以也不会受到重力的影响。

非常感谢大神的解答,这我确实没想到,赞一个。但是本人又想到另一件事,由于游戏世界里是有NPC的,而有些NPC是会追逐主角人物的,本人只想让主角穿墙,不想让NPC穿墙,如果设置墙为No collision的话,这样追逐主角的NPC也可以穿墙。如果设置NPC撞墙的瞬间又把墙设置为有碰撞的话,主角又会卡死在墙里,这并不是我想看到的结果。如果你有什么方法可以只让主角穿墙,而又不让NPC穿墙,请不吝赐教,当然还是很感谢你的这个设置墙为No cllision的想法

墙和地面的碰撞分开设置,墙建立一个新的碰撞通道,这个新的通道玩家在碰撞上忽略但是敌人不忽略