本文由 FrameSprite 作者工作流整理,AI 辅助编写,引用原始技术资料;构造案例不代表模型或引擎实测。
用两个向量和一套明确优先级处理侧移、原地瞄准与最后朝向,避免角色每次移动就丢失攻击方向。
移动向量决定位置变化,瞄准向量决定攻击朝向;不要让同一个 direction 变量同时承担两件事。先定义瞄准有效时的优先级,再将选定向量量化到八方向。只有身体图片本身包含完整侧移动作时,朝上图片配向右位移才不会显得脚底滑动。
移动输入经过死区和长度限制,瞄准输入来自右摇杆或角色到目标的世界向量。屏幕鼠标坐标先转到世界坐标,别直接减世界中的角色位置。记录两者来源,便于判断方向错误出在输入还是动画选择。
例如有效瞄准优先,其次非零移动,最后保留上次朝向。攻击开始后是否锁朝向由玩法决定,不应让输入抖动重选挥剑方向。把该规则放在一个位置,避免移动逻辑和攻击逻辑轮流改写。
列出向前、倒退和侧移的素材。只有八张朝向图并不代表已有八种侧移步态;需要时先在帧灵为目标朝向准备动作,再人工检查脚部接触。缺少侧移时,可暂时让身体朝移动、武器独立瞄准,但要检查遮挡。
测试右移上瞄、静止左瞄、取消瞄准但继续移动、全部松开和攻击中改变输入。每例同时显示move、aim、facing和动作名,不只看人物是否转向。
用三个输入记录验证“有效瞄准→移动→上一朝向”的优先级,并单独保留移动向量。
右移上瞄选择up;停止移动仍保留up;释放瞄准后左移选择left。
这是方向选择规则测试,不测摇杆硬件或生成动作的步态质量。
移动 | 瞄准 | 朝向 |
|---|---|---|
right | up | up |
zero | zero | previous |
left | zero | left |
用三条输入就能找出常见错误:向右移动并向上瞄准、停止移动但仍向上瞄准、松开瞄准后向左移动。前两条都应保留朝上,第三条才由移动方向决定朝左。不要在每次速度更新时覆盖瞄准状态;零向量也不应把人物重置成默认朝下。再检查攻击框与枪口插槽是否采用同一套朝向,而运动碰撞体是否继续遵守世界坐标。这样才能区别“人物图选错了”和“动作控制逻辑把正确图片转错了”,减少不必要的重新生成。
不要为了支持自由瞄准,立即生成八方向乘八移动方向的全部组合。先验证主要战斗动作是否要求侧移,记录缺失姿态,再追加最有价值的组合。若需求是静止施法,原有八向施法就可能足够;若要求持续绕圈射击,只有前进跑步通常不够。
本文向量运算依据Godot输入与Vector2接口;优先级和验收矩阵是本指南的设计建议,并非引擎自动提供的角色控制器。
本次补充由 AI 辅助整理,按公开原始技术资料核对。可下载的输入与预期结果是原创构造案例,不代表模型或引擎实测;实际项目应按步骤保留自己的验收记录。
通常保留上次有效朝向;只有玩法要求时才转正面。
不能。静态朝向和侧移动作的脚步是两种交付。
由攻击规则决定,给锁定和可追踪阶段明确边界。
Godot Input vector actions · Godot
Godot Vector2 angle and length · Godot
原文:https://cn.framesprite.com/guides/eight-direction-strafe-aim-move-independent
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。