Перейти к содержимому


Перед регистрацией ознакомьтесь с темой про сертификат безопасности:
Фотография
- - - - -

доступ к центру лэйера


  • Please log in to reply
7 ответов в этой теме

#1 yuri_klebanov

yuri_klebanov

    Дали нажать на красную кнопку :)

  • Писатели
  • PipPipPip
  • 96 Сообщений:

Отправлено 12 Jan 2005 - 20:51

Проблема такая:
Есть некая маска, у которой анимированы позишен и скэйл. Она, стало быть, бегает по слою как хочет (создатель маски), увеличивается и уменьшается бесстыдным образом итд.
Теперь я хочу привязать к трансформациям этой маски нижний слой-задник, который мы видим "в дырке", не побоюсь этого слова. А именно, чтобы этот самый задник точь в точь повторял бы анимацию самой дырки: пермещался бы и скалировался как она.
Но: привязать напрямую через мат. экспрешен не выходит, так как позишен маски меряется по ее центру, а позишен лэйера по левому углу, перемещение которого есть функция от перемещения его же центра и скалирования самого же лэйера. (Эту функцию в принципе я знаю, но сказать ее на местном языке программирования не могу и не хочу :) )

Вопрос: можно ли каким-то образом сделать так, чтобы position лэйера отсчитывался бы не по углу, а по его центру?

Сообщение отредактировано yuri_klebanov: 12 Jan 2005 - 21:40


#2 marat_k

marat_k

    -

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2237 Сообщений:

Отправлено 13 Jan 2005 - 01:29

позишен маски меряется по ее центру, а позишен лэйера по левому углу

Это ты чего-то напутал.

И зачем анимировал маску. Надо было просто нарисовать маску на слое и анимировать слой.
Теперь: скопируй все ключи с маски на слой, на маске анимацию убей и поправь транслейт слоя.

#3 yuri_klebanov

yuri_klebanov

    Дали нажать на красную кнопку :)

  • Писатели
  • PipPipPip
  • 96 Сообщений:

Отправлено 13 Jan 2005 - 02:17

Нет не напутал.
Рассказываю тогда подробнее:
На верхнем слое - камера приближается к забору и при этом немного пошатывается (оператор идет пешком).
Нужно: на забор повесить круглый плакат, к которому собственно и подходит камера, а затем "входит" в мир, нарисованый на плакате.
Для этого я ставлю на забор эллиптическую маску, трэкером "прибиваю" ее к забору (чтобы аннигилировать шатания камеры) и анимирую ее увеличение по мере приближения.
Под маску, на нижний слой, я кладу собственно сам плакат (к которому мы сначала подходим, а затем в него входим), его scale привязываю через мат. экспрешен к scale маски, и вообще-то хотел бы так же через мат. экспрешен привязать ее позишен, НО НЕ ТУТ-ТО БЫЛО. Поскльку позишен круглой маски задается ее центром, а позишен квадратного задника (плаката) - координатами левого нижнего угла, получается полное рассогласование (ибо все это дело анимировано еще и по scale).

В принципе, я решил ситуацию тем, что скопировал трэкер маски на задник, но вообще-то ОЧЕНЬ ХОТЕЛОСЬ БЫ мочь манипулировать центром задника, а не его углами - чтобы корректно и легко привязывать квадратный лэйер к круглой маске через мат. экспрешен.

#4 marat_k

marat_k

    -

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2237 Сообщений:

Отправлено 13 Jan 2005 - 02:26

Ага, ну теперь понятно.
Делай как и собирался: транслейт привязать при помощи expression, а в сам expression внести поправку в виде + или -, ну и подвинь центр слоя с плакатом совместив его с центром маски.

P.S.
Для таких вещей удобно пользоваться вспомогательгыми null-ами.

Сообщение отредактировано marat_k: 13 Jan 2005 - 02:27


#5 yuri_klebanov

yuri_klebanov

    Дали нажать на красную кнопку :)

  • Писатели
  • PipPipPip
  • 96 Сообщений:

Отправлено 13 Jan 2005 - 03:05

Поправка там должна быть не плюс/минус число, а минус scale(X)*720/2 для x-координаты, и минус scale(Y)*576/2 для y-координаты, ПОСКОЛЬКУ угол движется не в такт с центром, а все больше и больше (из-за скэйла) отходит от центра.

А это я уже не знаю как написать на ихнем языке программирования..


P.S.
Для таких вещей удобно пользоваться вспомогательгыми null-ами.[/B]



Я пробовал для квадратного задника сделать парентом нуль-объект, который через мат. экспрешен привязан к маске. Но проблема не уходит, поскольку в системе координат нуль-объекта квадратный задник ТОЖЕ ОТСЧИТЫВАЕТСЯ ОТ УГЛА, А НЕ ОТ ЦЕНТРА.

#6 marat_k

marat_k

    -

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2237 Сообщений:

Отправлено 13 Jan 2005 - 04:24

Поправка там должна быть не плюс/минус число, а минус scale(X)*720/2 для x-координаты, и минус scale(Y)*576/2 для y-координаты


Либо ты что-то не так делаешь, либо я что-то не понимаю.

Вот композиция http://maratk.newmail.ru/temp/xx.zip (4Kb), надеюсь сразу станет понятно.

Если значение scale для нижнего слоя у тебя не 100% тогда добавь коэффициент = (mask scale/layer scale) - тоже будет величина постоянная.

На всякий случай: такие привязки лучше делать с Pixel Aspect = 1 и для композиции и для слоев, иначе на все X величины для слоев (но не для масок) придется вводить коэффициент 1.07.

Еще лучше: просто привяжи null без всякого выравнивания и на него припапь нужный слой - будет проще и удобнее.

З.Ы.
Скорее всего ты где-то напутал с поправками.

Сообщение отредактировано marat_k: 13 Jan 2005 - 04:27


#7 marat_k

marat_k

    -

  • Активные Участники
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2237 Сообщений:

Отправлено 15 Jan 2005 - 05:50

Кому интересно, проблема была успешно решена. За проектами с null можно обращаться ко мне. За формулами, если Юрий не против, к нему.

#8 yuri_klebanov

yuri_klebanov

    Дали нажать на красную кнопку :)

  • Писатели
  • PipPipPip
  • 96 Сообщений:

Отправлено 16 Jan 2005 - 19:35

А именно, было выяснено, что "Когда у маски увеличиваешь Y, она ползет вниз. Когда у слоя увеличиваешь Y, он ползет вверх. И наоборот" (Марат_К). Именно это досадное недоразумение, а не что-либо другое, есть причина всех неудач.
Решение проблемы: выражение для Y у слоя надо инвертировать.


0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей



Рейтинг@Mail.ru