Render.ru

Дублировать ноды в сложных связях?

BANNY

Активный участник
Рейтинг
11
#1
Вот у меня есть анимация одной буквы, транслате, ротате, к нему привязан анимированый бенд и припарентиен,
кто расскажет как мне применять такую же анимацию к другим буквам расположенным, естесссно в другом месте, и в другое время?
 

Yakomasi

Активный участник
Рейтинг
10
#2
пиши скрипт для этого! без него никак!
в общем я так понимаю, из Скрипт эдитора выбираешь строки с действиями над первой буквой и применяешь эти действия для остальных прописывая строку в какой момент времени действия должны произойти, я бы от этих мыслей бы отталкивался....
 

BANNY

Активный участник
Рейтинг
11
#4
Я вижу решение этой проблемы так, с дублировать первую букву с входящим графом,
а потом подменить старую букву на новую. Но как подменить - я не знаю... :((
Вот как выглядит эта буква в гиперграфе:
 

Вложения

  • 48,8 КБ Просмотров: 330

BANNY

Активный участник
Рейтинг
11
#8
на трансформе, а других нет.... :(
вы имеете ввиду паралелаграм, так его не видать :(
 
#14
Вот я сделал такой скрипт для анимации камеры при композинге....знач я делал так, скрипт для камеры который собирает информацию по движению по врашению по фокальному расстоянию камеры....знач так делаем процедуру которая собирает информацию об камере как она будет врашатся двигатся также фокальное расстояние. Потом зациклим на несколько кадров в моём случае это 200 кадров.
что мы получаем мы получаем информацию в Script Editor..копируем эту всю информацию и сохраням её в *.txt формате где мы увидем просто какой кадр потом по X Y Z это движение и так же с остальными по Врашению ,фокальное растояние.Просто 1 словом информация выглядит просто цифры..Вот на 10 кадров Анимация



1 2 4 6 0 0 0 35
2 2 4 6 0 0 0 35
3 2 4 6 0 0 0 35
4 2 4 6 0 0 0 35
5 2 4 6 0 0 0 35
6 2 4 6 0 0 0 35
7 2.600284911 3.807977208 7.380341877 0 0 0 35
8 3.20056981 3.615954416 8.760683759 0 0 0 35
9 3.7 3.6 9.3 0 0 0 35
10 4.136847243 3.744222362 9.061944558 0 0 0 35




....потом я сделал скрипт который мы бы хотели применить для анимации другой камеры.Скрипт собирает информацию из *.txt и на лаживает на каждый кадр все настройки все координаты на камеру и мы получаем чистую анимацию 1 камеры.:)
Знач вот мои Скрипты...

1.СКРИПТ ДЛЯ СОБИРАНИЕ ИНФОРМАЦИИ



global proc cameraMove()
{
string $nodes[] = `ls -sl`;
string $change_name;
for($change_name in $nodes)
{
print (" ");
}
string $rotateX = `getAttr ($change_name + ".rx")`;
string $rotateY = `getAttr ($change_name + ".ry")`;
string $rotateZ = `getAttr ($change_name + ".rz")`;
string $moveX = `getAttr ($change_name + ".tx")`;
string $moveY = `getAttr ($change_name + ".ty")`;
string $moveZ = `getAttr ($change_name + ".tz")`;
string $Focal = `getAttr ($change_name + ".fl")`;
print (" " + $moveX);
print (" " + $moveY);
print (" " + $moveZ);
print (" " + $rotateX);
print (" " + $rotateY);
print (" " + $rotateZ);
print (" " + $Focal + "\n");
}
cameraMove();


global proc cikl()
{
float $test = 0;
while ($test < 200)
{
playButtonStepForward;
print ($test+1);
print (cameraMove());
$test = $test + 1;
}
}

global proc UI()
{
string $window = `window -title "Compozing" -widthHeight 10 10`;
rowColumnLayout;
button -label "Click proc" -c "cameraMove()";
button -label "Click cikl" -c "cikl()";
showWindow $window;
}
UI()




2СКРИПТ ДЛЯ НАЛАЖИВАНИЯ АНИМАЦИИ СОБРАННОЙ ИНФОРМАЦИИ


global proc getAnim(string $fileName, string $objectName)
{
//open the file for reading
$fileId=`fopen $fileName "r"`;

//get the first line of text
string $nextLine = `fgetline $fileId`;

//while $nextline is not emtpy(end of file) do the following

while ( size( $nextLine ) > 0 ) {

//tokenize(split) line into separate elements of an array
string $rawAnimArray[];
tokenize ($nextLine, " ",$rawAnimArray);

//place each element of the array into separate variables
print $rawAnimArray;
float $frame=$rawAnimArray[0];
float $x=$rawAnimArray[1];
float $y=$rawAnimArray[2];
float $z=$rawAnimArray[3];

//change the currentTime and set keys for tx, ty, tz

currentTime $frame ;
setAttr ($objectName+".tx") $x;
setKeyframe ($objectName+".tx");
setAttr ($objectName+".ty") $y;
setKeyframe ($objectName+".ty");
setAttr ($objectName+".tz") $z;
setKeyframe ($objectName+".tz");

//get the next line in the ascii file.
$nextLine = `fgetline $fileId`;
}

//close file
fclose $fileId;
}

global proc query()
{
string $name = `promptDialog -title "make name" -message "white name what you want" -text "camera"`;
string $baseName = `promptDialog -q`;
string $prompt = `fileDialog -dm "*.txt"`;
getAnim($prompt,$baseName);
}
query();

СпасиБО.
 
Сверху