Движение вдоль кривой

From Synfig Studio :: Documentation
Jump to: navigation, search
Languages Language: 

English • čeština • Deutsch • español • français • русский



Введение

Если вы используете версию Synfig 0.61.08 или ниже, то читайте старую редакцию статьи, а эта статья актуальна для версии 0.61.09 и старше.

Итак статья о том как создать объект следующий вдоль произвольной кривой и поворачивающий при этом в сторону направления кривой.

Содержание

Нам предстоит:

Создаём новый файл

Файл > Создать

Создаём слои

Выберите инструмент "Кривые".

Spline-tool-0.63.06.png

Поставьте флажок только напротив параметра "Создать кривую контура", нарисуйте кривую вдоль которой будет двигаться наша стрелка и нажмите кнопку "Создать кривую" в нижней части Панели Параметров Инструмента.

Теперь, не переключаясь с инструмента "Кривые" выберите флажки "Создать кривую контура" и "Создать кривую области" на Панели Параметров Инструмента,

нарисуйте стрелку или что то подобное, указывающую на право.
Spline-Tool-Options 0.63.06.png

Переключитесь на инструмент трансформации.

Кликните на контур "стрелки" и нажмите Ctrl+A чтобы выделить все контрольные точки контура, зелёная точка "позиции" при этом останется не выделенной, перетащите выделенные контрольные точки так чтобы зелёная точка "позиции" оказалась в центре "стрелки", после чего добавьте "Слой вращения" над слоями контура и заливки "стрелки" и сгруппируйте эти три слоя в один объединяющий слой.

Теперь у нас есть два основных слоя, один слой с кривой контура и второй групповой со "стрелкой" и слоем вращения.

Заставляем стрелку двигаться и вращаться

Выделите объединяющий слой кликнув на него в панели слоёв.

Выделите его зелёную точку "позиции" кликнув по ней в окне холста, также выделите слой Вращения удерживая Ctrl и кликнув по нему на панели слоёв, в добавок ко всему этому выделите синюю точку "контроля вращения" удерживая Ctrl кликнув по ней в окне холста.


Ну вот, у нас должно быть выделено два слоя и по одной контрольной точке из каждого слоя, теперь добавьте к этим выделенным слоям ещё и слой с кривой (он должен быть последним на панели слоёв) кликнув на него удерживая Ctrl.

Кликаем правой кнопкой на пунктирной линии которая показывает форму кривой, не на какую нибудь точку на кривой, а именно на линию между точками.

В контекстном меню которое появится выберите "Привязать к кривой".

Spline-Link-to-0.63.06.png

Сгруппированный слой со "стрелкой" должен переместиться так что его зелёная точка "позиции" окажется на кривой и она должна повернутся указывая в сторону направления кривой в этой точке.

Выделите только сгруппированный слой и потаскайте зелёную точку "позиции" туда-сюда. Вы увидите что зелёная контрольная точка "стрелки" теперь двигается только вдоль кривой, перемещение также вызывает вращение "стрелки" как и ожидалось.

Теперь мы можем анимировать стрелку, включите Режим редактирования анимации нажав на иконку в нижнем правом углу окна холста.

  • На нулевом кадре 0f, поместите зелёную контрольную точку изолированного слоя "стрелки" на одном конце кривой.
  • На пятой секунде 5s, перетащите эту точку в другой конец.

Посмотрите что получилось нажав "<Меню холста> → <Файл> → Предпросмотр".

Результат

Вот анимация которая получилась в результате: Arrow-follows-bline.sifz‎

Контроль ускорения

Если вы выделите слой группы и посмотрите на Панель параметров то заметите что параметр Исходной точки конвертирован в тип "Spline Vertex". Это происходит автоматически когда вы используете "привязывание к кривой". Вы можете также отключит дополнительный параметр "однородность" после чего скорость стрелки перестанет быть постоянной и начнёт зависить от количества сегментов на кривой, проходя между каждым сегментом за одно и тоже время она будет "пролетать" на длинных прямых участках кривой на большой скорости и "еле ползти" на изломанных участках содержащих большее количество вершин, так как теперь проходит от вершины к вершине за один и тот же промежуток времени.

Видео по теме контроля ускорения здесь.


Languages Language: 

English • čeština • Deutsch • español • français • русский