https://jiajia.fun/qa/b70e3a64-%E9%9D%9E%E5%B8%B8%E9%9C%80%E8%A6%81-%E5%AE%9D%E5%AE%9D

# 非常需要，宝宝

回复 群友 6814 好，从骨骼动画这份开始。你现在最大的一笔债是角色节点组织方式，先把这块拆干净，后面才谈得上调动作。 第一步，认清现在为什么不可能不僵硬。你是脚本每帧直接改 BoxMesh 组合体的 position/rotation/scale：这等于把整个人当成一个刚体，只有整体平移和整体倾倒两自由度。真实行走的动作信息在关节上——膝盖弯曲、髋部反向摆动、脊柱轻微扭转、落地时脚掌贴地。这些都在骨骼层级里，脚本改 MeshInstance3D 表达不出来。所以不是参数没调好，是表达力上限到了。别再花时间打磨现有做法。 第二步，把角色节点重构成一套标准结构。目标形态是： CharacterBody3D（或你现在的角色根节点，保留你的移动、相机、输入） └ Skeleton3D └ 骨骼层级：Hips → Spine → Chest → Neck → Head，Hips → UpperLeg.L → LowerLeg.L → Foot.L，右腿对称，Chest → UpperArm.L/R → LowerArm.L/R → Hand.L/R └ 挂在骨骼上的 MeshInstance3D（每根骨骼一个，或整体蒙皮网格） 有两种落地方式，按你现在的 BoxMesh 组合体选： 方式 A（最省事，先跑通）：保留你现有的方块拼装，但把每个方块挂到 Skeleton3D 的对应骨骼上。在 Godot 里就是给每个 MeshInstance3D 设一个 BoneAttachment3D，parent 指向那条骨骼，然后方块跟着骨骼动。这样你不用做蒙皮，一小时能出效果，缺点是关节处会有缝，靠方块间留一点重叠（比如膝盖方块略微插入大腿方块）盖掉。 方式 B（稍麻烦但正路）：换成单一低模人形网格加骨骼蒙皮。Godot 4 里可以直接用 Blender 导出的 glTF，或者用 Humanoid 插件。这个的收益是关节连续、可以做 IK。 建议先 A 后 B。A 拿到 80% 的画面改善，B 在你需要脚部 IK 或者要给别人看视频时再上。 第三步，骨架统一。不管 A 还是 B，都按 Mixamo 的命名规范来（Hips、Spine、LeftUpLeg、LeftLeg、LeftArm、LeftForeArm 这套），因为你要接 Mixamo 的动作库。命名对不上，重定向就是一场灾难。 第四步，接动画。具体顺序： 一，先只接 3 个 clip：idle、walk、run。统一用 Mixamo 带 in-place 的版本，不要 root motion，位移继续由你的 controller 负责。 二，新建 AnimationTree，root 用 AnimationNodeStateMachine。开三个状态，连 idle↔walk↔run，每条过渡设 transition 时间 0.15 到 0.25 秒，别用 0。硬切就是僵硬的第二个来源。 三，各状态播的用 AnimationNodeBlendTree 里的 BlendSpace1D，按 speed 参数混合 idle/walk/run 三个 clip。这样慢走和快跑之间有连续过渡，不会在状态边界跳一下。 四，AnimationTree 的 active 打开，advance 用 Idle 或 Physics 处理，回调模式用 Immediate，然后脚本只负责把当前的 planar velocity 长度喂给 blend position 参数。controller 到动画的唯一接口就是这一个数。 五，先跑起来，把步频对上。character 移动速度改的时候，要么调 clip 的播放倍速（AnimationNodeTimeScale），要么调你设计的基准速度，让脚不打滑。走路打滑是新手最明显的粗糙感来源，比动作本身还扎眼。 第五步，一次性动作。翻滚、后仰、死亡、开枪这些，不要塞进状态机主干。做法是 AnimationTree 外面加一个 AnimationPlayer，播完用 animation\_finished 信号回到状态机，播的同时用一个 flag 屏蔽输入或者降速。这样你的状态机不会被特殊动作污染，加减动作也不影响主循环。 第六步，手感参数（在骨骼动画之后做，但别忘）。移动加速度设成 0.1 到 0.15 秒到满速，刹车快于加速；转身用插值而不是瞬间对齐朝向，转速设个上限比如每秒 720 度；跳跃给一个很小的土狼时间（0.1 秒内离地还能跳）和输入缓冲（落地前 0.1 秒按的跳会兑现）；相机跟随加一点阻尼。这四个加上去，同样的动画资源手感会完全不一样。 做完这一轮，你的“动作僵硬”应该能消掉大半。剩下的僵硬感一般来自三处：脚不贴地（要 IK 或微调 hips 高度曲线）、上半身和下半身同步得像木头（要跑动时给上半身加独立层的轻微摆动）、转身时脚步没有转动过渡（转身动画或速度衰减）。 一个执行建议：不要一次全上。今天只做 A 方案 + idle/walk 两个 clip + Transition 0.2 秒，跑起来看。这一步的视觉提升最明显，也最容易验证骨架对不对。跑通了明天再加 run 和 BlendSpace。 卡在哪一步就贴出来：要么是你现在的角色节点树截图（Skeleton3D 建好之后的），要么是接完动画之后仍然觉得僵硬的那段视频截帧，我按具体现象继续往下改。
