1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Shake эффект для камеры

Тема в разделе "Maya", создана пользователем Slavenin, 5 май 2009.

Модераторы: Dark™, Skif
  1. Slavenin

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

    С нами с:
    22.06.2008
    Сообщения:
    264
    Симпатии:
    0
    Баллы:
    16
    Не знаю есть ли подобое для майки, но я не нашел когда искал поэтому написал собственный шэйк эффект для камеры, параметром Power регулируется сила дрожания камеры, параметром Scatter - разброс полета камеры.

    if (`window -exists CameraShake`)
    {
    deleteUI CameraShake;
    }
    window -rtf 1 CameraShake;
    scrollLayout;

    columnLayout;
    floatSliderGrp -w 400 -value 50 -min 0 -field true -label "Power" PowerT;
    floatSliderGrp -w 400 -value 2 -min 0 -field true -label "Scatter" Scat;
    button -w 100 -h 30 -command "Mas_Camera_Shake()" -label "Create";
    showWindow;

    proc float[] Mas_power()
    {
    float $mas_pow[2];
    $mas_pow[0] = `floatSliderGrp -query -v PowerT`;
    $mas_pow[1] = `floatSliderGrp -query -v Scat`;
    return $mas_pow;
    }

    proc Mas_Camera_Shake()
    {
    string $mas_cam_name[] = `ls -sl`;

    float $mas_val[] = Mas_power();

    string $mas_name_big[] = `polySphere -ch 0 -o on -r $mas_val[1] -n "mas_Big_Coll#"`;
    string $mas_name_small[] = `polySphere -ch 0 -o on -r ($mas_val[1]/4) -n "mas_Small_Coll#"`;

    select $mas_name_big;
    ConvertSelectionToFaces;
    polyExtrudeFacet -constructionHistory 1 -keepFacesTogether 1 -pvx -3.576278687e-007 -pvy 0 -pvz -4.768371582e-007 -divisions 1 -twist 0 -taper 1 -off 0 -ltz 0.1 -n "mas_Extra#" -smoothingAngle 30 ($mas_name_big[0] + ".f[0:399]");
    select $mas_name_big;
    delete -ch;
    rigidBody -passive -name "mas_CollBigP#" -m 500 -dp 0 -sf 0 -df 0 -b 1 -l 0 -tf 200 -iv 0 0 0 -iav 0 0 0 -c 0 -pc 1 -i 0 0 0 -imp 0 0 0 -si 0 0 0 -sio none ;

    select $mas_name_small;
    rigidBody -active -name "mas_CollSmallP#" -m 1 -dp 0 -sf 0 -df 0 -b 1 -l 0 -tf 200 -iv 0 0 0 -iav 0 0 0 -c 0 -pc 1 -i 0 0 0 -imp 0 0 0 -si 0 0 0 -sio none ;

    string $mas_name_Turb[] = `turbulence -pos 0 0 0 -name "mas_CollTurb#" -m $mas_val[0] -att 0 -f 15.602 -phaseX 0 -phaseY 0 -phaseZ 0 -noiseLevel 5 -noiseRatio 0.707 -mxd -1 -vsh none -vex 0 -vof 0 0 0 -vsw 360 -tsr 0.5`;
    connectDynamic -f $mas_name_Turb $mas_name_small;

    select -r $mas_name_big;
    select -add $mas_name_small;
    orientConstraint -offset 0 0 0 -weight 1;

    select -r $mas_name_big;
    select -add $mas_name_small;
    select -add $mas_name_Turb;
    string $mas_group = `group -n "mas_Cam_Shake#"`;
    xform -cp;

    select -r $mas_cam_name;
    select -add $mas_group;
    string $mas_name_point[] = `pointConstraint -offset 0 0 0 -weight 1 -n "mas_point1"`;
    select -r $mas_name_point;
    doDelete;

    select -r $mas_name_small;
    select -add $mas_cam_name;
    pointConstraint -offset 0 0 0 -weight 1 -n mas_point1;

    select -r $mas_group;
    HideSelectedObjects;
    }

    пользуйтесь люди :) , если вдруг кто-то захочет сказать спасибо материально, яндекс кошелек: 41001164992634
     
  2. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Круто, конечно, но чем этот код лучше, чем, например, это:
    Код:
    ...
    float $phase = $speed * time;
    group1.tx = noise( $phase + $xa);
    group1.ty = noise( $phase + $ya);
    group1.tz = noise( $phase + $za); 
    
    или то, что просто любую анимированную процедурную текстуру можно приконнектить к перемещению - и больше контроля будет.
     
  3. Slavenin

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

    С нами с:
    22.06.2008
    Сообщения:
    264
    Симпатии:
    0
    Баллы:
    16
    не знаю чем он лучше, я по 4 строчкам не понял, что именно имется в виду, а прежде чем написать это пробовал поковыряться с функцией нойза(да и не только нойза, внимательно почитал про все функции используемые майкой, правда не все понял), но путного так ничего и не вышло, камера постоянно скакала из точки в точку, что меня никак не устраивало, необходимо было добиться хаотичного, но вместе с тем плавного перемещения камеры в определенном объеме, и чтобы при этом можно было контролировать зону и скорость ее пермещения. Чего и достиг. Результат меня более чем устраивает.

    Если не сложно поясни про то, как можно приконнектить процедурную текстуру к перемещению :) и почему будет больше контроля? никогда не пробовал...

    PS совсем забыл, если кто будет запускать скрипт через Source Script, необходимо перед процедурой дописать global , просто стараюсь всегда избегать глобальных переменных и процедур, а тут без этого не работает
     
  4. никита никишин

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

    С нами с:
    08.12.2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    11
    а можно узнать как этот скрипт использовать?и для чего он?
     
  5. никита никишин

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

    С нами с:
    08.12.2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    11
    я просто некогда со скриптами неработал!ну тока один раз и то нечиго неполучилось!
     
  6. Slavenin

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

    С нами с:
    22.06.2008
    Сообщения:
    264
    Симпатии:
    0
    Баллы:
    16
    хм..., использовать его так же как и любой другой скрипт, есть несколько способов, я предпочитаю скопировать в ScriptEditor и оттуда запускать, чтобы он работал надо выделить камеру запустить скрипт и нажать кнопочку Create.

    Служит он для создания Shake эффекта, то бишь для создания эффекта хаотичного перемещения и дрожания камеры, допустим при врыве
     
  7. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Ну, например, самое простое - приконнектить outAlpha к любому из транслейтов. Насчет контроля: у процедурной текстуры много параметров, можно составить любой рисунок тряски камеры =)
     
  8. Slavenin

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

    С нами с:
    22.06.2008
    Сообщения:
    264
    Симпатии:
    0
    Баллы:
    16
    понятно, а контролировать перемещение так, чтобы камера не телепортировалась из одного места в другое, а перелетала можно? :)
     
  9. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Все зависит от текстуры и настроек, например, анимированная текстуры воды плавно перемещает группу камеры.
     
Модераторы: Dark™, Skif

Поделиться этой страницей