Files
aibis-dream/Assets/Scripts/MiniGame/HuoShan/Language/README_语言系统使用说明.md
T

6.6 KiB
Raw Blame History

表达系统 Yarn 使用说明

系统概述

表达系统(Expression System)是一个粒子交互小游戏,玩家需要通过鼠标操作让目标字符连接在一起,同时避免与非目标字符连接。非目标字符会显示焦虑情绪的短句,目标字符最终会组成正面的表达句子。

Yarn 命令接口

1. 打开表达视图 open_expression

打开表达系统的视图(显示美术背景),但不启动粒子系统。

语法:

<<open_expression>>

说明:

  • 这个命令只负责显示表达系统的视觉背景
  • 不会启动粒子游戏,需要配合 start_expression 使用
  • 通常在切换相机后调用

示例:

<<open_expression>>

2. 启动粒子系统 start_expression

启动表达粒子系统,配置游戏参数并开始游戏。

语法:

<<start_expression "焦虑短句1|焦虑短句2|焦虑短句3" "目标句子" "完成对话节点">>

参数说明:

  • 焦虑短句(必填):多个短句用 | 分隔,这些短句会显示在非目标字符上,表示焦虑情绪
  • 目标句子(必填):玩家需要完成的目标句子,系统会根据字数设置目标字符数量
  • 完成对话节点(可选):游戏完成时触发的对话节点名称,不填则不触发

示例:

// 基础用法
<<start_expression "我好怕|怎么办|不行|好难" "我能做到" "ExpressionCompleted">>

// 更多焦虑短句
<<start_expression "我做不到|太难了|好可怕|怎么办|不想面对" "我会勇敢面对" "Stage1Complete">>

// 不触发对话节点
<<start_expression "担心|焦虑|不安" "保持冷静" "">>

3. 关闭表达系统 close_expression

关闭表达系统并停止所有动画。

语法:

<<close_expression>>

示例:

<<close_expression>>

4. 重置表达系统 reset_expression

重置表达系统,使用当前的配置重新开始游戏。

语法:

<<reset_expression>>
<<reset_expression 是否播放入场动画>>

参数说明:

  • 是否播放入场动画(可选,默认 true):设置为 false 可跳过入场动画

示例:

// 重置并播放入场动画
<<reset_expression>>

// 重置但不播放入场动画
<<reset_expression false>>

完整使用流程示例

title: ExpressionGameExample
---

旁白:让我们开始表达粒子挑战吧!

// 步骤1:打开表达视图
<<open_expression>>

旁白:现在,尝试用正面的想法代替焦虑的念头。

// 步骤2:启动粒子系统
<<start_expression "我好怕|怎么办|不行" "我能做到" "ExpressionSuccess">>

// 等待玩家完成游戏...
// 当玩家完成目标后,会自动跳转到 ExpressionSuccess 节点

===

title: ExpressionSuccess
---

旁白:太棒了!你成功完成了挑战!

// 关闭表达系统
<<close_expression>>

// 继续剧情...

===

进阶用法示例

多阶段挑战

title: Stage1
---

旁白:第一阶段:克服恐惧

// 打开视图
<<open_expression>>

旁白:深呼吸,让我们开始...

// 启动第一阶段
<<start_expression "好可怕|我害怕|不敢" "勇敢面对" "Stage2">>

===

title: Stage2
---

旁白:第二阶段:建立信心

// 切换新配置(视图已打开时复用 start_expression
<<start_expression "做不到|太难了|放弃" "我能做到" "Stage3">>

===

title: Stage3
---

旁白:最终阶段:突破自我

// 再次切换配置
<<start_expression "不可能|不行|失败" "成功突破" "GameComplete">>

===

title: GameComplete
---

旁白:恭喜你完成了所有挑战!

<<close_expression>>

===

配置建议

焦虑短句设计

  1. 字数建议:2-4 个字最佳(如"我好怕"、"怎么办"
  2. 数量建议:3-8 个短句,太少会重复,太多会混乱
  3. 情绪表达:应该符合当前剧情的情绪基调

示例:

  • 恐惧主题:"好可怕|我害怕|不敢|好恐怖|太吓人"
  • 焦虑主题:"担心|不安|焦虑|紧张|烦躁"
  • 自我怀疑:"做不到|不行|我不行|太难了|失败"

目标句子设计

  1. 字数建议:4-8 个字最佳(太短太简单,太长太难)
  2. 正面引导:通常是与焦虑短句相反的正面表达
  3. 简洁有力:容易理解且有力量感

示例:

  • "我能做到" - 4字,简洁有力
  • "勇敢面对" - 4字,正面积极
  • "保持冷静" - 4字,情绪引导
  • "相信自己" - 4字,自我肯定

注意事项

  1. 系统初始化:确保场景中有 ExpressionManager 组件
  2. 相机切换:开启系统前建议切换到 Expression 相机
  3. 完成触发:只有在目标全部完成且聚焦动画播放完毕后才会触发对话节点
  4. 焦虑短句分隔符:必须使用英文竖线 | 分隔,不要使用中文竖线
  5. 对话节点命名:对话节点名称区分大小写,请确保拼写正确

技术实现说明

系统架构

ExpressionManager (顶层管理器)
    ├── LanguageParticleManager (粒子系统核心)
    │   ├── CandidateParticle (候选粒子 - 可交互)
    │   ├── FloatingTextParticle (浮动粒子 - 背景)
    │   └── ConnectionRenderer (连接线渲染)
    └── LanguageYarnCommand (Yarn 命令接口)

配置传递流程

  1. Yarn 调用 open_expression 命令 → 打开视图(显示美术背景)
  2. Yarn 调用 start_expression 命令 → 启动粒子系统
  3. LanguageYarnCommand 解析焦虑短句和目标句子参数
  4. ExpressionManager 接收配置
  5. LanguageParticleManager 初始化粒子系统
  6. TextParticle 使用配置生成字符并播放入场动画

常见问题

Q: 为什么要分开 open_expressionstart_expression
A: 这样可以让设计师更灵活地控制时机。比如先打开视图和切换相机,然后在对话中解释游戏规则,最后再启动粒子系统。

Q: 可以只调用 start_expression 而不调用 open_expression 吗?
A: 理论上可以,但建议先调用 open_expression 以确保视图已经显示。

Q: 焦虑短句没有显示?
A: 检查是否使用了英文竖线 | 分隔,确保没有多余的空格。

Q: 完成后没有触发对话节点?
A: 检查对话节点名称是否正确,确保该节点在 Yarn 文件中存在。

Q: 游戏太难/太简单?
A: 可以在 LanguageParticleManager 的 Inspector 中调整参数,如连接距离、粒子数量等。


联系与支持

如有问题或建议,请联系技术团队。