用途
该技能面向游戏开发中的动画实现,目标是把迪士尼的12条动画原则应用到游戏引擎、玩家反馈和互动娱乐中,帮助在 Unity、Unreal 或其他游戏引擎里实现游戏动画、玩家反馈、角色移动等内容。
主要能力(12条原则 → 游戏实现)
- 挤压与拉伸:角色形变、冲击帧。
- 预备动作:起手动画、蓄力指示。
- 舞台调度:相机焦点、环境提示。
- 顺画 / 摆姿:程序化动画与关键帧动画。
- 跟随与重叠:披风、头发、武器拖尾。
- 慢入 / 慢出:动画曲线、攻击与恢复。
- 弧线:投射物路径、跳跃轨迹。
- 次级动作:粒子、镜头震动、音频同步。
- 时间:帧数据、命中定格、响应窗口。
- 夸张:风格化移动、受击反应。
- 扎实造型:一致剪影、远距离可读。
- 吸引力:角色个性、令人满意的反馈。
使用要点(来自资料正文)
- 挤压与拉伸:落地冲击时使角色形变;高速移动时拉伸;用冲击帧定格并挤压以体现力量;形变时保持体积一致。
- 预备动作:攻击起手向玩家预告;起跳前下蹲;蓄力攻击展示积攒过程;敌人起手动作预警即将到来的伤害。
- 舞台调度:相机取景重要动作;环境光照引导注意力;敌人摆位形成可读的战斗场景;UI 不遮挡关键玩法信息。
- 顺画 / 摆姿:程序化动画(布娃娃、物理)属顺画;关键帧攻击连招属摆姿;两者可混合,以关键帧为基底叠加程序化次级运动。
- 跟随与重叠:次级元素(头发、布料、尾巴)在身体停下后继续运动;武器拖尾在挥砍后延续;落地恢复延长到初次冲击之后。
- 慢入 / 慢出:使用动画曲线,角色运动不要用线性;攻击起手快出、恢复慢入;跳跃顶点缓动以控制漂浮感。
- 弧线:跳跃遵循抛物线;挥剑沿曲线路径;投射物自然成弧(除非是即时命中);翻滚应走曲线而非线性平移。
- 次级动作:冲击时镜头震动;命中时粒子迸发;手柄震动与动作同步;音效设计强化视觉时间点。
- 时间:命中定格(冻结帧)强化冲击,通常2-5帧;攻击的起手/生效/恢复帧数据影响手感;对输入的响应低于100ms。
- 夸张:游戏动画需在远距离与高速下可读;姿势夸张到超出写实20-30%;受击反应比物理更戏剧化;风格化服务于清晰度。
- 扎实造型:剪影在所有缩放级别都可读;角色比例在各动画间保持一致;关键帧姿态有力;避免切线混淆形体。
- 吸引力:待机动画体现角色个性;移动本身令人满足,与机制无关;玩家应乐于观看自己的角色移动。
引擎模式(代码示例)
Unity:
// Squash and stretch on landing
IEnumerator LandingSquash() {
transform.localScale = new Vector3(1.2f, 0.8f, 1.2f);
yield return new WaitForSeconds(0.05f);
// Ease back to normal
float t = 0;
while (t < 1) {
t += Time.deltaTime * 8f;
transform.localScale = Vector3.Lerp(
new Vector3(1.2f, 0.8f, 1.2f),
Vector3.one,
EaseOutElastic(t));
yield return null;
}
}
// Hit-stop for impact
IEnumerator HitStop(int frames) {
Time.timeScale = 0f;
for (int i = 0; i < frames; i++)
yield return null;
Time.timeScale = 1f;
}
Unreal:
// Animation curve for easing
UPROPERTY(EditAnywhere)
UCurveFloat* JumpArcCurve;
// Apply curve to movement
float CurveValue = JumpArcCurve->GetFloatValue(NormalizedTime);
时间参考(60fps 帧数据,需按目标帧率调整)
| 动作类型 | 起手 | 生效 | 恢复 |
|---|---|---|---|
| 轻攻击 | 3-6f | 2-4f | 8-12f |
| 重攻击 | 12-20f | 4-8f | 16-24f |
| 跳跃 | 3-4f | -- | 4-6f |
| 闪避 | 2-4f | 8-12f | 6-10f |