当前位置: 首页 > news >正文

逐步更新动画混合参数(Blend)使其平滑地过渡到目标值

1.具体实现

  • 逐步更新一个动画混合参数(Blend),使其平滑地过渡到目标值,可以实现角色动作的平滑过渡,比如从走路过渡到跑步。
private float currentBleng;private float targetBlend;public float accelerSpeed = 5;//逐步更新d动画混合参数(Blend),使其平滑地过渡到目标值。通过这种方式,可以实现角色动作的平滑过渡,比如从走路过渡到跑步private void UpdateMixBlend(){if (Mathf.Abs(currentBleng - targetBlend) < ConstName.accelerSpeed * Time.deltaTime){currentBleng = targetBlend;}//如果当前混合值大于目标混合值,则以 accelerSpeed * Time.deltaTime 的速率递减 currentBlend。else if (currentBleng>targetBlend){currentBleng -= accelerSpeed * Time.deltaTime;}else{currentBleng += accelerSpeed * Time.deltaTime;}ani.SetFloat("Blend", currentBleng);}

2.关键概念和步骤:

2.1平滑过渡判断

if (Mathf.Abs(currentBlend - targetBlend) < ConstName.accelerSpeed * Time.deltaTime) { currentBlend = targetBlend; }
  • 使用 Mathf.Abs 计算当前混合值 currentBlend 和目标混合值 targetBlend 之间的绝对差距。
  • 如果差距小于一定阈值(ConstName.accelerSpeed * Time.deltaTime),则直接将 currentBlend 设置为 targetBlend,以避免过小的增量带来的抖动。

 2.2递减或递增 currentBlend:

else if (currentBleng>targetBlend){currentBleng -= accelerSpeed * Time.deltaTime;}else{currentBleng += accelerSpeed * Time.deltaTime;}
  •  如果 currentBlend 大于 targetBlend,则以加速速度递减 currentBlend
  • 如果 currentBlend 小于 targetBlend,加速速度递减递增 currentBlend

 2.3更新动画参数

        ani.SetFloat("Blend", currentBleng);
  •  将计算后的 currentBlend 值设置到动画控制器中的 Blend 参数上,使动画参数平滑过渡到目标值
http://www.lryc.cn/news/366720.html

相关文章:

  • 【多模态/CV】图像数据增强数据分析和处理
  • 代码随想录——修建二叉搜素树(Leetcode669)
  • EasyExcel导出多个sheet封装
  • 【Python错误】:AttributeError: ‘generator‘ object has no attribute ‘next‘解决办法
  • 如何配置Feign以实现服务调试
  • pc之间的相互通信详解
  • Mongodb中字段的删除
  • TP8 PHP 动态变量调用 (new $class())->$action($data)
  • 理解JVM内存模型与Java内存模型(JMM)
  • 鸿蒙OS初识
  • 发布自己的 npm 插件包:步骤与最佳实践
  • BubbleML: A Multiphase Multiphysics Dataset and Benchmarks for Machine Learning
  • vscode+latex设置跳转快捷键
  • PHP序列化、反序列化
  • websocket链接携带参数
  • 【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
  • 技术管理之巅—如何从零打造高质效互联网技术团队阅读体验
  • 机器学习与数据挖掘知识点总结(一)
  • 行心科技中禄松波携手,开启智能健康新时代
  • 前端多人项目开发中,如何保证CSS样式不冲突?
  • 【YOLOv10改进[CONV]】使用DualConv二次创新C2f模块实现轻量化 + 含全部代码和详细修改方式 + 手撕结构图 + 全网首发
  • 基于SSM+Jsp的高校信息资源共享平台
  • 软件测试--Linux快速入门
  • module ‘django_cas_ng.views‘ has no attribute ‘login‘
  • CW32F030K8T7单片机在即热式热水器的应用介绍
  • HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)
  • 使用redis构建简单的社交网站
  • 【Java面试】九、微服务篇-SpringCloud(上)
  • Python 树状数组
  • 【QEMU中文手册】2.2 调用方式(持续更新中)