IPB

Здравствуйте, гость ( Вход | Регистрация )

> Камера во Флэш, Как создать плавное увиличение камеры и т. д. в мультах
HaWK
сообщение 11.05.2008 - 18:09
Сообщение #1


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



В одной из сцен моего мульта мне нужно чтобы экран плавно приближался к лицу героя с далёкого расстояния, но также мне нужно чтобы увиличение шло с определённой скоростью и временем. Помогите Пожалуйста!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
2 страниц V   1 2 >  
Открыть новую тему
Ответов (1 - 19)
DJKOT
сообщение 12.05.2008 - 12:27
Сообщение #2


Активный участник
***

Группа: Пользователь
Сообщений: 456
Регистрация: 3.01.2007
Из: г. Астана. Казахстан
Пользователь №: 2309



решение этой проблемы - Motion Tween

при должном упорстве по этой теме можно легко найти уроки, тем более такой вопрос уже не раз задавали))

многое можно почерпнуть здесь
/s/flash-training/animatsija/

а кроме того, в данном случае нам потребуется не камеру к герою приближать, а наоборот.

Сообщение отредактировал DJKOT - 12.05.2008 - 12:30


--------------------
все будет хорошо и еще лучше...
моя фотопленка)))
(последнее обновление 7.04.13)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
HaWK
сообщение 12.05.2008 - 14:38
Сообщение #3


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



Цитата(DJKOT @ 12.05.2008 - 14:27) *
а кроме того, в данном случае нам потребуется не камеру к герою приближать, а наоборот.

Да, но в моей сцене также присутствует бэкграунд (деревья, дорога, Небо)! Как мне увиличить их вместе с героем к камере, одновременно чтобы создавалось ощущение, что камера приближается к герою, а не он к ней????????
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 12.05.2008 - 16:28
Сообщение #4


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4828
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



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

HaWK

Этот эффект достигается с помощью мовшонтвина. Причём приближение будет происходить за счёт увеличения объектов на сцене (в данном случае героя), о чём тебе уже сказал DJKOT. Также возможно использование маски или других методов для сокрытия данного процесса по краям ролика, что уже обсуждалось на форуме.

Цитата
Да, но в моей сцене также присутствует бэкграунд (деревья, дорога, Небо)!

В данном случае ты можешь сделать двумя способами: или пропорционально увеличивать и героя и бэкграунд, или увеличивать только героя (при этом получится интересный эффект, который ты мог встречать, когда увеличивается только герой, для акцентирования внимания на самом герое).


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
HaWK
сообщение 1.06.2008 - 15:30
Сообщение #5


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



Извините что так долго не отвечал, уезжал.
Ну так вот:
С помощью Motion Tween я делал увиличение не раз. В первом кадре герой стоит далеко от камеры,
а в последнем уже приблежённо (как мне надо) а анимация в свою очередь сама плавно приближает
от первого состояния к нужному. Но проблема в том, что сначала анимация идёт быстро, а потом начинает
тормозить. А мне нужно чтобы на протяжении увиличения анимация шла с одной скоростью.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 1.06.2008 - 21:22
Сообщение #6


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4828
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
Но проблема в том, что сначала анимация идёт быстро, а потом начинает
тормозить. А мне нужно чтобы на протяжении увиличения анимация шла с одной скоростью.

HaWK

Для этого тебе нужно сделать мовшон твин таким образом, чтобы добиться одинаковой скорости. Что можно сделать разбив мовшон твин на несколько мовшон твинов, каждый из которых будет сделан таким образом, чтобы добится одинаковой скорости на всех этапах процесса увеличения.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
HaWK
сообщение 2.06.2008 - 19:13
Сообщение #7


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



Цитата(MustLive @ 1.06.2008 - 23:22) *
HaWK

Для этого тебе нужно сделать мовшон твин таким образом, чтобы добиться одинаковой скорости. Что можно сделать разбив мовшон твин на несколько мовшон твинов, каждый из которых будет сделан таким образом, чтобы добится одинаковой скорости на всех этапах процесса увеличения.


Я чё-то не догоняю.........
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
okidoki
сообщение 2.06.2008 - 23:15
Сообщение #8


Новичок
*

Группа: Новичок
Сообщений: 14
Регистрация: 11.04.2006
Пользователь №: 296



добрый вечер, MustLive и остальные форумчане! сам я эту тему не подымал, но и ответа на этот вопрос не встречал. скажите, неужели моушшентвин - единственное решение? разве нет скрипта, который с заданной кратностью приблизит "экран" к заданным координатам?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
HaWK
сообщение 3.06.2008 - 13:50
Сообщение #9


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



Цитата(okidoki @ 3.06.2008 - 01:15) *
добрый вечер, MustLive и остальные форумчане! сам я эту тему не подымал, но и ответа на этот вопрос не встречал. скажите, неужели моушшентвин - единственное решение? разве нет скрипта, который с заданной кратностью приблизит "экран" к заданным координатам?


Да точно, разве нельзя с помощью скрипта??????
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
DJKOT
сообщение 3.06.2008 - 17:22
Сообщение #10


Активный участник
***

Группа: Пользователь
Сообщений: 456
Регистрация: 3.01.2007
Из: г. Астана. Казахстан
Пользователь №: 2309



прошу прощения, но... в мультфильме с помощью скрипта ваять?)))

впрочем, решать вам....

Сообщение отредактировал DJKOT - 3.06.2008 - 17:26


--------------------
все будет хорошо и еще лучше...
моя фотопленка)))
(последнее обновление 7.04.13)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
HaWK
сообщение 3.06.2008 - 17:59
Сообщение #11


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



Я неверю, что больше нет других способов.....
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 19.02.2009 - 00:39
Сообщение #12


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4828
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
Я неверю, что больше нет других способов.....

HaWK

Мовшон твин - это наиболее простое решение. Программная реализация зуминга весьма нетривиальна, поэтому проще сделать вручную мовшон твином.

Цитата
неужели моушшентвин - единственное решение? разве нет скрипта, который с заданной кратностью приблизит "экран" к заданным координатам?

okidoki

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

Сам флеш (до 8 включительно, не скажу за более новые версии) не имеет встроенных программных возможностей для зуминга. Поэтому зуминг нужно реализовать программно. А для этого нужно иметь перечень всех элементов на экране (чтобы у всех были имена и иметь список данных имён), что для программы, в частности игры, м.б. приемлемым, но для мультов м.б. неудобным - т.к. в каждой флешке нужно всем объектам присваивать имена и составлять список объектов. Далее алгоритм производит увеличение или уменьшение всех объектов на экране, тем самым осуществляя зуминг. Так что программная реализация зуминга во флеше достаточно трудоёмкая задача.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
/2D/
сообщение 19.02.2009 - 14:17
Сообщение #13


Участник
**

Группа: Пользователь
Сообщений: 123
Регистрация: 4.11.2006
Пользователь №: 1288



пишем наверх:
Код
this.onEnterFrame=function(){
this._xscale+=10
this._yscale+=10
}

ничего называть не надо)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 19.02.2009 - 22:01
Сообщение #14


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4828
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Цитата
пишем наверх:

/2D/

Это хорошо, что флеш поддерживает масштабирование и для рута. Причём в старых версиях также (в том числе в флеше 6). Только в реальных условиях нужно сделать выход из onEnterFrame, т.к. зуминг требуется ограниченный, иначе он будет бесконечным wink.gif.

Цитата
ничего называть не надо

В случае если нужен зуминг привязанный к координатам (0;0), то тогда данного кода хватит. Но обычно такой зуминг не нужен, а нужен зуминг в произвольной части экрана. Поэтому нужно смещение объектов на экране. Полноценный алгоритм зуминга, о котором я упоминал, может делать и масштабирование и смещение, что позволяет сделать зуминг в произвольной части экрана. При этом он требует указания имен для всех объектов и создания их списка.

Поэтому я реализовал смещение для рута (главной сцены), тем самым сделав зуминг по центру. Для создания зуминга в произвольной части экрана нужно задать соотвествующие настройки в данном алгоритме.

Для данного примера разместите нужные объекты на сцене и сделайте длительность ролика, к примеру, 30 кадров. В первом кадре укажите следующий код:
Код
this.onEnterFrame=function(){
this._x -= 10;
this._y -= 10;
this._xscale += 5;
this._yscale += 5;
}

А в 15 кадре следующий код:
Код
this.onEnterFrame=function(){
this._x += 10;
this._y += 10;
this._xscale -= 5;
this._yscale -= 5;
}

Это приведёт к тому, что камера будет циклично наезжать на объект и отъезжать от него.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kesh
сообщение 22.05.2011 - 17:01
Сообщение #15


Новичок
*

Группа: Новичок
Сообщений: 4
Регистрация: 22.05.2011
Пользователь №: 10508



а как сделать что бы камера не наезжала на объект, а просто делала больше sad.gif
у меня весь процесс стоит из-за этого
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
DJKOT
сообщение 23.05.2011 - 10:24
Сообщение #16


Активный участник
***

Группа: Пользователь
Сообщений: 456
Регистрация: 3.01.2007
Из: г. Астана. Казахстан
Пользователь №: 2309



Motion Tween? Хотя не совсем понятен вопрос...


--------------------
все будет хорошо и еще лучше...
моя фотопленка)))
(последнее обновление 7.04.13)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kesh
сообщение 23.05.2011 - 18:09
Сообщение #17


Новичок
*

Группа: Новичок
Сообщений: 4
Регистрация: 22.05.2011
Пользователь №: 10508



Цитата(MustLive @ 19.02.2009 - 22:01) *
/2D/

Это хорошо, что флеш поддерживает масштабирование и для рута. Причём в старых версиях также (в том числе в флеше 6). Только в реальных условиях нужно сделать выход из onEnterFrame, т.к. зуминг требуется ограниченный, иначе он будет бесконечным wink.gif.
В случае если нужен зуминг привязанный к координатам (0;0), то тогда данного кода хватит. Но обычно такой зуминг не нужен, а нужен зуминг в произвольной части экрана. Поэтому нужно смещение объектов на экране. Полноценный алгоритм зуминга, о котором я упоминал, может делать и масштабирование и смещение, что позволяет сделать зуминг в произвольной части экрана. При этом он требует указания имен для всех объектов и создания их списка.

Поэтому я реализовал смещение для рута (главной сцены), тем самым сделав зуминг по центру. Для создания зуминга в произвольной части экрана нужно задать соотвествующие настройки в данном алгоритме.

Для данного примера разместите нужные объекты на сцене и сделайте длительность ролика, к примеру, 30 кадров. В первом кадре укажите следующий код:
Код
this.onEnterFrame=function(){
this._x -= 10;
this._y -= 10;
this._xscale += 5;
this._yscale += 5;
}

А в 15 кадре следующий код:
Код
this.onEnterFrame=function(){
this._x += 10;
this._y += 10;
this._xscale -= 5;
this._yscale -= 5;
}

Это приведёт к тому, что камера будет циклично наезжать на объект и отъезжать от него.



нет без мовшен твин
сразу делать зум на предмет
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
DJKOT
сообщение 23.05.2011 - 19:01
Сообщение #18


Активный участник
***

Группа: Пользователь
Сообщений: 456
Регистрация: 3.01.2007
Из: г. Астана. Казахстан
Пользователь №: 2309



а, так вот оно что... ну это по скриптовой части дельце. В принципе, если чуть-чуть поколдовать, то можно и вышеуказанный скриптик подогнать под эту задачу. Но в этих делах я, увы, не силен...


--------------------
все будет хорошо и еще лучше...
моя фотопленка)))
(последнее обновление 7.04.13)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
MustLive
сообщение 25.05.2011 - 00:20
Сообщение #19


Ветеран конференции
*****

Группа: Flash Zone Team
Сообщений: 4828
Регистрация: 10.03.2005
Из: Киев
Пользователь №: 5



Так и есть, как сказал DJKOT, мой вышеприведённый скрипт можно переделать в нужный для kesh код, чтобы был мгновенный зум.

Цитата
сразу делать зум на предмет

kesh

В моём коде зум происходит постепенно, а тебе нужно сделать его мгновенно. Для этого не нужно устанавливать функцию на onEnterFrame, а нужно сразу задать нужные значения свойств _x, _y, _xscale и _yscale. Параметры _x и _y задай такими, чтобы отцентрировать камеру. А параметры _xscale и _yscale задай такими, чтобы зазумился объект до нужного масштаба.


--------------------
Best wishes & regards,
MustLive
Администратор сайта
http://mlfun.org.ua
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kesh
сообщение 25.05.2011 - 11:14
Сообщение #20


Новичок
*

Группа: Новичок
Сообщений: 4
Регистрация: 22.05.2011
Пользователь №: 10508



Цитата(MustLive @ 25.05.2011 - 00:20) *
Так и есть, как сказал DJKOT, мой вышеприведённый скрипт можно переделать в нужный для kesh код, чтобы был мгновенный зум.
kesh

В моём коде зум происходит постепенно, а тебе нужно сделать его мгновенно. Для этого не нужно устанавливать функцию на onEnterFrame, а нужно сразу задать нужные значения свойств _x, _y, _xscale и _yscale. Параметры _x и _y задай такими, чтобы отцентрировать камеру. А параметры _xscale и _yscale задай такими, чтобы зазумился объект до нужного масштаба.



я понял но не могу задать правильный алгоритм
посоветуй пожалуйста если экран 550х450
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V   1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 13.05.2013 - 18:19