Wiki
585 words
3 minutes
BlendSpace
Updated 2025-05-25
创建
在绿框处设置blendspace的数值范围,从右下角将动画资产拖入中间的窗口中,设置动画的融合切换
Blend Space 是什么
Blend Space 用来根据输入参数,在多段动画之间连续混合。
最常见的用途是:
- 待机到走路到奔跑
- 八方向移动
- 根据速度和方向切换移动姿态
相比“状态机里一段一段切”,Blend Space 更适合处理连续变化的参数。
1D 和 2D 的区别
1D Blend Space
只有一个轴,适合:
- 速度从 0 到 600
- 瞄准角度单轴变化
最常见的是“Idle -> Walk -> Run”。
2D Blend Space
有两个轴,适合:
- 速度 + 方向
- 前后左右八方向移动
- 速度 + 倾斜角度
角色移动动画通常会优先用 2D。
参数轴怎么设计
设计轴时最重要的不是“参数越多越好”,而是让轴和动画语义一致。
常见设计:
- X 轴:方向,范围
-180 ~ 180或-1 ~ 1 - Y 轴:速度,范围
0 ~ MaxWalkSpeed
要点:
- 参数范围要和运行时输入一致
- 不要让同一轴同时混两种语义
- 速度轴通常要留出
0作为待机点
采样点怎么摆
放动画采样点时,核心是让过渡路径自然。
常见摆法:
- 中心放
Idle - 上下左右或斜向摆放移动动画
- 高速和低速分层放置
如果采样点摆得不均匀,就容易出现:
- 某些方向突然抽搐
- 斜向动作不自然
- 参数变化时角色脚步发飘
和状态机的配合
最常见的组合方式是:
- 状态机控制“处于哪一类动画状态”
- Blend Space 负责该状态内部的连续混合
例如:
- Locomotion 状态里用 Blend Space 处理移动
- Attack / Hit / Death 用状态机或 Montage 切走
也就是说,Blend Space 不是替代状态机,而是补充状态机。
实践经验
- 先把移动参数算准,再调 Blend Space,否则永远像在蒙
- 方向参数常来自速度向量和朝向的夹角
- 如果角色频繁小幅抖动,优先检查速度和方向输入是否稳定
- 根运动项目里,Blend Space 的动画资源本身也要保持一致的运动语义