# TweenValue 节点（数值补间）

## Tween (补间)

**Tween Value**（数值补间）节点允许你在一段 **Duration**（持续时间）内，将 **Target**（目标字段，必须是数值或枚举类型的 `IField`）从起始值平滑过渡到结束值。

不同的 **Curve**（曲线预设）决定了使用的插值算法。在适用情况下（如浮点数），它会使用非整数进行平滑变化。

[![20260205201941_1.jpg](https://docs.vrcd.org.cn/uploads/images/gallery/2026-02/scaled-1680-/KPqpWIV211HWlJL3-20260205201941-1.jpg)](https://docs.vrcd.org.cn/uploads/images/gallery/2026-02/KPqpWIV211HWlJL3-20260205201941-1.jpg)

### 输入 (Inputs)

<table class="wikitable" id="bkmrk-%E5%90%8D%E7%A7%B0-%E7%B1%BB%E5%9E%8B-%E6%8F%8F%E8%BF%B0-%2A-asynccall"><thead><tr><th>名称</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>\*</td><td>AsyncCall  
(异步调用)</td><td>告诉节点开始对 Target（目标）进行补间操作。</td></tr><tr><td>To  
（终点值）</td><td>Pseudo-generic  
(伪泛型)</td><td>在持续时间内试图达到的数值。  
例如：`Float`, `Int`, `Key Enum` 等。</td></tr><tr><td>From  
（起点值）</td><td>Pseudo-generic  
(伪泛型)</td><td>在持续时间内开始变化的起始数值。  
例如：`Float`, `Int`, `Key Enum` 等。</td></tr><tr><td>Duration  
（持续时间）</td><td>Float</td><td>数值补间过程持续的秒数。</td></tr><tr><td>Curve  
（曲线）</td><td>CurvePreset  
(曲线预设)</td><td>补间过程中使用的插值类型（例如线性、平滑进出等）。</td></tr><tr><td>ProportionalDuration  
（比例时长）</td><td>Bool</td><td>如果为 True，会将补间的持续时间乘以两个端点（From 和 To）之间的距离，从而使整个补间过程的平均速度等于 1。</td></tr><tr><td>Target  
（目标）</td><td>IField&lt;T&gt;  
(数值或枚举字段)</td><td>此节点将要驱动（写入）的目标数值字段。</td></tr></tbody></table>

### 输出 (Outputs)

<table class="wikitable" id="bkmrk-%E5%90%8D%E7%A7%B0-%E7%B1%BB%E5%9E%8B-%E6%8F%8F%E8%BF%B0-onstarted%EF%BC%88%E5%BC%80"><thead><tr><th>名称</th><th>类型</th><th>描述</th></tr></thead><tbody><tr><td>OnStarted  
（开始时）</td><td>SyncResumption  
(同步恢复)</td><td>当节点开始对 Target 进行补间时，发送一个异步脉冲（Async Impulse）。这意味着它会立即继续执行后续的异步代码，而不必等待补间完成。</td></tr><tr><td>OnDone  
（完成时）</td><td>Continuation  
(延续)</td><td>当节点**完成**对 Target 的补间后发送一个脉冲。</td></tr></tbody></table>

### 示例

这是一个动画组件，说白了像前面展示的奇术打击就是依靠它实现的。