You are on page 1of 23

This script is made to accomodate the import of an MOSYS ascii file containing

position data , into a MAYA camera.It is made for the MOSYS move data files coming
from the movemanager and as such there are some fixed settings , rules and
limitations.
------------------------------------------------------------
1: The real world
The convention used in the real world is :Camera pointing along the tracks, pan
right is positive - Tilt is in level, tilt up is positive - Dolly is in the one
extreme end of tracks away from where the camera is looking and set to zero ,
always positive numbers ,needless to say that it is important that the track
calibration is correct - I use 1135

2: The File
The script can import ascii files with the characteristics of the MOSYS move data
files if saved as the post.txt type and renamed to something.mov

The file should contain only position data.If txt info is present in the file it
should have a "//" before the txt on each line

The axes should be in the MOSYS order ;pan tilt track focus zoom

2: The Script
It is pretty much self explanatory but here is a brief description

Select height and number of tracks and "make camera" - a rig on tracks is the
result.It is also possible to work with camera on sticks only.

Press "Import" and choose the file.The pos data will be attached to the various
parameters.Remember to set the correct move length - frame 1 is the first frame
Some parameters are locked for fool proof purpose but they can be unlocked e.g.
camera heigth

All parameters are animateable

The exporter exports an Ascii file that can be importet in MOSYS movemanager.If a
move is importet and something is changed in one axe the script keeps all other
data for export.E.g. :In this way it is possible to scale track axe and keep other
axes the same It is possible to make several cameras but can be confusing and prone
to bugs - I will take that function out.

The .avi should be compressed to the liking of machine MAYA runs on

-----------------------------------------------------------

Below is the newest version of the script dated 120605 :

Copy paste the script-txt into a new tool on the shelf and voil� (There is an icon
attached to this mail to use)

I know there is some minor bugs , e.g.: it is not possible to select the camera via
the script after a reload of a move.

If any questons or suggestions please email allan@movis.cc or call


+4520114488

;;;;;;;;;;;;;;;;;;;;;;;;;;;;script start;;;;;;;;;;;;;;;;;;;;;;;;;

////////////////////////////////////////////////////////////////////////////
//////////////
//
//
// MoVis Camera by Moving Visuals
//
// Copyright (c) Moving Visuals
//
// http://www.movis.cc
//
// Script generates MoVis camera and allow to import and export moves
//
// Author: Mads Tuxen //
// //
//
//
////////////////////////////////////////////////////////////////////////////
//////////////

global int $test_exp;//en v�rdi der afg�rer om det er en test eller en export der
laves global string $test_text[];//skal kaldes igen med global for at virke inde i
proc clear ($test_text); // start med at rense testvinduet global string
$teksten[]; clear ($teksten); global string $active;

global int $select_job;


$select_job=2000;
global string $cw;

//-----------------------------------------------------------
// procedure til at s�tte aktivt kamera
proc setactive(){
global string $active;
$active=`optionMenu -q -value active`;
movis;
}

//-----------------------------------------------------------------------
// en procedure der fjerner og l�ser alle keyable attributter fra interfacet til de
objekter der ikke skal �ndres ved.

proc del_att(string $objektet){


string $attributter[]=`listAttr -k $objektet`;
int $s=size ($attributter);
int $i;
for ($i=0;$i<$s;$i++){
setAttr -e -keyable false ($objektet + "." + $attributter[$i]);
setAttr -e -lock on ($objektet + "." + $attributter[$i]);
}

} //slut p� procedure

//del_att(et eller andet);


//-----------------------------------------------
//en procedure der fjerne alle attributter g�r dem ikke keyable proc
remove_key_att(string $objektets){
string $attributter[]=`listAttr -k $objektets`;
int $s=size ($attributter);
int $i;
for ($i=0;$i<$s;$i++){
setAttr -e -keyable false ($objektets + "." + $attributter[$i]);

//skal ogs� lockes

//-----------------------------------------------
// acclerations test
proc ac_test (float $test_value, string $kurven){

global int $testresult;


float $keys_time[]; //definerer keytime som er en keys tid
float $key_value[]; //definerer keyvalue som er en keys vaerdi

$keys_time = `keyframe -sl -q -tc $kurven`; $keys_value= `keyframe -sl -q -vc


$kurven`; int $keys_num=size($keys_time); int $intervaller=$keys_num-1;

for ($a=0;$a<$intervaller;$a++){ //start loop


intervalle

int $aa=$a+1;
int $aaa=$a+2;
float $slut_tid[]= `keyframe -index $aa -query $kurven`;//faa sluttid
for interval key
float $start_tid[]= `keyframe -index $a -query
$kurven`;//faa starttid for interval key

int $slut_t=$slut_tid[0];
int $start_t=$start_tid[0];
int $interval_dur =$slut_t-$start_t;

for ($ii=$start_t;$ii<$slut_t;$ii++){ //start loop


accleration

int $iii=$ii+1;
float $endframe_value[]=`keyframe -t $iii -q -eval $kurven`;
float $efv=$endframe_value[0];

float $startframe_value[]=`keyframe -t $ii -q -eval $kurven`;


float $sfv=$startframe_value[0];
float $value= abs(($efv-$sfv));

if ($value>$test_value){
global string $test_text[];
int $size_text=size($test_text);
$test_text[$size_text]=($kurven +" frame "+ $start_t + " to
" + $slut_t);

$ii=$slut_t;
$testresult++;
}

} //slut loop
accleration

} //slut p� loop
intervaller

//-----------------------------------------------------
//test keys

proc testkeys()
{

global int $test_exp; //skal kaldes for at den kan l�se den global string $active;

//string $valgt=`optionMenu -q -value active`; string $valgt=$active;

if (`gmatch $valgt "MoVis_3d_Cam*"` ==0){


global string $test_text[];

clear ($test_text);
$test_text[0]="Please select MoVis-Camera (Locator)!";

}
else{
global string $test_text[]; //skal kaldes
clear ($test_text); //hvis der er noget tekst i forvejen s� sletes den
$test_text[0]=("Test results for "+$valgt +":");
$test_text[1]="temp";// bare en midlertidig for at den ikke skal skrives over
i testloopets slut
global int $testresult;// skal m�ske startes et andet sted.
$testresult=0;// starter med at s�tte resultatet til "passed"
float $testvalue_pan=100; //s�t maxv�rdien for pan
float $testvalue_tilt=100; //s�t maxv�rdien for tilt
float $testvalue_track=100; //s�t maxv�rdien for track

string $anim_curves[] =`keyframe -at track_m -at pan_deg -at tilt_deg -q


-name $valgt`;
// hvilke animationskurver er der med disse attr
int $anim_curves_num=size($anim_curves);

selectKey -cl $valgt; //renser selection hvis der skulle


selectKey $valgt; // valeger alle keys p� objektet s�
kan de laeses med keyframe edit

for ($o=0;$o<$anim_curves_num;$o++){ //start


attribut loop
string $test_pan=`match "_pan_deg$" $anim_curves[$o]`;
string $test_tilt=`match "_tilt_deg$" $anim_curves[$o]`;
string $test_track=`match "_track_m$" $anim_curves[$o]`;

if ($test_pan=="_pan_deg") {
ac_test($testvalue_pan,$anim_curves[$o]);
}

if ($test_tilt=="_tilt_deg") {
ac_test($testvalue_tilt,$anim_curves[$o]);
}

if ($test_track=="_track_m"){

ac_test($testvalue_track,$anim_curves[$o]);
}

} // slut
attrribut loop
selectKey -cl $valgt; //fjerner valget af keys s� man ikke
forstyrres

if ($testresult==0){ //hvis der er fejl eller ikke nb


$test_text[0] er altid navnet p� objektet og defineres i starten
if ($test_exp==0) { //hvis det er en test der kalder
$test_text[1]="Passed the test!!";

}
else
{ //hvis det er en eksoprt der kaldes
$test_text[0]=$valgt;
$test_text[1]="Exported!";
movis_exp;
}

}
else
{
if ($test_exp==0) {
$test_text[1]="Didn't pass the test!!!";

}
else
{
$test_text[0]=("Can't export "+$valgt);
$test_text[1]="Animation didn't pass test!";
}
}

}//slutter den f�rste else

movis; //opdaterer vinduet

}//procedure slut

//--------------------------------------------------------
// lav et camera med navnet movis

proc make_movis()
{
global int $select_job;
if (`scriptJob -ex $select_job`) scriptJob -kill $select_job -force;// dr�ber
select jobbet mens der laves og selectes et kamera

string $cn=`textField -q -text camera_name`; float $h=`floatField -q -value


cameraheight`; float $height=$h;//en skalering af h�jden float $ant=`intField -q
-value tracks`;//antal tracks hvis der kommer flere string $fn="MoVis_3d_Cam_"+
$cn; global string $active;

select -cl; // s�rger for at der ikke er valgt noget inden der laves noget

// der laves camera og locator

string $locl[]=`spaceLocator -n ($fn+1) -p 0 2 0`; string $loc=$locl[0];


string $cam[]=`camera -n ("camera_"+$loc) `; //$cn+"1"

//der laves en locator som bruges til aim-box

string $aim_box[]=`spaceLocator -n ($cam[0]+"_aimbox_org") -p 0 0 0`; parent


$aim_box[0] $cam[0]; setAttr ($aim_box[0]+".scaleX") 0; setAttr
($aim_box[0]+".scaleY") 0; setAttr ($aim_box[0]+".scaleZ") 0;

// imageplane
string $ip =`shadingNode -asUtility imagePlane -n ($loc+"_ImagePlane")`;// der
laves et image plane string $ipm=($ip+".message"); string
$camip=($cam[0]+".imagePlane[0]");
connectAttr -f $ipm $camip;
setAttr ($ip+".fit") 0;

connectAttr -f ($cam[0]+".horizontalFilmAperture") ($ip+".sizeX"); connectAttr -f


($cam[0]+".verticalFilmAperture") ($ip+".sizeY");

addAttr -ln scale_all -k 1 -at double -dv 1 -minValue 0 $loc; addAttr -ln pan_deg
-k 1 -at double $loc; addAttr -ln tilt_deg -k 1 -at double $loc ; addAttr -ln
track_m -k 1 -at double -minValue 0 -maxValue ((2.3*$ant)-1.3) -dv 0.0 $loc;
addAttr -ln focus -k 1 -h 0 -at double $loc; //bruges ikke endnu aktivt -h 1
betyder den er gemt addAttr -ln zoom -k 1 -h 0 -at double $loc; // bruges ikke
endnu

addAttr -ln image_depth -k 1 -h 0 -dv 200 -at double $loc; // til


image_plane
addAttr -ln avi_offset -k 1 -h 0 -dv 0 -at long $loc;

addAttr -ln nodaloffset_x -k 1 -h 0 -at double -dv 0 -maxValue 20 -minValue


-20 $loc;
addAttr -ln nodaloffset_y -k 1 -h 0 -at double -dv 0 -maxValue 20 -minValue
-20 $loc;
addAttr -ln nodaloffset_z -k 1 -h 0 -at double -dv 0 -maxValue 20 -minValue
-20 $loc;

addAttr -ln head_height -k 1 -at double -minValue 40 $loc ; // kameraets


h�jde over gulvet i cm
addAttr -ln head_off_x -k 1 -at double -minValue -200 -maxValue 200 $loc ;
// kameraets h�jde over gulvet i cm
addAttr -ln head_off_z -k 1 -at double -minValue -200 -maxValue 200 $loc ;
// kameraets h�jde over gulvet i cm

addAttr -ln move_in -k 1 -at "enum" -en "none" $loc;


setAttr -e -lock on ($loc + ".move_in");

setAttr -e -keyable false ($loc + ".scaleX");


setAttr -e -keyable false ($loc + ".scaleY");
setAttr -e -keyable false ($loc + ".scaleZ");
// der laves nogle locators som bruges til at placere riggen
string $top[]=`spaceLocator -n top -p 0 0 0`; //

//foerste ben

string $fod_a[]=`spaceLocator -p 0 0 0`; //


move 1 0 0 $fod_a[0];

string $pinda[]=`polyCube -d .5 -w 1 -h 0.2 -n "leg#"`;


move 0.5 0 0 $pinda[0];
move -r 0.5 0 0 ($pinda[0]+".scalePivot") ($pinda[0]+".rotatePivot");
pointConstraint $fod_a[0] $pinda[0];
aimConstraint $top[0] $pinda[0];

expression -o $pinda[0] -s ( $pinda[0]+".scaleX =-1*


mag(<<"+$top[0]+".tx, "+$top[0]+".ty, "
+$top[0]+".tz >>-<<"+$fod_a[0]+".tx,
"+$fod_a[0]+".ty, "+$fod_a[0]+".tz>>);\r\n");
if ($ant>=1){
move 2.8 2 -4 $fod_a[0];
}
else{
move 1.5 0 -2.6 $fod_a[0];
}

setAttr ($fod_a[0]+".visibility") 0;

//andet ben

string $fod_b[]=`spaceLocator -p 0 0 0`;


move 1 0 0 $fod_b[0];

string $pindb[]=`polyCube -d .5 -w 1 -h 0.2 -n "leg#"`;


move 0.5 0 0 $pindb[0];
move -r 0.5 0 0 ($pindb[0]+".scalePivot") ($pindb[0]+".rotatePivot");
pointConstraint $fod_b[0] $pindb[0];
aimConstraint $top[0] $pindb[0];

expression -o $pindb[0] -s ( $pindb[0]+".scaleX =-1*


mag(<<"+$top[0]+".tx, "+$top[0]+".ty, "
+$top[0]+".tz >>-<<"+$fod_b[0]+".tx,
"+$fod_b[0]+".ty, "+$fod_b[0]+".tz>>);\r\n");

if ($ant>=1){
move -2.8 2 0 $fod_b[0];
}
else{
move -3 0 0 $fod_b[0];
}

setAttr ($fod_b[0]+".visibility") 0;

//tredie ben

string $fod_c[]=`spaceLocator -p 0 0 0`;


move 1 0 0 $fod_c[0];

string $pindc[]=`polyCube -d .5 -w 1 -h 0.2 -n "leg#"`;


move 0.5 0 0 $pindc[0];
move -r 0.5 0 0 ($pindc[0]+".scalePivot") ($pindc[0]+".rotatePivot");
pointConstraint $fod_c[0] $pindc[0];
aimConstraint $top[0] $pindc[0];

expression -o $pindc[0] -s ( $pindc[0]+".scaleX =-1*


mag(<<"+$top[0]+".tx, "+$top[0]+".ty, "
+$top[0]+".tz >>-<<"+$fod_c[0]+".tx,
"+$fod_c[0]+".ty, "+$fod_c[0]+".tz>>);\r\n");

if ($ant>=1){
move 2.8 2 4 $fod_c[0];;
}
else{
move 1.5 0 2.6 $fod_c[0];
}

setAttr ($fod_c[0]+".visibility") 0;

// de tre ben parentes til locatoren og deres attr slettes

parent $pinda[0] $pindb[0] $pindc[0] $loc;

del_att ($pinda[0]);
del_att ($pindb[0]);
del_att ($pindc[0]);

// de 4 locators samles i en gruppe $lower_part


string $lower_part=`group $top[0] $fod_a[0] $fod_b[0] $fod_c[0]`;

//den del der laver f�rste plade


string $pc_pan[]=`polyCube -ch 0 -w .2 -h .2`;
polyExtrudeFacet -ch 0 -kft 0 -ltz 2.00 ($pc_pan[0]+".f[4]") ;
polyExtrudeFacet -ch 0 -kft 0 -ltz 2.00 ($pc_pan[0]+".f[1]") ;
select -cl;
move -r -1.6 0.5 0 $pc_pan[0];
move -a 0 0 0 ($pc_pan[0]+".scalePivot") ($pc_pan[0]+".rotatePivot");

//tiltdel
string $pc_tilt[]=`polyCube -ch 0 -w .2 -h .2`;
polyExtrudeFacet -ch 0 -kft 0 -ltz 1.70 ($pc_tilt[0]+".f[4]") ;
polyExtrudeFacet -ch 0 -kft 0 -ltz 1.00 ($pc_tilt[0]+".f[1]") ;
select -cl;
move -r -1.3 1.5 0 $pc_tilt[0];
move -a 0 2 0 ($pc_tilt[0]+".scalePivot") ($pc_tilt[0]+".rotatePivot");

//hoved cylinder
string $head[]=`polyCylinder -ch 0 -r .5 -h .6 -sx 20 -sy 1 -sz 1`;
move -r 0 0.1 0 $head[0];

if ($ant>=1){
//script der laver skinnerne:

float $gt=.3; // godstykkelse;

float $indhak=.5;// angiver hvor langt inde svellerne sidder


fra enderne
global float $length=23;//skal angi l�ngden som funktion af
antal af skinner
float $svelle=6.1;//her st�r afstanden mellem skinnerne og
svellernes l�ngde

string $skinne_a[]=`polyCube -ch 0 -w .3 -h 1.0 -d


($length*$ant) -sz (2*$ant) -n "skinne"` ;
move (-.5*$svelle) .5 (($length/2)*$ant);
del_att($skinne_a[0]);//fjern og lock attrs

string $skinne_b[]=`polyCube -ch 0 -w .3 -h 1.0 -d


($length*$ant) -sz (2*$ant) -n "skinne"` ;
move (.5*$svelle) .5 (($length/2)*$ant);
del_att ($skinne_b[0]);//fjern og lock attrs

global string $alle_sveller[];

global string $svelle_navn[];

for ($ii=0;$ii<$ant;$ii++){
for ($i=0;$i<((4));$i++) {
global float $length;
global string $svelle_navn[];
global string $alle_sveller[];
string $temp[]=`polyCube -ch 0 -w
$svelle -h .3 -d 1.0 -n ("svelle"+$loc)`;
$svelle_navn[($i)]=$temp[0];

$alle_sveller[($i+($ii*4))]=$temp[0];
clear ($temp);
move 0 .15
(($i)*(($length-(2*$indhak))/3)+$indhak+($ii*$length));
del_att($svelle_navn[($i)]);

} // slut p� loop sveller


}//slut p� ant loop

select -cl;
select $alle_sveller;
string $sg =`group -n ("sveller"+$loc)`;
del_att ($sg);
clear $alle_sveller;
clear $svelle_navn;
select -cl;

// der kan laves en selcetion loop der v�lger alle skinnerne


og grouper dem til sidst

string $skinner=`group $skinne_a[0] $skinne_b[0] $sg`;


//grouper de to skinner sammen med svellerne
del_att($skinner);
parent $skinner $loc; //parenter skinner til locatoren

//to skinner som kamera-riggen er sat fast til

string $rack_a[]=`polyCube -w.3 -h 1 -d 13`;


scale -r 1 1 .8 ($rack_a[0]+".f[1]");
move -3 1.5 0 $rack_a[0];

string $rack_b[]=`polyCube -w.3 -h 1 -d 13`;


scale -r 1 1 .8 ($rack_b[0]+".f[1]");
move 3 1.5 0 $rack_b[0];

parent $rack_a[0] $rack_b[0] $lower_part;

del_att($rack_a[0]);
del_att($rack_b[0]);

// samler og flytter kamera

parent $pc_tilt[0] $pc_pan[0]; // s�tter de to kameradele sammen

parent $pc_pan[0] $head[0] $top[0];// s�tter alt p� toppen

move 0 2 0 $top[0];

move 0 4 0 $cam[0];
rotate 0 180 0 $cam[0];
parent $cam[0] $pc_tilt[0];

// der laves expressions p� locatoren


float $afst; //der skal en offset p� hvis der er skinner ellers skal der
ikke
if ($ant>=1){
$afst=6.5;
}
else{
$afst=0;
}

//"\r\n" formel for ny linje i expeditoren


expression -s ( $loc+".scaleX"+"="+$loc+".scale_all"+";\r\n"+
$loc+".scaleY"+"="+$loc+".scale_all"+";\r\n"+
$loc+".scaleZ"+"="+$loc+".scale_all"+";\r\n"+
$pc_pan[0]+".rotateY"+"=(-1*"+$loc+".pan_deg)"+";\r\n"+
$pc_tilt[0]+".rotateX"+"=-1*("+$loc+".tilt_deg)"+";\r\n"+

$lower_part+".translateZ"+"="+$afst+"+(10*"+$loc+".track_m)"+";\r\n"+

$cam[0]+".translateZ="+$loc+".nodaloffset_z*.1;\r\n"+
$cam[0]+".translateY="+$loc+".nodaloffset_y*.1+.5;\r\n"+
$cam[0]+".translateX="+$loc+".nodaloffset_x*.1+1.3;\r\n"+

$top[0]+".translateY"+"=-2+(0.1*"+$loc+".head_height);\r\n"+

$top[0]+".translateX"+"=(0.1*"+$loc+".head_off_x);\r\n"+
$top[0]+".translateZ"+"=(0.1*"+$loc+".head_off_z);\r\n"+
$ip+".depth"+"=(0.1*"+$loc+".image_depth);\r\n" +
$aim_box[0]
+".translateZ"+"=(-0.1*"+$loc+".image_depth);\r\n"+
$aim_box[0] +".translateX"+"=0;\r\n"+
$aim_box[0] +".translateY"+"=0;\r\n");

//expression der laver offset p� avien.


expression -s ($ip+".frameExtension=frame+"+$loc+".avi_offset;");

parent $lower_part $loc;

setAttr ($loc+".head_height") $height ; // saetter h�jden til det der er


indtastet
setAttr ($loc+".head_height") -lock on; // l�ser den s� den ikke kan �ndres
setAttr ($loc+".head_off_x") -lock on; // l�ser den s� den ikke kan �ndres
setAttr ($loc+".head_off_z") -lock on; // l�ser den s� den ikke kan �ndres

setAttr -e -lock on ($loc+".scaleX");


setAttr -e -lock on ($loc+".scaleY");
setAttr -e -lock on ($loc+".scaleZ");

del_att($cam[0]);//lock og fjern transforms


//del_att($cam[1]);// lock og fjern shapes // blev brugt til at laase
attributter p� cam shapen

del_att($pc_pan[0]);
del_att($pc_tilt[0]);
del_att ($head[0]);
del_att($top[0]);
del_att($lower_part);

remove_key_att($aim_box[0]);

$active=$loc;
select -r $loc;
movis; // opdaterer vinduet

}
//-------------------------------------------------------
// importerer moves til det valgte camera
proc importer_noget(string $filename, string $filetype)//den procedure der
importere attributter og mapper dem
{
//string $chosen=`optionMenu -q -value active`;
global string $active;

string $chosen=$active;

// lille procedure der sletter evt animation der er i forvejen

string $animation_temp[]=`keyframe -at pan_deg -at tilt_deg -at track_m -at


focus -at zoom -at move_in -q -name $chosen`;
if (size ($animation_temp)>=1){
delete $animation_temp;
}
clear $animation_temp;

string $chot_pan=($chosen+".pan_deg");
string $chot_tilt=($chosen+".tilt_deg");
string $chot_track=($chosen+".track_m");
string $chot_focus=($chosen+".focus");
string $chot_zoom=($chosen+".zoom");

// saadan forts�ttes med alle de attributter der skal bruges

movIn -file $filename -st 1 $chot_pan $chot_tilt $chot_track $chot_focus


$chot_zoom;// $chot_xxx her.

string $oldname=`addAttr -q -enumName ($chosen+".move_in")`;

string $file_end = `match "[^/\\]*$" $filename`;//stripper filen fra stien

setAttr -e -lock off ($chosen + ".move_in");

addAttr -e -enumName ($file_end+":") ($chosen+".move_in");


setAttr -e -lock on ($chosen + ".move_in");

setAttr ($chosen+".focus") -lock on;


setAttr ($chosen+".zoom") -lock on;

}
//-----------------------------------------------------------
// aabner et import avi vindue
proc imp_avi_win()//den procedure der �bner et import vindue og f�r navne og
placeringer
{
global string $active;
fileBrowserDialog -m 0 -fc "import_avi" -ft "avi" -an "Importer";// husk -m
0 for importer -wt ("Importing move to "+$active) -ds 1
}
//--------------------------------------------------------
// v�lg aktivt kamera procedure

proc sel_cam() {
global string $active;
string $valgt=$active;
if ($active==""){
string $findselv[]=`ls -type locator`;
for ($fundet in $findselv){
if (`gmatch $fundet "MoVis_3d_Cam*"`==1){
select $fundet;
pickWalk -d up;
}

}
else{

select $valgt;
}

//--------------------------------------------------------
//imageplane f�r avi p� procedure

proc import_avi(string $filename, string $fileType) // den procedure der


smider en avi p� aktivt kamera
{
global string $active;

string $valgt=$active;

string $image_planes[];
$image_planes=`ls -type imagePlane`;

for ($impl in $image_planes){


string $implane=`substitute "_ImagePlane" $impl ""`;

if (`gmatch $active $implane` ==1){

setAttr ($impl+".imageName") -type "string" $filename ;

}
}

}
//-----------------------------------------------------------
// procedure der laver en aimbox til det valgte kamera
proc aim_box () {
global string $active;
string $valgt=$active;
//setAttr ("camera_"+$valgt+"_aimbox_org"+".visibility") 1;

// for at kunne kopiere rigitgt skal den v�re keyable

setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".translateX");


setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".translateY");
setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".translateZ");

setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".rotateX");


setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".rotateY");
setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".rotateZ");

setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".scaleX");


setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".scaleY");
setAttr -e -keyable true ("camera_"+$valgt+"_aimbox_org"+".scaleZ");

string $cdist=`getAttr ($valgt+".track_m")`;


string $cpan=`getAttr ($valgt+".pan_deg")`;
string $ctilt=`getAttr ($valgt+".tilt_deg")`;
string $ctrack=`getAttr ($valgt+".track_m")`;

string $vis_aim[]= `duplicate -n


("Aimbox_"+$valgt+"_D"+$cdist+"_P"+$cpan+"_Ti"+$ctilt+"_Tr"+$ctrack)
("camera_"+$valgt+"_aimbox_org")`;
setAttr ($vis_aim[0]+".scaleX") 1;
setAttr ($vis_aim[0]+".scaleY") 1;
setAttr ($vis_aim[0]+".scaleZ") 1;
parent $vis_aim[0] $valgt;
//setAttr -e -lock on ($vis_aim[0] + ".translateX");

del_att ($vis_aim[0]);
remove_key_att ("camera_"+$valgt+"_aimbox_org");

//-----------------------------------------------------------
// aabner et import vindue
proc import_move()//den procedure der �bner et import vindue og f�r navne og
placeringer
{
global string $active;
fileBrowserDialog -m 0 -fc "importer_noget" -ft "move" -an "Importer";//
husk -m 0 for importer -wt ("Importing move to "+$active) -ds 1
}

//-------------------------------------------------------------
// �bner et export vindue

proc movis_exp()
{
global string $active;
fileBrowserDialog -m 1 -fc "eksporter_noget" -ft "move" -an
"Eksporter";//-wt ("Eksporting move from "+$active) -ds 1
movis;
}
//-------------------------------------------------------
// Selve export proceduren
proc eksporter_noget( string $filename, string $fileType){
global string $active;
string $exp_cam=$active;

//string $exp_cam=`optionMenu -q -value active`;

int $tid_s=`playbackOptions -q -max`;


string $tid_text=("1:"+$tid_s);

movOut -pre 10 -file $filename -t $tid_text


($exp_cam+".pan_deg") ($exp_cam+".tilt_deg")

($exp_cam+".track_m") ($exp_cam+".focus") ($exp_cam+".zoom");

$exampleFileName = $filename;

global string $teksten[];//skal kaldes for at kunne bruges


senere
clear ($teksten);

$fileId=`fopen $exampleFileName "r"`;


string $nextline = `fgetline $fileId`;

$teksten[0]=`substring $nextline 1 (size($nextline)-1)`;//


klipper sidste bogstav(returnline) af

while ( size( $nextline ) > 0 ) { //while sikrer at


den k�rer komandoen indtil der ikke er nogen
global string $teksten[]; // skal kaldes
int $str=(size($teksten)); //

$nextline = `fgetline $fileId`;


if (size($nextline)) $teksten[$str]=`substring
$nextline 1 (size($nextline)-1)`;
}

fclose $fileId;

$fileId=`fopen $exampleFileName "w"`;


string $mintekst= "// Projection Speed: 25 fps \r\n"+
"// \r\n// Move column key\r\n"+
"// Column AxisName
Units\r\n"+
"// 1 Pan
Degrees\r\n"+
"// 2 Tilt
Degrees\r\n"+
"// 3 Track
Meters\r\n"+
"// 4 Focus
missing\r\n"+
"// 5 Zoom
missing\r\n"+
"// \r\n// \r\n"; //husk
mellemrum efter//!!!

fprint $fileId $mintekst;

fclose $fileId;

string $finaltext="";
print ($finaltext);
$file=`fopen $exampleFileName "a"`;

for ($g=0;$g<(size($teksten));$g++){
global string $teksten[];

$finaltext=($finaltext+$teksten[$g]+"\r\n");

}
;
fprint $file $finaltext;
fclose $file;
string $finaltext="";//renser den igen

clear ($teksten);

//---------------------------------------------------
// test og eksporter
proc exp_test()
{
global int $test_exp;
$test_exp=1;//1 er eksport
testkeys;
}
//---------------------------------------
// test og test
proc test_test()
{
global int $test_exp;
$test_exp=0;//0 er test
testkeys;
}

//-------------------------------------------------------------
// lav et grapheditor vindue og v�lg kurverne
proc gra_ed(){

//string $v=`optionMenu -q -value active`;


global string $active;
string $v=$active;

if ($v==""){
print "No Movis-Camera in scene!";
}
else{
select ($v);
GraphEditor;
}

//-------------------------------------------------------------

// aaben attribut editoren for det aktive kamera

proc aabn() {

global string $active;


string $v=$active;

if ($v==""){
print "No Movis-Camera in scene!";
}
else{
select ("camera_"+$v);
AttributeEditor;
}
}

// Koden der genererer vinduet


proc movis() //proceduren der laver og opdaterer vinduet
{
global int $test_exp;
global string $test_text[];//skal kaldes igen med global for at
virke inde i proc
global string $movis_win="Movis_to_Maya";//vinduets navn skal v�re
global
global string $active;
global int $select_job;

global string $camera_names[];//skal v�re global for at blive


inkluderet i en proc senere
clear $camera_names;

if (`window -ex $movis_win`) deleteUI -window $movis_win;// sikrer


mod flere winduer p� samme tid
if (`scriptJob -ex $select_job `) scriptJob -kill $select_job
-force;
// begynder et layout med tre frames: create, import move og eksport

global string $cw;

$cw = `window -t $movis_win -s 1 -wh 255 450 -rtf 1 $movis_win` ;

string $form = `formLayout -numberOfDivisions 100`;


string $faste=`columnLayout -adj 1 faste`;

frameLayout -label "Create MoVis-Camera"


-bs "etchedIn" -cll 1 first;
columnLayout;
rowLayout -nc 2 -cw2 150
100;
text -label "Postfix
MoVis_3d_Cam:" ;
textField -ec
"make_movis" -w 100 camera_name ;
setParent..;

rowLayout -nc 2 -cw2 150


100;
text -label "Camera
height (40.0-200.0 cm.)";
floatField -min 40.0
-max 2000000.0 -value 65.0 -w 100 -pre 1 cameraheight;
setParent..;

rowLayout -nc 2 -cw2 150


100;
text -label "Number
of tracks (0-100):";
intField -min 0 -max
100 -v 1 -w 100 tracks;
setParent..;

button -label "Create


camera" -width 100 -command "make_movis" -ann "Create camera with tracs";
button -label "Select
camera" -width 100 -command "sel_cam" -ann "Select last used Movis";
button -label "Edit optics"
-width 100 -command "aabn" -ann "Edit created cameras optics";
// knap til aimbox
button -label "Create
Aimbox" -width 100 -command "aim_box" -ann "Choose a camera and press
'Create aimbox' to create aim-locator";
//text -label " " -align
"left";

setParent..;
setParent..;

frameLayout -label "import" -bs "etchedIn"


-cll 1 second;
columnLayout;

button -label "import move"


-width 100 -command "import_move" -ann "Choose a camera and press 'import
move' to browse for a move-file";
//text -label " " -align
"left";
//text -label "Choose a
camera and press import to browse for a move-file" -align "left";

// knap til avi import


button -label "import avi"
-width 100 -command "imp_avi_win" -ann "Choose a camera and press 'import
avi' to browse for a avi movie-file";

setParent..;
setParent..;

frameLayout -label "Export to mov-file" -bs


"etchedIn" -cll 1 third;
columnLayout;

button -label "Test" -width


100 -command "test_test" -ann "Test the selected camera and write a report"
testknap;
//text -label " " -align
"left";

button -label "Edit Curves"


-width 100 -command "gra_ed" -ann "Edit problematic" editknap;
//text -label " " -align
"left";

button -label "Export"


-width 100 -command "exp_test" -ann "Test and export to file" eksportknap;
//text -label " " -align
"left";

setParent..;
setParent..;
setParent..;

string $flydende=`frameLayout -label "Test-Results" -bs


"etchedIn" -cll 1 fourth`;
//frameLayout -label "Test-Results" -bs "etchedIn"
-cll 1 fourth;

scrollLayout -bgc 1 1 1 -hst 0;


rowColumnLayout -bgc 1 1 1
-width 255 -h 60 -nc 1 -cw 1 255;
int $nr =size ($test_text);
for ($i=0;$i<$nr;$i++){
text -label $test_text[$i]
-bgc 1 1 1 -width 250;

}
setParent..;
setParent..;
setParent..;
//setParent..;

string $knap=`button -label "Close Window" -width 255


-command "deleteUI -window $movis_win"`;

formLayout -edit //
-attachForm $faste "top" 1
-attachForm $faste "left" 1

-attachForm $faste "right" 0

-attachNone $faste "bottom"

-attachControl $flydende "top" 0 $faste


-attachControl $flydende "bottom" 0 $knap
-attachForm $flydende "right" 0
-attachForm $flydende "left" 1

-attachForm $knap "bottom" 0


-attachForm $knap "left" 1
-attachForm $knap "right" 0

$form; // slutter formLayout edit funktionen

showWindow $movis_win;
global string $cw;
global int $select_job;
$select_job=`scriptJob -pro -e "SelectionChanged" "update" -p $cw `;//

}
movis;

//-----------------------------------

//update vinduet

proc update(){
string $sel[]=`ls -sl`;

if (size ($sel)==0){
//g�r intet
} else {

for ($e in $sel){


// tjek om det er et kamera
if (`gmatch $e "MoVis_3d_Cam*" `==1){

global string $active;


$active =$e;
// hvis det er s� s�t det til aktivt kamera
}
}
}
}
;;;;;;;;;;;;;;;;;;;;;;;;;;end of script;;;;;;;;;;;;;;;;;;;;;;;;;;;;

You might also like