Maya 2020 fundamentals - modelling the real world
Get halfway through a model and find it's an unworkable mess? Can't add edge loops where you need them? Can't subdivide a mesh properly? If any of this sounds familiar check this course out.
# 1 25-05-2006 , 10:04 AM
skywola's Avatar
Registered User
Join Date: Jan 2004
Location: Tempe, Arizona, USA
Posts: 224

Walkerman of the future

I have been at the Walkerman project for a long time now, (about three years total) and it has been constantly expanding and improving. I am expecting that within about a month or so to have completed the bird that I have been working on as probably the last addition to the program. The bird will have plenty of features to allow someone to create a realistic bird, from being able to adjust how the feathers on the edge of the wing bend to controlling the bird's legs in take-off and landing positions.

After completing the bird, I am probably going to stop the project unless I come up with or get a good idea on possible improvements, besides the fact that it would be great to finally make use of the program.

It was my intention when I started the original project to create a MEL program that would allow someone to be able to create animations very rapidly, without monkeying around with all the IK and other crap that takes forever to set up. I think I have succeeded in that. Judging by the number of downloads, it looks like it has found its place in the 3D world.

I am planning on getting back into actual animation now that this project is nearing completion. I have a funny story that I wrote that I am planning on making into an animation short. (or maybe long if I can think up more for it)

One of the other ideas that I happened to think of, was creating a program that would read a MIDI file, and then animate a musician to play an instrument based on the MIDI information. At present though, I am just not willing to sacrifice that much of my time to such a project . . :zzz: it would be very time consuming. Maybe someone else interested in MEL and C++ might be willing to take it up. . . .

Anyway, Walkerman version 1.2 is now out, which includes the Centaur!


"The Sage as an Astronomer: If you still see the stars as something above you, you lack the eye of knowledge." Friedrich Nietzsche

Last edited by skywola; 25-05-2006 at 11:52 AM.
# 2 25-05-2006 , 11:12 AM
MattTheMan's Avatar
Registered User
Join Date: Apr 2005
Location: Fairfield, CT
Posts: 2,436
hey I would help you- just that I am working on my Maya->Indigo Exporter in MEL right now.

AFter that, I probably would help you.


Live the life you love, love the life you live
# 3 25-05-2006 , 11:49 AM
skywola's Avatar
Registered User
Join Date: Jan 2004
Location: Tempe, Arizona, USA
Posts: 224
I want to get back into doing some animation for a while, but maybe we could pick up on the project sometime in the future.

I have done a little experimentation with regards to the aforementioned project, I have created a grand piano and also a MEL script that lets you control the keys . . . I have some C code somewhere on my computer that is related to reading MIDI files. I could send that part to you some time when you get ready to roll.

As I said though, for now at least, I want to take a break from coding after I finish this bird project! user added image


"The Sage as an Astronomer: If you still see the stars as something above you, you lack the eye of knowledge." Friedrich Nietzsche
# 4 26-05-2006 , 02:37 PM
MattTheMan's Avatar
Registered User
Join Date: Apr 2005
Location: Fairfield, CT
Posts: 2,436
hey skywola, I have a question about MEL.

I have a final part of a script:

Code:
string $shp[] =`ls -tr`;
for ($obj in $shp) {
	$shape = `listRelatives -shapes $obj`;
	if (`objectType $shape` == "mesh") {
		float $pos[] = `getAttr ($obj +".translate")`;
		$write += "\n\n<model>\n\t<pos>" + $pos[0] + " " + $pos[1] + " " + $pos[2] + "</pos>";
		$write += "\n\t<scale>1</scale>";
		$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
		$write += "\n\t<mesh_name>"+ $shape[0] +"</mesh_name>\n</model>";
	}
}
This part gives me problems:

I get this error:

// Error: No object name specified. //

EDIT- if I do this:

Code:
string $trans[] =`ls -tr`;
for ($one in $trans) {
			string $shape[] = `listRelatives -shapes $one`;
			if (`objectType $one` == "mesh"){
			float $pos[] = `getAttr ($one +".translate")`;
		$write += "\n\n<model>\n\t<pos>" + $pos[0] + " " + $pos[1] + " " + $pos[2] + "</pos>";
		$write += "\n\t<scale>1</scale>";
		$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
		$write += "\n\t<mesh_name>"+$shape[0] +"</mesh_name>\n</model>";
	}
}
$write += "\n</scene>";
print($write);
It works, just nothing comes up since $obj is not a mesh. Instead, if I leave out that condition, all of my cameras apepear! I could just do a conditional

Code:
if (`objectType $one`!="camera")
But then NURBS objects would be dragged in, and so would SUB-D's, animation objects... etc.

Any way to get just the actual polygonal mesh in there?

I have a part in a previous section of the code that does this:
Code:
string $shapes[] = `ls -s`;
for ($one in $shapes){
	if(`objectType $one` == "mesh"){
	int $nV[] = `polyEvaluate -v $one`;
	int $nF[] = `polyEvaluate -f $one`;
	int $x = 0;
	$write += "\n<mesh>\n";
	$write += "\t<name>"+$one+"</name>\n";
	$write += "\t<embedded>\n";
	for($x=0;$x < $nV[0];$x++){
		string $cv = $one+".vtx["+$x+"]";
etc.... more code down here
But, if I use the 'ls -s' tab in the problematic part, it brings up the actual shape of the object (eg PolyPlane1Shape) and therefore I cannot access the translate, scale... etc.
Any suggestions as to how I might fix it?

Also- if I do use the 'ls -s' tag, (I don't need the pos anyway, I already have the triangle position), then the listRelatives turns up an empty string.


Live the life you love, love the life you live

Last edited by MattTheMan; 26-05-2006 at 02:57 PM.
# 5 26-05-2006 , 03:19 PM
MattTheMan's Avatar
Registered User
Join Date: Apr 2005
Location: Fairfield, CT
Posts: 2,436
nevermind... I feel like such an idiot!!!!

I was using the variable $obj, which was used for the cameras a while ago in the code. The $obj value had "camera1_group" assigned to it.

When I realized this, I just changed it to $one and now the script works!!!


Live the life you love, love the life you live
# 6 26-05-2006 , 03:50 PM
skywola's Avatar
Registered User
Join Date: Jan 2004
Location: Tempe, Arizona, USA
Posts: 224
This code here seems to run without hollering at me, but wether it is actually doing what it should, I'm not sure . . .


string $shp[] =`ls -tr`;
string $m = "mesh";
for ($obj in $shp) {
$shape = `listRelatives -shapes $obj`;
if (`objectType $shape $m`) {
float $pos[] = `getAttr ($obj +".translate")`;
$write += "\n\n<model>\n\t<pos>" + $pos[0] + " " + $pos[1] + " " + $pos[2] + "</pos>";
$write += "\n\t<scale>1</scale>";
$write += "\n\t<rotation><matrix>1 0 0 0 1 0 0 0 1</matrix></rotation>";
$write += "\n\t<mesh_name>"+ $shape[0] +"</mesh_name>\n</model>";
}
}


There is an example here:
https://cade.scope.edu/courseware/notes/mel/program.html


"The Sage as an Astronomer: If you still see the stars as something above you, you lack the eye of knowledge." Friedrich Nietzsche
# 7 26-05-2006 , 03:57 PM
MattTheMan's Avatar
Registered User
Join Date: Apr 2005
Location: Fairfield, CT
Posts: 2,436
oh- well it does what it should, my Indigo exporter works user added image just that... Indigo fails to load it user added image no clue why- it gives me an odd error- it cant read line -2.332??? wtf??? user added image


Live the life you love, love the life you live
# 8 26-05-2006 , 04:05 PM
skywola's Avatar
Registered User
Join Date: Jan 2004
Location: Tempe, Arizona, USA
Posts: 224
Here is a working example I found on the web:

polyCube -ch false -n obj1;
polyCube -ch false -n obj2;
sphere -ch false -n obj3;
polyCube -ch false -n obj4;
polyCube -ch false -n obj5;

int $count;
string $cursel, $seltype;
for( $count = 1; $count < 6; $count++ ) {
$cursel = "obj" + $count + "Shape";
if( `objectType -isType "nurbsSurface" $cursel` ) break;
print( $count + "\n" );
}


"The Sage as an Astronomer: If you still see the stars as something above you, you lack the eye of knowledge." Friedrich Nietzsche
# 9 26-05-2006 , 04:14 PM
MattTheMan's Avatar
Registered User
Join Date: Apr 2005
Location: Fairfield, CT
Posts: 2,436
oh, thanks skywola!!1 user added image


Live the life you love, love the life you live
# 10 26-05-2006 , 04:15 PM
skywola's Avatar
Registered User
Join Date: Jan 2004
Location: Tempe, Arizona, USA
Posts: 224
I'm not familiar with Indigo . . .

My area of expertise is more MEL now. I use to do C++, Visual Basic and assembly programming, but I guess MEL spoiled me rotten. After that Walkerman project, which was a really ambitious endeavor, I am wanting to get back into the visual part of animating for a while. . .

The Maya library and the web for that matter does not seem to have much info on that "objectType" command. I am not sure if I have even ever used it in any of my programming.


"The Sage as an Astronomer: If you still see the stars as something above you, you lack the eye of knowledge." Friedrich Nietzsche
# 11 26-05-2006 , 04:45 PM
MattTheMan's Avatar
Registered User
Join Date: Apr 2005
Location: Fairfield, CT
Posts: 2,436
yeah- see my probelm was the actual MEL part, I'm asking the programmer of Indigo about the indigo problem.


Live the life you love, love the life you live
Posting Rules Forum Rules
You may not post new threads | You may not post replies | You may not post attachments | You may not edit your posts | BB code is On | Smilies are On | [IMG] code is On | HTML code is Off

Similar Threads