Render.ru

Майа и звук.

Ifir

Активный участник
Рейтинг
17
#1
Хочу сделать анимацию танцующего персонажа. Тоесть хочу расставлять ключи в соответствии с звуковой дорожкой. Но инфы по внедрению звука не встречал.

Может кто сталкивался с подобным? Киньте ссылочку если можна.
 

DemX86

Активный участник
Рейтинг
18
#2
1. При помощи File -> Import подгружай .wav файл
2. Right click на timeline и в Sound выбирай дорогу.
 

Ifir

Активный участник
Рейтинг
17
#3
Спасибо.
но хотелось бы посмотреть или почитать как в майке вообще созвуком работают.
 

Konstantin Antipov

Пользователь сайта
Рейтинг
2
#6
Из wav файла можно достать только амплитуду, например скпировав ее в анимационную кривую. Собственно больше в wav файле ничего и нет. Если нужны подоробности, пишите, опубликую скрипт wav->animCurve
 

Ifir

Активный участник
Рейтинг
17
#7
Конечно нужны подробности. Думаю что кривая звуковой дорожки в граф эдитрое значительно облегчит работу.
 

Konstantin Antipov

Пользователь сайта
Рейтинг
2
#9
Выбираешь audio ноду, жмешь кнокпку скрипта, создастся локатора с анимацией. Анимация равна амплитуде audio файла. Ествественно, файл должен быть размещен на анимационной дорожке и влезать туда весь.
Плаг в комплекте.

global proc WaveToCurve(){
if(catch(`loadPlugin "C:/Program Files/Autodesk/Maya2008/bin/plug-ins/audioWave.mll"`)){
confirmDialog -title "ERROR!"
-message "plug-in audioWave not found!"
-button "OK";
}
else{
int $min=eval("playbackOptions -q -min");
int $max=eval("playbackOptions -q -max");
string $Sel[]=`ls -sl`;
int $er=0;
if(size($Sel)==0) $er++;
if((eval("nodeType "+$Sel[0])!="audio")) $er++;
print($er);
if($er){
confirmDialog -title "ERROR!"
-message "Please select audio node!"
-button "OK";
}
else{
duplicate -rr;
$Sel=`ls -sl`;
int $offset=0;
string $Audio=$Sel[0];
$offset=eval("getAttr "+$Audio+".offset");
eval("sound -offset 0 "+$Audio);
string $AudioWave=`createNode audioWave`;
eval("connectAttr time1.outTime "+$AudioWave+".input");
eval("connectAttr "+$Audio+".filename "+$AudioWave+".audio");
string $Out[]=`spaceLocator -p 0 0 0`;
string $loc=$Out[0];
string $expr=$loc+".rotateX="+$AudioWave+".output";
expression -s $expr;
eval("bakeResults -simulation true -t \"0:"+$max+"\" -sampleBy 1 -disableImplicitControl true -preserveOutsideKeys false -sparseAnimCurveBake true -at rx "+$loc);
selectKey -clear ;
eval("selectKey -add -k "+$loc+"_rotateX");
eval("keyframe -e -iub true -r -o over -tc "+$offset+" "+$loc+"_rotateX");
}}}
WaveToCurve();
 

Ifir

Активный участник
Рейтинг
17
#11
Konstantin Antipov

Скопировал скрипт в скриптэдитор, заменил там дирректорию плагина на свою, поместил скрипт на полку. Выделяю ноду жму на кнопку и эррор. (

// Error: Plug-in, "E:/Program Files/Autodesk/Maya2009/bin/plug-ins.mll", was not found on MAYA_PLUG_IN_PATH.
 

Konstantin Antipov

Пользователь сайта
Рейтинг
2
#12
Очевидно, что плагин не подключился. Это не проблема скрипта. Подключите плагин корректно.
Кстати: "plug-ins.mll" такой mll-ки нету =) где audioWave.mll?
 

Ifir

Активный участник
Рейтинг
17
#13
Да, мльку я упустил из виду).

Но теперь другая ошибка(

// Error: Plug-in, "audioWave" was compiled against too old a version of the Maya API and is thus incompatible with the current Maya version. (audioWave) //
0// Warning: Unrecognized node type 'audioWave'; preserving node information during this session. //
// Error: The destination attribute 'unknown2.input' cannot be found. //

Может на 2009 майку не пойдёт этот плаг?
 

Ifir

Активный участник
Рейтинг
17
#15
Уряяяяяяяяя . Зарабоало. Спасибо огромное.

Теперь буду мучать енту кривую.
 

Ifir

Активный участник
Рейтинг
17
#16
Konstantin Antipov

Скажите пожалуйста. А можно как-то сделать чтоб ключи проставлялись не в каждом кадре, а допустим в каждом 0,2 каде. А то я в скриптах не взуб ногй.
 
Сверху