跳转至

Crystaline Helper

Myn:

宇宙是如何诞生的?是 tt 触发了那个奇点。

万物是如何运动的?是 eevee 框动着世界变化。

参考

Trigger Trigger

虽然标题是 Crystaline Helper, 但讲的是 Trigger Trigger(什

顾名思义, Trigger Trigger(简称 tt) 就是触发 Trigger 的 Trigger

你可以用它来做这些事情

  • 当你要在一个地方叠多层 Trigger 时, tt 能够让你更方便地管理这些 Trigger, 所以你经常能看到有的图只放了一个 tt, 然后连了 很多其他 Trigger 在房间外头(像蜘蛛网一样)
  • 你可以用 tt 组成一条 tt 链, 搭配 delay 能实现各种效果
  • 因为 tt 可以在玩家做出某种行为时触发, 所以可以做神经 gp, 比如每次跳跃在房间里生成一个新浪
  • ...

使用

tt_panel

当你满足 ActivationType 时, tt 会在 Delay 秒后按顺序触发节点位置的 Trigger

ActivationType 在选择某些特殊值时会多出几项, 比如当你选择 Activation.CoreMod, 则属性栏会多出 CoreMod 这一项(你需要在保存后叉掉面板再打开, 因为 Loenn 不支持实时更新)

然后讲剩下相对不是很重要的属性

  • Activate On Transition: 相当于把当前 tt 撑满房间, 进入房间时就已经在 tt 里了
  • Invert Condition: 相当于触发条件变成了 not ActivationType, 原来触发的不触发了, 原来不触发的触发了
  • Match Position: 相当于把节点处的 Trigger 移到 tt 位置并对齐大小, 就好像这里原来就放着个 Trigger 一样, 因为有些 Trigger 需要用到 Player 的位置, 比如 BloomFadeTrigger, 所以还是得移回到原位
  • One Use: 字面意思, 触发一次就失效
  • Only On Enter: 在进入 tt 瞬间判断 ActivationType, 而不是呆在 tt 里时判断
  • Randomize: 随机触发一个节点处的 Trigger, 而不是按顺序触发节点处的 Trigger

原理

Trigger Trigger 会在你进入房间时将节点所在位置的一个 Trigger 纳入它的管理范围, 同时关闭其碰撞, 如果节点盖到两个 Trigger, 先放的先被处理, 如果节点没盖到 Trigger, 则遍历房间找个最近的 Trigger(距离 Trigger 左上角)

同时 Trigger Trigger 并不会记录哪个 Trigger 在管理范围内, 所以哪怕你弄两个节点放一个 Trigger 上 或者一个在外面, 一个离得近, 也会触发两次, 所以保险起见都是一个 Trigger 一个节点

Trigger

所谓 Trigger, 就是游戏中的一个隐藏矩形区域, 当玩家进入这个区域时会触发一些事件, 比如播放钢管落地音效, 触发一段对话, 或者让你的游戏暂停 10 秒, 这被称为 OnEnter(这里的 On 相当于 when)), 当玩家呆在这块区域时, Trigger 也会做些事, 比如根据玩家在水平从左到右方向位置比例来设置光效强度, 声音响度等, 这被称为 OnStay, 当玩家离开这个区域时, Trigger 做的事主要是些清理工作, 大家平时并不会太注意到, 比如你 只有在 Trigger 范围内才能跳 这个 gp, 就需要玩家在离开 Trigger 后禁用跳跃, 这被称为 OnExit 或者 OnLeave

所以在你使用 tt 时要注意节点处 Trigger 主要的触发方式是什么, 是 OnEnter, OnStay, 还是 OnLeave? 以防出现 tt 失效的情况, 即使如此, 大部分时候你完全可以把 tt 想象成节点处的 trigger, 因为 tt 就是这么符合直觉!

当你的 ActivationType 为下面三个时, Activate On Transition 会自动打开(一开始科研的时候被坑了, 我还纳闷 Bloom Trigger 怎么生效不了, 结果是生效了但是由于房间太大看着不明显, 虽然当时如果看 Mapping Utils 肯定一眼看出来了())

  • ActivationTypes.OnHoldableEnter
  • ActivationTypes.OnInteraction
  • ActivationTypes.OnEntityEnter