# Unity 基于 Playable 程序动画 的角色控制器 **Repository Path**: stevesimon999/unity---program-animation-character-controller ## Basic Information - **Project Name**: Unity 基于 Playable 程序动画 的角色控制器 - **Description**: 两年前邯郸学步时的作品,学习角色控制器和动画系统的时候,觉得动画控制器里面的连接错综复杂,就想着完全使用程序管理动画系统,然后找到了Playable API,用其定制了此角色控制器。 因为工程涉及诸多版权素材,因此不便全部展示,只上传脚本部分,如有交流和学习的需求请B站私信我。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-10-06 - **Last Updated**: 2024-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Unity 基于 Playable 程序动画 的角色控制器 #### 介绍  两年前邯郸学步时的作品,学习角色控制器和动画系统的时候,觉得动画控制器里面的连接错综复杂,就想着完全使用程序管理动画系统,然后找到了Playable API,用其定制了此角色控制器。  因为工程涉及诸多版权素材,因此不便全部展示,只上传脚本部分,如有交流和学习的需求请B站私信我。  B站视频展示 : [链接](https://www.bilibili.com/video/BV1Sm4y137JD/ "演示视频") #### 软件架构 1. Editor : 输入系统组成部分。 2. Resources : 模型的 avata masak 文件、GPU计算混合树参数的实现代码、动画系统与事件系统的配置文件、输入系统的存储文件。 3. Scripts :   1) AnimationSystem 动画系统框架。 2) Common 通用的框架,里面放了有限状态机FSM和复数数学库。 3) EventSystem 事件系统,可通过配置文件管理。 4) InputSystem 输入系统,可通过Json文件储存和修改。 5) MotionSystem 角色控制器 :   1) PlayerInput 输入系统的适配器。 2) PlayerParam 公用的参数。 3) PlayerAI 控制不同条件下动画转换的状态机。 4) PlayerMotor 控制角色运动的控制器。 5) PlayerAnim 导入动画和使用动画系统播放动画。 6) PlayerConfig 序列化配置控制器参数。 #### 其他插件 1. DynamicBone 动态骨骼插件,用来实现衣服、头发的晃动效果。 2. graph-visualizer 用来实现Playable可视化,参考第三张图片。 3. MagicaCloth 和DynamicBone类似,用来实现模型晃动效果,个人觉得效果比较好,演示模型就是用这个做的。 4. UnityURPToonLitShaderExample 一个开源的二次元风格着色器 #### 图片演示 ![](Image/run.gif) ![](Image/idle.gif) ![](Image/PlayableGraph.jpg) 搭建的迷之海岛 ![](Image/1.JPG)