- Tag
- 游戏开发
[问题记录] 在 Unity 中使用 Animancer + Animation Rigging 出现权重随机重置的问题
本文解释了在Unity中使用Animancer插件结合Animation Rigging进行IK瞄准动画时,切换动画状态会导致Rigging参数重置为场景默认值的“鬼畜”问题。其根本原因是Animancer底层使用Playable API,在运行时切换状态或动态添加动画片段时会修改Playable Graph,进而触发Animator.Rebind(),强制重置相关参数。解决方案核心是防止Playable Graph被修改:一是设置`Animancer.Playable.KeepChildrenConnected = true`,避免状态切换时断开Playable连接;二是提前通过`Animancer.Play(ITransition)`初始化所有动画状态,防止进入新状态时修改Graph。目前尚无其他方法能在修改Playable Graph的同时避免触发Rebind。
Yarn 脚本语法指南 (编写中)
- 2024-05-25
- 353
- 0
- 10
- 79.3℃
本文介绍Yarn脚本语言的基本语法和使用,聚焦于程序向视角。Yarn是专为Yarn Spinner设计的脚本语言,用于编写游戏对话,支持分支、函数和命令等功能。
Yarn脚本以`.yarn`为后缀,由节点(Node)组成。每个节点包括节点头(含标题等元数据)和节点体,两者用`---`分隔,节点间用`===`分隔。节点体中可包含文本行、选项和命令:文本行可直接书写对话,可用冒号指定角色;选项以`->`起始,允许玩家选择并定义后续内容;注释以`///`标记。建议使用Visual Studio Code配合Yarn Spinner插件进行编辑,以获得语法高亮和补全等支持。文章内容参考官方文档,并补充了测试结果。
在 Unity 中安装和使用 Yarn Spinner
本文介绍了Yarn Spinner在Unity中的安装与使用方法。插件支持付费(Itch.io或Unity Asset Store)与免费(GitHub或通过OpenUPM注册表安装)两种方式,后者更灵活但需注意版本兼容性。核心部分解释了Yarn脚本(.yarn文件)、Yarn工程(用于管理脚本与本地化)及关键组件:Dialogue Runner(对话运行器)、Variable Storage(变量存储)和Line Provider(本地化文本提供者)。文章通过快速入门演示了创建脚本与工程、配置Dialogue Runner并运行对话的基本流程,并详细指导了如何定制对话UI,包括创建自定义Line View实现文本输出、通过按键/鼠标/按钮控制对话前进,以及使用Option List View和Option View构建选项系统,最终实现一个可完全自定义的对话界面。