Tween Position
Tipo: Procesador / Rama (True / False)
Categoría: TWEEN
Interpola worldPosition del objeto desde From hasta To usando los parámetros del tween identificado por ID. Bifurca a True cuando completa.
Propiedades
| Propiedad | Tipo | Por defecto | Descripción |
|---|---|---|---|
| Tween ID | String | "tween" |
Debe coincidir con el ID de Play Tween |
| From | Vector | [0,0,0] |
Posición de inicio |
| To | Vector | [0,0,1] |
Posición final |
Sockets
| Socket | Dirección | Tipo |
|---|---|---|
| In | Entrada | Exec |
| True | Salida | Exec (tween completado) |
| False | Salida | Exec (tween en curso) |
Código generado (simplificado)
_tw = Range.logic.globalDict.get('_rnc_tw_door', None)
if _tw:
_tw_t = min(1.0, (Range.logic.getClockTime() - _tw['start']) / _tw['dur'])
_tw_e = ease_function(_tw_t, _tw['ease']) # aplica easing
_tw_pos = [_from[i] + (_to[i] - _from[i]) * _tw_e for i in range(3)]
self.own.worldPosition = _tw_pos
if _tw_t >= 1.0:
#TRUE_PATH#
else:
#FALSE_PATH#
Uso típico
Puerta que se eleva
# Al entrar en estado "opening":
[On State Enter: FSM ID="door", State="opening"]
└── On Enter ──► [Play Tween: ID="door", Duration=1.5, Ease=ease_out]
# Cada frame:
[On Update] → [On State: FSM ID="door", State="opening"]
└── True ──► [Tween Position: ID="door", From=[0,0,0], To=[0,0,3]]
└── True ──► [Set State: State="open"]
Teleportación suave
[On Message: Subject="teleport_to_B"]
→ [Play Tween: ID="tp", Duration=0.5, Ease=ease_in_out]
[On Update] → [Tween Position: ID="tp",
From={Object Position: Object="point_A"}
To={Object Position: Object="point_B"}]
Notas
- Si
globalDict['_rnc_tw_<id>']no existe, el nodo cae aFalsesin error. - Los vectores
FromyTopueden ser coordenadas fijas o conectarse desde sockets de datos.