Anim8tor exporter script

From Legacy Roblox Wiki
Revision as of 00:46, 11 December 2009 by >Mr Doom Bringer (Making Hats/Anim8or Mesh Exporter moved to Anim8tor exporter script: Hiding.)
Jump to navigationJump to search

This is Gamer3D's Anim8or script for exporting to the Roblox *.mesh format. With this update, the exporter officially works.

Install Instructions

Open Anim8or. Use the menu bar in the following sequence: File->Configure Set the Scripts text bar to the folder you want scripts to be in. Place this script (as a .a8s file) in the folder. To make these files, I save it as a .txt file using Notepad, then rename it to change the extension.

Script

/*
  Description: Add this to your Anim8or scripts directory and start Anim8or. The script MUST have the ".a8s" extension and be in the Anim8or Scripts folder. Make sure that "Preload Scripts" is set to ON (this is NECCESSARY). This script has been tested for 0.95 and 0.97 preview.
*/


#plugin("object", "export", "Roblox Mesh", ".mesh");
#file($output, "text");
#return($result);

file $output;
int $result;
object $obj;
shape $shape, $shapes[1], $childShapes[1];
tridata $data;
material $mat;
int $numFaces;
point3 $point, $normal, $color;
point2 $uv;
int $i;
int $j;
int $index, $mIndex;
int $count;
float $gCol;
string $nm;
string $newName;
float4x4 $tMatrix;

$nm = $output.GetRoot();

$obj = project.curObject;
$output.print("version 1.00\n");
$obj.GetShapes($childShapes);
$shapes.size = 0;
while($childShapes.size > 0)
{
    $shapes.push($childShapes.pop());
}
while($shapes.size > 0)
{
    	$shape = $shapes.pop();
    	$shape = $shape.ConvertToMesh();
	$data = $shape.GetTriangleData();
       	$numFaces = $data.GetNumTriangles();
	$tMatrix = $shape.GetGlobalTransform();
	$output.print("%d\n",$numFaces);
	for $i = 0 to $numFaces - 1 do {
		for $j = 0 to 2 step 1 do {
			$index = $data.GetIndex(($i*3)+$j);
                    	$point = $data.GetPoint($index);
            	    	$point = $tMatrix.Project($point);
                    	$normal = $data.GetNormal($index);
                    	$uv = $data.GetTexCoord($index);
			$output.print("[%.6g, %.6g, %.6g]", $point.x, $point.y, $point.z);
			$output.print("[%.5f, %.5f, %.5f]", $normal.x, $normal.y, $normal.z);
			$output.print("[%.5f, %.5f, 0]", $uv.x, $uv.y);
                }
	}
}


$result = 1;