Render.ru

Игра в Maya

#1
Как сделать чтобы при включеной анимации в Maya нажать какую нибуть кнопочку и скрипт выполнил какое нибуть действие?

И еще, как написать скрипт, который бы срабатывал в момент пересечения двух объектов?

Я знаю в этой области здесь умельцев много, так что спасибо заранее.
 

Grape

Активный участник
Рейтинг
5
#3
:) "нажать какую нибуть кнопочку и скрипт выполнил какое нибуть действие?"

пишешь в експрешн едиторе "выполнить что-нибудь" и программа сама подберет что выполнять и выдаст тебе какой-нить интересный спецэффект.

А насчет пересечения двух объектов - проще просто включить скрипт в кадре когда они пересекаются. У каждого скрипта в ноде есть параметр включения-выключения и т.д.
 
#4
Короче в сцене ружье. Хочу нажать кнопочку на клавиатуре и чтобы оно выстрелило.

Умников попрошу воздержаться!!!
 

Grape

Активный участник
Рейтинг
5
#5
блин, ну ты очевидно что-то путаешь... Это ведь не Quake. Ты можешь написать скрипт, и навязать его на хоткей. Если ты хочешь чтобы пушка стреляла - это ведь происходит во времени - то нужен expression. А expression на хоткей не навяжешь - его действие контролируется параметра в ноде экспрешна - то бишь можешь сказать что или он работает (Behavior - Normal) или нет (has No Effect).

А играть в майе - это может быть и можно, только вот я например такого не встречал :)

Удачи.
 
#6
Все не совсем так... Анимировать анимацию в майа можно. Для этого, например, нужно создать анимационный клип и по наступлению контрольного события мел-командой переместить его в нужное место на таймлайне трах едитора. В 6 майа клипы можно создавать и на экспрешены. Но сомневаюсь, что вопрошающий обладает достаточными знаниями для этого.
 
#7
И еще можно воспользоваться мая броузером и написать свою веб страницу, чтобы все это дело в майке интерактивно выполнялось... а смысл?
 
#8
Ну, смысл в принципе есть... Задание поведения персонажа, например, при прохождении лабиринта... То есть мы задаем алгоритм поведения (реакции на некоторые события но не зная, когда эти события наступят во времени), и после этого персонаж сможет выйти из любого лабиринта...
 
#9
>Короче в сцене ружье. Хочу нажать кнопочку на клавиатуре и чтобы оно выстрелило.
Что мешает нажать на play ?
 
#10
Kiryha, изначальный вопрос задан, конечно, путанно, но, тем не менее из него можно вычленить определенное разумное зерно... Собственно, это реализация некоторого вида интерактивности майской сцены... Для разработчиков игр есть специальные библиотеки (не помню точно, как называются, но при их установке появляется менюшка "мауа реалтайм"). эти библиотеки позволяют портировать майскую сцену в игровой движок. Внешне это выглядит как будто майская сцена превращается в игру. (Квак, но только в майском окне)...Стоимость такой библиотеки переваливает за 100 000 американских рублей... Понятно, что в "варезе" их нет и не будет.

Но не все потеряно... В майа есть несколько видов анимации:
анимация по ключам, анимация на основе физических законов, деформеры, кинематика, нелинейная анимация, процедурная анимация... Но они напрямую не решают задач, как бы это выразиться, "событийной анимации"... Что я имею ввиду...Пример. Нажимает персонаж на кнопку и дверь открывается... Причем она открывается всегда за, допустим, 20 кадров, не зависимо от дальнейших действий персонажа и независимо от момента нажатия на эту кнопку... То есть процесс открывания двери "запускается" неким событием и дальше развивается самостоятельно. независимо от действия других элементов сцены. Момент нажатия на кнопку может быть изначально неопределен (например, наш персонаж - это прыгающий по динамическим законам упругий шарик, и когда он "доскачет" до кнопки заранее предсказать нельзя). Другой пример - идущий в атаку танк, объезжающий возникающие на пути его движения воронки от снарядов, падающие, естественно, случайным образом.. Один танк можно,конечно проанимировать "вручную". но если это танковая армия?
"Напрямую" подобные задачи не решаются, но комбинацией средств (MEL + trax + что-то еще) тем не менее реализовать их можно...
 
#11
Короче, объясняю еще раз. Например, я делал звонок по которому бил боек, бил он припомощи выражения. Я вывел атрибут справа в каналах ON/OF. После этого, когда я включаю ON, звонит звонок, когда выключаю, не звонит. Анимация при этом постоянно включена.

Так вот мне нужно всего-то чтобы этот ON/OF срабатывал при нажатии какой нибуть кнопки на клаве. Тоесть выход мне нужен, выход.... С экспрешена на клаву.

Последний коментарий это оно. Но это уже целый движок. А мне ходелось бы самому сделать что то простенькое.

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

Спасибо.
 
#12
То есть тебе хоткей нужен на ON/OFF? Ну и напиши экспрешен в Hotkey Editor-e. Нажатая клавиша - ON/OFF = 1, не нажатая - ON/OFF=0.
 
#13
Але, мальчики и девочки...Ничего не пропустили? Итак, звонок проанимирован экспрешеном... Хотим нажать на клавишу и звонок зазвенит..Очень хорошо... Только пропускаем один маленький момент...А время кто менять будет? Подобный экспрешен связан со временем, поэтому если кнопочка плей не нажата, то хоть обвешайтесь хоткеями - звененть будет только в голове... А в момент проигрывания анимации есть большие сомнения, что майа будет реагировать на нажатие клавиш....
 
#14
Насчет мальчиков, я не знаю, как они будут справляться со всеми этими проблемами (опять же про клипы тут умные люди много чего сказали), а насчет девочек, то я человеку попыталась объяснить, как хоткеями пользоваться и на них навешивать всякие мел-команды... Как это все будет работать, я не знаю, у меня нету ни звонка, ни экспрешена, ни включенной анимации. :о)))
Кстати, в момент проигрывания анимации, правда простейшей, клавиши работают, я посмотрела.
 
#15
> То есть тебе хоткей нужен на ON/OFF? Ну и напиши экспрешен в Hotkey
> Editor-e. Нажатая клавиша - ON/OFF = 1, не нажатая - ON/OFF=0.

А как? Как назначить хоткей на собственный атрибут ON/OF? Или например сделать чтобы камерой можно было управлять с помощью стрелок на клаве? Ну это уже сложнее. Хотябы первое.
 
#16
В Hotkey Editor-е в категории User заводишь новую команду (кнопоку New нажимаешь). Пишешь название OnOf, вписываешь команду:
setAttr locator1.OnOf 1;
назначаешь клавишу, допустим - ;
заводишь новую команду OnOfRelease, там пишешь
setAttr locator1.OnOf 0;
назначаешь ту же клавишу ; , только меняешь Direction c Press на Release.
Все работает... у меня. :о)))

locator1 - ясное дело, что это имя объекта, чей атрибут. :о)))
 
#17
пока могу сказать, как можно двигать камерой дискретно (нажимаешь стрелку - камера перемещается), а плавно - может, придумаю потом... Заводишь новую команду, допустим camRight

вписываешь

float $step = 10;
float $camX = `getAttr persp.tx`;
$camX = $camX + $step;
setAttr persp.tx $camX;

$step = шаг движения камеры
$camX = изменение камеры по Х
persp - название камеры

в назначении хоткея пишешь Right;

Заводишь новую команду camLeft.

float $step = 10;
float $camX = `getAttr persp.tx`;
$camX = $camX - $step;
setAttr persp.tx $camX;

в назначении хоткея пишешь Left;

ну и так далее...
 
#18
В принципе на камеру, также как и с OnOf, можно завести доп. атрибут булеан и уже на него навешивать хоткей - клавиша нажата, выполняется экспрешн движения камеры ($step сделать, например, 1), отпущена - он перестает выполняться. Тогда, наверное, будет плавное движение.
 
#20
Типа не за что (см. выше) :о)))))
Ты скажи, у тебя заработало так, как ты хотел?
 
Сверху