reckfellENGINE

Анимация визуальной части через Tween

Короткое сжатие при приземлении: Tween меняет Visual, не физическое тело и не CollisionShape3D.

На этой странице

Отделите изображение от физики

В иерархии игрока меш расположен внутри Visual, а основная CollisionShape3D — рядом с ним, напрямую под телом. Поэтому масштаб Visual меняет изображение, не размер капсулы.

Прикрепите Scripts/LandingPulse.cs к Visual типа Entity3D:

C#
using Reckfell;

public partial class LandingPulse : Entity3D
{
    private Tween? _tween;

    public void Pulse()
    {
        ResetVisual();
        _tween = CreateTween();
        _tween.SetTrans(Tween.TransitionType.Quad).SetEase(Tween.EaseType.Out);
        _tween.TweenProperty(this, "scale", new Vector3(1.15f, 0.8f, 1.15f), 0.08);
        _tween.TweenProperty(this, "scale", Vector3.One, 0.12);
    }

    public void ResetVisual()
    {
        if (_tween != null && _tween.IsValid())
            _tween.Kill();
        _tween = null;
        Scale = Vector3.One;
    }

    public override void _ExitTree() => ResetVisual();
}

Вызов

SquashPlayer получает ссылку на этот класс в _Ready() и вызывает Pulse() при приземлении после падения. CreateTween() создаёт Tween, связанный с этой Entity. Первый этап за 0.08 секунды делает изображение шире и ниже; второй за 0.12 секунды возвращает масштаб 1.

Строка "scale" — путь к свойству движка для TweenProperty(), не имя локальной переменной и не перевод отображаемой подписи. Передаются Vector3 и длительности в секундах.

Повторный вызов и удаление

Перед новой анимацией ResetVisual() останавливает прежний Tween через Kill() и возвращает масштаб 1. Иначе несколько анимаций могут одновременно менять одну величину. Прерванный Tween повторно не запускается: каждый Pulse() создаёт новый.

Сброс также вызывается при перезапуске персонажа и выходе Visual из дерева. Kill() сам по себе не возвращает свойство к исходному значению — это явно делает Scale = Vector3.One.

Ожидаемый результат: при приземлении кратко меняются пропорции изображения, движение и форма столкновения остаются прежними. Если меняется размер физики, проверьте, что скрипт прикреплён к дочернему Visual, а форма не стала его ребёнком. Для заранее записанных клипов и костной анимации используется другой набор инструментов; этот пример показывает процедурное изменение свойства.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.